diff --git a/Favorite_Movies/bin/Database.class b/Favorite_Movies/bin/Database.class index 60c40a1..359dd4a 100644 Binary files a/Favorite_Movies/bin/Database.class and b/Favorite_Movies/bin/Database.class differ diff --git a/Favorite_Movies/bin/Main_HomePage.class b/Favorite_Movies/bin/Main_HomePage.class index 45a4633..c795959 100644 Binary files a/Favorite_Movies/bin/Main_HomePage.class and b/Favorite_Movies/bin/Main_HomePage.class differ diff --git a/Favorite_Movies/bin/Star.class b/Favorite_Movies/bin/Star.class index f80ce34..81fd86c 100644 Binary files a/Favorite_Movies/bin/Star.class and b/Favorite_Movies/bin/Star.class differ diff --git a/Favorite_Movies/src/Database.java b/Favorite_Movies/src/Database.java index 2ac5f5c..c28c551 100644 --- a/Favorite_Movies/src/Database.java +++ b/Favorite_Movies/src/Database.java @@ -65,10 +65,22 @@ public class Database { fw.write("\n"); } - public static void addMovie(Movie m){ + public static int addMovie(Movie m){ + int lastid = 0; try { - FileWriter fw = new FileWriter( "c:\\tmp\\src\\files\\data.txt",true); + ArrayList list = getMovies(); + for (Movie mv: list) + { + if (mv.equals(m)) + { + return 0; + } + if (mv.getMovieId() > lastid) + lastid = mv.getMovieId(); + } + m.setMovieId(lastid + 1); + FileWriter fw = new FileWriter( "C:\\tmp\\FavoriteMovies\\files\\data.txt",true); writeMovieToFile(fw, m); @@ -78,6 +90,7 @@ public class Database { catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } + return lastid+1; } @@ -93,6 +106,9 @@ public class Database { Movie m = Movie.parseString(line); list.add(m); } + br.close(); + fr.close(); + } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); @@ -122,7 +138,7 @@ public class Database { { ArrayList list = new ArrayList(); try{ - FileReader fr = new FileReader( "c:\\tmp\\src\\files\\star_data.txt"); + FileReader fr = new FileReader( "C:\\tmp\\FavoriteMovies\\files\\star_data.txt"); BufferedReader br = new BufferedReader(fr); String line = null; while ((line=br.readLine())!=null) @@ -130,6 +146,8 @@ public class Database { Star s = Star.parseString(line); list.add(s); } + br.close(); + fr.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); @@ -137,14 +155,93 @@ public class Database { return list; } - public static void addStar(Star s) + public static ArrayList getRatings() { + ArrayList list = new ArrayList(); + try{ + FileReader fr = new FileReader( "C:\\tmp\\FavoriteMovies\\files\\ratings_data.txt"); + BufferedReader br = new BufferedReader(fr); + String line = null; + while ((line=br.readLine())!=null) + { + Rating s = Rating.parseString(line); + list.add(s); + } + br.close(); + fr.close(); + } + catch (IOException e1) { // TODO Auto-generated catch block + e1.printStackTrace(); + } + return list; + } + public static boolean addStar(Star s) + { + boolean movieFound = false; + try + { + + ArrayList list = getMovies(); + for (Movie m: list) + { + if (m.getMovieId() == s.getMovieId()) + { + movieFound = true; + } + } + if (movieFound) + { + FileWriter fw = new FileWriter( "C:\\tmp\\FavoriteMovies\\files\\star_data.txt",true); + fw.write(String.valueOf(s.getMovieId())); + fw.append(" ").write(s.getMovieTitle()); + fw.append(" ").write(String.valueOf(s.getYear())); + fw.append(" ").write(s.getNameSurname()); + fw.append(" ").write("\n"); + fw.close(); + } + } + catch (IOException e1) { // TODO Auto-generated catch block + e1.printStackTrace(); + movieFound = false; + } + return movieFound; } - public static void addRating(Rating r) + public static boolean addRating(Rating r) { + boolean movieFound = false; + try + { + + ArrayList list = getMovies(); + for (Movie m: list) + { + if (m.getMovieId() == r.getMovieId()) + { + movieFound = true; + } + } + if (movieFound) + { + //(movieId: int, NameSurname: string, relation: string, rating: int) + FileWriter fw = new FileWriter( "C:\\tmp\\FavoriteMovies\\files\\ratings_data.txt",true); + fw.write(String.valueOf(r.getMovieId())); + fw.append(" ").write(r.getNameSurname()); + fw.append(" ").write(r.getRelation()); + fw.append(" ").write(String.valueOf(r.getRating())); + fw.append(" ").write("\n"); + fw.close(); + UpdateRating(r.getMovieId(), r.getRating()); + } + } + catch (IOException e1) { // TODO Auto-generated catch block + e1.printStackTrace(); + movieFound = false; + } + return movieFound; + } public static int findMovieId(String title) @@ -202,14 +299,58 @@ public class Database { public static ArrayList findMoviesForStar(String starName) { - ArrayList list = new ArrayList(); // TODO 9: search all movies in which the star has acted and return a list + ArrayList movieIdList = new ArrayList(); + + ArrayList starList = getStars(); + for (Star s: starList) + { + if (s.getNameSurname().equals(starName)) + movieIdList.add(s.getMovieId()); + } ArrayList fullList = getMovies(); - for (Movie movie : fullList) + ArrayList list = new ArrayList(); + for(Movie m: fullList) { - + if (movieIdList.contains(m.getMovieId())) + { + System.out.println("Adding " + m.getTitle() + " to list"); + list.add(m); + } } + return list; } + + + public static void UpdateRating(int movieId, int newRating) + { + // get all ratings + ArrayList ratings = getRatings(); + // calculate avg rating + int totalRating = 0; + int numRatings = 0; + for (Rating r: ratings) + { + if (r.getMovieId() == movieId) + { + totalRating += r.getRating(); + numRatings++; + } + } + // find movie by id + ArrayList list = getMovies(); + // update movie + for (Movie m: list) + { + if (m.getMovieId() == movieId) + { + m.setAvgRating(totalRating/numRatings); + break; + } + } + // save movies to file + saveMoviesList(list); + } } \ No newline at end of file diff --git a/Favorite_Movies/src/Main_HomePage.java b/Favorite_Movies/src/Main_HomePage.java index 1236e25..e1336f2 100644 --- a/Favorite_Movies/src/Main_HomePage.java +++ b/Favorite_Movies/src/Main_HomePage.java @@ -227,13 +227,20 @@ public class Main_HomePage extends JFrame { // form should have a text field to take the name of the star // upon clicking the button, it should call Database.findMoviesForStar(String starName) // and display a list of movie titles below +<<<<<<< Updated upstream +======= + +>>>>>>> Stashed changes ShowMoviesForStarFrame sm=new ShowMoviesForStarFrame(); sm.setVisible(true); if(sm.isVisible()) { //use to display only one screen Main_HomePage.this.dispose(); } +<<<<<<< Updated upstream +======= +>>>>>>> Stashed changes } }); diff --git a/Favorite_Movies/src/Movie.java b/Favorite_Movies/src/Movie.java index 1f2cb88..780532c 100644 --- a/Favorite_Movies/src/Movie.java +++ b/Favorite_Movies/src/Movie.java @@ -91,6 +91,14 @@ public class Movie { this.numWatched = numWatched; } + public boolean equals(Movie m) + { + if (m.getTitle().equals(this.getTitle()) + && m.getGenre().equals(this.getGenre())) + return true; + return false; + } + public static Movie parseString(String s) { String[] parts = s.split(" "); diff --git a/Favorite_Movies/src/MoviesFrame.java b/Favorite_Movies/src/MoviesFrame.java index 06ebc5c..140fa68 100644 --- a/Favorite_Movies/src/MoviesFrame.java +++ b/Favorite_Movies/src/MoviesFrame.java @@ -52,12 +52,12 @@ public class MoviesFrame extends JFrame{ lblNewLabel.setBounds(273,11, 160, 29); lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 24)); lblNewLabel.setForeground(new Color(255, 255, 255)); panel.add(lblNewLabel); - JLabel lblNewLabel_1 = new JLabel("Movie Id:"); + /*JLabel lblNewLabel_1 = new JLabel("Movie Id:"); lblNewLabel_1.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblNewLabel_1.setForeground(Color.WHITE); lblNewLabel_1.setBounds(31, 74, 109, 14); panel.add(lblNewLabel_1); - +*/ JLabel lblNewLabel_1_1 = new JLabel("Title:"); lblNewLabel_1_1.setFont(new Font("Tahoma", Font.PLAIN, 14)); lblNewLabel_1_1.setForeground(Color.WHITE); @@ -112,9 +112,10 @@ public class MoviesFrame extends JFrame{ lblNewLabel_1_3_6.setBounds(31, 479, 127,23); panel.add(lblNewLabel_1_3_6); + /* tf_mid = new JTextField(); tf_mid.setBounds(231, 66, 222, 29); panel.add(tf_mid); - +*/ tf_title = new JTextField(); tf_title.setBounds(231, 110, 222, 29); panel.add(tf_title); @@ -160,13 +161,13 @@ public class MoviesFrame extends JFrame{ JButton btnM_ok = new JButton("OK"); btnM_ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - if(tf_mid.getText().isEmpty() || tf_title.getText().isEmpty() ||tf_year.getText().isEmpty() || tf_genre.getText().isEmpty()||tf_num_watch.getText().isEmpty() || tf_avgrate.getText().isEmpty() ||tf_pname.getText().isEmpty() || tf_sname.getText().isEmpty() ||tf_shortDesc.getText().isEmpty() || tf_length.getText().isEmpty()) { + if(tf_title.getText().isEmpty() ||tf_year.getText().isEmpty() || tf_genre.getText().isEmpty()||tf_num_watch.getText().isEmpty() || tf_avgrate.getText().isEmpty() ||tf_pname.getText().isEmpty() || tf_sname.getText().isEmpty() ||tf_shortDesc.getText().isEmpty() || tf_length.getText().isEmpty()) { JOptionPane.showMessageDialog(null, "Please Enter All the Fields !!"); } else{ Movie mv = new Movie(); - mv.setMovieId(Integer.parseInt(tf_mid.getText())); + //mv.setMovieId(Integer.parseInt(tf_mid.getText())); mv.setTitle(tf_title.getText()); mv.setLength(Integer.parseInt(tf_length.getText())); mv.setYear(Integer.parseInt(tf_year.getText())); @@ -176,16 +177,22 @@ public class MoviesFrame extends JFrame{ mv.setShortDescription(tf_shortDesc.getText()); mv.setAvgRating(Double.parseDouble(tf_avgrate.getText())); mv.setNumWatched(Integer.parseInt(tf_num_watch.getText())); - Database.addMovie(mv); - - JOptionPane.showMessageDialog(null, "Movie added Successfully....."); - - tf_mid.setText(""); - tf_title.setText(""); - tf_year.setText(""); tf_length.setText(""); tf_genre.setText(""); - tf_sname.setText(""); tf_pname.setText(""); tf_shortDesc.setText(""); - tf_avgrate.setText(""); tf_num_watch.setText(""); + int movieId = Database.addMovie(mv); + if (movieId > 0) + { + JOptionPane.showMessageDialog(null, "Movie added Successfully.....new id: " + String.valueOf(movieId)); + tf_title.setText(""); + tf_year.setText(""); tf_length.setText(""); tf_genre.setText(""); + tf_sname.setText(""); tf_pname.setText(""); tf_shortDesc.setText(""); + tf_avgrate.setText(""); tf_num_watch.setText(""); + + } + else + { + JOptionPane.showMessageDialog(null, "Movie already exists!!"); + } + } } diff --git a/Favorite_Movies/src/Rating.java b/Favorite_Movies/src/Rating.java index 51d48f8..b15fc6f 100644 --- a/Favorite_Movies/src/Rating.java +++ b/Favorite_Movies/src/Rating.java @@ -39,4 +39,16 @@ public class Rating { this.nameSurname = nameSurname; } + public static Rating parseString(String s) + { + //(movieId: int, NameSurname: string, relation: string, rating: int) + Rating r = new Rating(); + String[] parts = s.split(" "); + r.setMovieId(Integer.parseInt(parts[0])); + r.setNameSurname(parts[1]); + r.setRelation(parts[2]); + r.setRating(Integer.parseInt(parts[3])); + + return r; + } } \ No newline at end of file diff --git a/Favorite_Movies/src/RatingsFrame.java b/Favorite_Movies/src/RatingsFrame.java index 71369bd..5640e10 100644 --- a/Favorite_Movies/src/RatingsFrame.java +++ b/Favorite_Movies/src/RatingsFrame.java @@ -96,28 +96,19 @@ public class RatingsFrame extends JFrame { rt.setRelation(tf_relationR.getText()); rt.setNameSurname(tf_snameR.getText()); rt.setRating(Integer.parseInt(tf_ratingsR.getText())); - - try { - - FileWriter fw = new FileWriter( "C:\\Users\\skc\\eclipse-workspace\\first\\Favorite_Movies\\src\\files\\ratings_data.txt",true); - tf_midR.write(fw); - tf_snameR.write(fw.append(" ")); - tf_relationR.write(fw.append(" ")); - tf_ratingsR.write(fw.append(" ")); - - fw.write("\n"); - - fw.close(); - + if (Database.addRating(rt)) + { JOptionPane.showMessageDialog(null, "Ratings added Successfully....."); tf_midR.setText(""); tf_relationR.setText(""); tf_ratingsR.setText(""); tf_snameR.setText(""); - - } catch (IOException e1) { // TODO Auto-generated catch block - e1.printStackTrace(); } + } + else + { + JOptionPane.showMessageDialog(null, "Movie not found, Ratings not added!!"); + } } } }); diff --git a/Favorite_Movies/src/Star.java b/Favorite_Movies/src/Star.java index fd5e6f1..f212e37 100644 --- a/Favorite_Movies/src/Star.java +++ b/Favorite_Movies/src/Star.java @@ -43,7 +43,10 @@ public class Star{ Star st = new Star(); String[] parts = s.split(" "); st.setMovieId(Integer.parseInt(parts[0])); - + //movieId: int, movieTitle: string, movieYear: int, NameSurname: string + st.setMovieTitle(parts[1]); + st.setYear(Integer.parseInt(parts[2])); + st.setNameSurname(parts[3]); return st; } diff --git a/Favorite_Movies/src/StarsFrame.java b/Favorite_Movies/src/StarsFrame.java index d2a5fd4..d9f0a9f 100644 --- a/Favorite_Movies/src/StarsFrame.java +++ b/Favorite_Movies/src/StarsFrame.java @@ -90,7 +90,10 @@ public class StarsFrame extends JFrame { s.setMovieTitle(tf_mtitleS.getText()); s.setNameSurname(tf_snameS.getText()); s.setYear(Integer.parseInt(tf_yearS.getText())); +<<<<<<< Updated upstream +======= +>>>>>>> Stashed changes if (Database.addStar(s)) { JOptionPane.showMessageDialog(null, "Star added Successfully....."); @@ -98,6 +101,7 @@ public class StarsFrame extends JFrame { tf_midS.setText(""); tf_mtitleS.setText(""); tf_yearS.setText(""); +<<<<<<< Updated upstream tf_snameS.setText(""); } else{ @@ -106,6 +110,13 @@ public class StarsFrame extends JFrame { } +======= + tf_snameS.setText(""); + } + else { + JOptionPane.showMessageDialog(null, "Movie not found, Star not added!!"); + } +>>>>>>> Stashed changes } } });btnStar.setBounds(195, 320, 89, 23);