Browse Source

Fixed known exceptions in EditMovie

toomanysugar 4 years ago
parent
commit
03a470b434

+ 6 - 1
src/main/java/com/moviesdb/AddMovieController.java

@@ -16,6 +16,7 @@ import javax.enterprise.inject.New;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 //For reading properties from .properties file
 
@@ -270,8 +271,11 @@ public class AddMovieController extends Controller {
                                         if (part instanceof ComboBox) {
                                             //System.out.println("\t\t\t\t Text: " + ((ComboBox) part).getValue().toString());
                                             if (part.getId().equals("actorName")) {
-                                                if (((ComboBox) part).getValue() != null)
+                                                if (((ComboBox) part).getValue() != null) {
                                                     name = ((ComboBox) part).getValue().toString();
+                                                } else {
+                                                    name = "";
+                                                }
                                             }
                                         }
 
@@ -284,6 +288,7 @@ public class AddMovieController extends Controller {
                                     }
                             }
                     }
+                    System.out.println("Found: '" + name + "' '" + role + "'");
                     if (name != "" || role != "") {
                         Role rowRole = new Role(targetMovie.id(), name, role);
                         roles.add(rowRole);

+ 54 - 16
src/main/java/com/moviesdb/DataBaseConnector.java

@@ -305,7 +305,7 @@ public class DataBaseConnector {
         return -1;
     }
 
-    public void updateMovie(Movie oldMovie, Movie newMovie) {
+    public int updateMovie(Movie oldMovie, Movie newMovie) {
         try {
             Statement statement = conn.createStatement();
             String req;
@@ -313,55 +313,93 @@ public class DataBaseConnector {
             String intoPart = "";
 
             if (!oldMovie.name().equals(newMovie.name())) {
-                intoPart += " `name` = '" + newMovie.name() + "',";
+                if (!newMovie.name().equals("Movie_name_undefined")) {
+                    intoPart += " `name` = '" + newMovie.name() + "',";
+                } else {
+                    intoPart += " `name` = NULL,";
+                }
             }
 
             if (!oldMovie.genre().equals(newMovie.genre())) {
-                intoPart += " `genre` = '" + newMovie.genre() + "',";
+                if (!newMovie.genre().equals("Movie_genre_undefined")) {
+                    intoPart += " `genre` = '" + newMovie.genre() + "',";
+                } else {
+                    intoPart += " `genre` = NULL,";
+                }
             }
 
             if (!oldMovie.description().equals(newMovie.description())) {
-                intoPart += " `description` = '" + newMovie.description() + "',";
+                if (!newMovie.description().equals("Movie_description_undefined")) {
+                    intoPart += " `description` = '" + newMovie.description() + "',";
+                } else {
+                    intoPart += " `description` = NULL,";
+                }
             }
 
             if (!oldMovie.duration().equals(newMovie.duration())) {
-                intoPart += " `duration` = '" + newMovie.duration() + "',";
+                if (!newMovie.duration().equals("Movie_duration_undefined")) {
+                    intoPart += " `duration` = '" + newMovie.duration() + "',";
+                } else {
+                    intoPart += " `duration` = NULL,";
+                }
             }
 
             if (!oldMovie.rating().equals(newMovie.rating())) {
-                intoPart += " `user_rating` = '" + newMovie.rating() + "',";
+                if (!newMovie.rating().equals("Movie_rating_undefined")) {
+                    intoPart += " `user_rating` = '" + newMovie.rating() + "',";
+                } else {
+                    intoPart += " `user_rating` = NULL,";
+                }
             }
 
             if (!oldMovie.year().equals(newMovie.year())) {
-                intoPart += " `year` = '" + newMovie.year() + "',";
+                if (!newMovie.year().equals("Movie_year_undefined")) {
+                    intoPart += " `year` = '" + newMovie.year() + "',";
+                } else {
+                    intoPart += " `year` = NULL,";
+                }
             }
 
             if (!oldMovie.studio().equals(newMovie.studio())) {
-                intoPart += " `studio` = '" + newMovie.studio() + "',";
+                if (!newMovie.studio().equals("Movie_studio_undefined")) {
+                    intoPart += " `studio` = '" + newMovie.studio() + "',";
+                } else {
+                    intoPart += " `studio` = NULL,";
+                }
             }
 
             if (!oldMovie.director().equals(newMovie.director())) {
-                intoPart += " `director` = '" + newMovie.director() + "',";
+                if (!newMovie.director().equals("Movie_director_undefined")) {
+                    intoPart += " `director` = '" + newMovie.director() + "',";
+                } else {
+                    intoPart += " `director` = NULL,";
+                }
             }
 
             if (!oldMovie.getImageLink().equals(newMovie.getImageLink())) {
-                intoPart += " `image_link` = '" + newMovie.getImageLink() + "',";
+                if (!newMovie.getImageLink().equals("Movie_ImageLink_undefined")) {
+                    intoPart += " `image_link` = '" + newMovie.getImageLink() + "',";
+                }
+                intoPart += " `image_link` = NULL,";
             }
 
             if (intoPart.length() > 0 && intoPart.charAt(intoPart.length() - 1) == ',')
                 intoPart = intoPart.substring(0, intoPart.length() - 1);
 
             //сборка текста запроса
+            if (intoPart.length() > 0) {
+                req = "UPDATE Movies SET" + intoPart;
+                req += " WHERE (`id` = '" + oldMovie.id() + "');";
 
-            req = "UPDATE Movies SET" + intoPart;
-            req += " WHERE (`id` = '" + oldMovie.id() + "');";
-
-            System.out.println(req);
-            //выполнение запроса
-            statement.execute(req);
+                System.out.println(req);
+                //выполнение запроса
+                statement.execute(req);
+                return oldMovie.id();
+            }
         } catch (SQLException ex) {
             ex.printStackTrace();
         }
+        return -1;
     }
 
     public void deleteMovie(Movie movie) {

+ 29 - 11
src/main/java/com/moviesdb/EditMovieController.java

@@ -102,15 +102,33 @@ public class EditMovieController extends AddMovieController {
         int id = ((BrowserController) caller).getDetailsViewingNow();
         editableMovie = ((BrowserController) caller).my_connector.getMovieInfo(id);
 
-        urlTextBox.setText(editableMovie.getImageLink());
-        titleTextBox.setText(editableMovie.name());
-        genreTextBox.setValue(editableMovie.genre());
-        yearTextBox.setText(editableMovie.year());
-        timeTextBox.setText(editableMovie.duration());
-        studioTextBox.setValue(editableMovie.studio());
-        directorTextBox.setValue(editableMovie.director());
-        rateTextBox.setText(editableMovie.rating());
-        descriptionTextBox.setText(editableMovie.description());
+        if (!editableMovie.getImageLink().equals("Movie_ImageLink_undefined")) {
+            urlTextBox.setText(editableMovie.getImageLink());
+        }
+        if (!editableMovie.name().equals("Movie_name_undefined")) {
+            titleTextBox.setText(editableMovie.name());
+        }
+        if (!editableMovie.genre().equals("Movie_genre_undefined")) {
+            genreTextBox.setValue(editableMovie.genre());
+        }
+        if (!editableMovie.year().equals("Movie_year_undefined")) {
+            yearTextBox.setText(editableMovie.year());
+        }
+        if (!editableMovie.duration().equals("Movie_duration_undefined")) {
+            timeTextBox.setText(editableMovie.duration());
+        }
+        if (!editableMovie.studio().equals("Movie_studio_undefined")) {
+            studioTextBox.setValue(editableMovie.studio());
+        }
+        if (!editableMovie.director().equals("Movie_director_undefined")) {
+            directorTextBox.setValue(editableMovie.director());
+        }
+        if (!editableMovie.rating().equals("Movie_rating_undefined")) {
+            rateTextBox.setText(editableMovie.rating());
+        }
+        if (!editableMovie.description().equals("Movie_description_undefined")) {
+            descriptionTextBox.setText(editableMovie.description());
+        }
 
         studioTextBox.setItems(((BrowserController) caller).my_connector.getAllStudios());
         directorTextBox.setItems(((BrowserController) caller).my_connector.getAllDirectors());
@@ -183,8 +201,8 @@ public class EditMovieController extends AddMovieController {
 
 
         //TODO Сheck on id (if addMovie(...) = -1 movie not added)
-        ((BrowserController) caller).my_connector.updateMovie(editableMovie, NewMovie);
-        System.out.println("Added Movie with ID: " + editableMovie.id());
+        if (((BrowserController) caller).my_connector.updateMovie(editableMovie, NewMovie) != -1)
+            System.out.println(" Movie with ID: " + editableMovie.id());
 
         ((BrowserController) caller).my_connector.deleteRoles(editableMovie);
 

+ 1 - 1
src/main/resources/EditMovieWindow.fxml

@@ -29,7 +29,7 @@
       <AnchorPane minHeight="0.0" minWidth="0.0" style="-fx-background-color: #212121;" BorderPane.alignment="CENTER">
          <AnchorPane prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
             <children>
-               <Label onMouseClicked="#executeForm" text="Add" textFill="#9f9f9f" AnchorPane.bottomAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0">
+               <Label onMouseClicked="#executeForm" text="Edit" textFill="#9f9f9f" AnchorPane.bottomAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0">
                   <font>
                      <Font name="System Bold" size="16.0" />
                   </font>