Browse Source

Added ComboBoxes to add and edit.

Veloe 4 years ago
parent
commit
2a92fcda41

+ 12 - 6
src/main/java/com/moviesdb/ActorRoleSegment.java

@@ -1,19 +1,25 @@
 package com.moviesdb;
 
 import javafx.fxml.FXML;
+import javafx.scene.control.ComboBox;
 import javafx.scene.control.TextField;
 
 public class ActorRoleSegment {
+    //@FXML
+   //TextField actorName;
     @FXML
-    TextField actorName;
-    @FXML
-    TextField actorRole;
+    ComboBox actorName;
 
-    public String name(){
+    /*public String name(){
         return actorName.getText();
+    }*/
+
+    public String name(){
+        return actorName.getValue().toString();
     }
 
-    public String role(){
-        return actorRole.getText(); 
+    public void setActors(Object caller)
+    {
+        actorName.setItems(((BrowserController)caller).my_connector.getAllActors());
     }
 }

+ 33 - 11
src/main/java/com/moviesdb/AddMovieController.java

@@ -44,7 +44,7 @@ public class AddMovieController extends Controller {
     @FXML
     TextField titleTextBox;
     @FXML
-    TextField genreTextBox;
+    ComboBox genreTextBox;
     @FXML
     TextArea descriptionTextBox;
     @FXML
@@ -52,9 +52,9 @@ public class AddMovieController extends Controller {
     @FXML
     TextField timeTextBox;
     @FXML
-    TextField studioTextBox;
+    ComboBox studioTextBox;
     @FXML
-    TextField directorTextBox;
+    ComboBox directorTextBox;
     @FXML
     TextField rateTextBox;
 
@@ -155,15 +155,26 @@ public class AddMovieController extends Controller {
         stage.setTitle("Log in");
         stage.show();
         descriptionTextBox.setWrapText(true);
+        studioTextBox.setItems(((BrowserController) caller).my_connector.getAllStudios());
+        directorTextBox.setItems(((BrowserController) caller).my_connector.getAllDirectors());
+        genreTextBox.setItems(((BrowserController) caller).my_connector.getAllGenres());
         addActor();
     }
 
     public void addActor() {
         try {
-            AnchorPane row = FXMLLoader.load(getClass().getResource("../../ActorRoleSegment.fxml"));
+            FXMLLoader loader = new FXMLLoader(getClass().getResource("../../ActorRoleSegment.fxml"));
+
+            AnchorPane row = loader.load();
+
+            ActorRoleSegment controller = loader.getController();
+
+            controller.setActors(caller);
+
             //row.setPrefWidth(actorsGrid.getWidth());
             actorsGridAncor.getChildren().add(row);
             actorsGrid.setMinHeight(actorsGrid.getMinHeight() + 35);
+
             if ((long) actorsGridAncor.getChildren().size() > 1)
                 moveFloatingElements(35);
         } catch (IOException ex) {
@@ -195,11 +206,14 @@ public class AddMovieController extends Controller {
         Movie NewMovie = new Movie();
         NewMovie.setCover(urlTextBox.getText());
         NewMovie.setName(titleTextBox.getText());
-        NewMovie.setGenre(genreTextBox.getText());
+        if (genreTextBox.getValue() != null)
+            NewMovie.setGenre(genreTextBox.getValue().toString());
         NewMovie.setYear(yearTextBox.getText());
         NewMovie.setDuration(timeTextBox.getText());
-        NewMovie.setStudio(studioTextBox.getText());
-        NewMovie.setDirector(directorTextBox.getText());
+        if (studioTextBox.getValue() != null)
+            NewMovie.setStudio(studioTextBox.getValue().toString());
+        if (directorTextBox.getValue() != null)
+            NewMovie.setDirector(directorTextBox.getValue().toString());
         NewMovie.setRating(rateTextBox.getText());
         NewMovie.setDescription(descriptionTextBox.getText());
 
@@ -224,10 +238,14 @@ public class AddMovieController extends Controller {
         } else {
             System.out.println("nothing to add");
         }
+
+        ((BrowserController) caller).closeDetails();
+        ((BrowserController) caller).getFilterMovies();
+        stage.close();
     }
 
 
-    private List<Role> fetchRoles(Movie targetMovie) {
+    protected List<Role> fetchRoles(Movie targetMovie) {
         List<Role> roles = new ArrayList<Role>();
         try {
             //AnchorPane row = (AnchorPane) actorsGrid.getChildren().get(1);
@@ -249,11 +267,15 @@ public class AddMovieController extends Controller {
                                     for (Node part : ((AnchorPane) halfrow).getChildren()) {
                                         System.out.println("\t\t\t-Type: " + part.toString());
 
-                                        if (part instanceof TextField) {
-                                            System.out.println("\t\t\t\t Text: " + ((TextField) part).getText());
+                                        if (part instanceof ComboBox) {
+                                            System.out.println("\t\t\t\t Text: " + ((ComboBox) part).getValue().toString());
                                             if (part.getId().equals("actorName")) {
-                                                name = ((TextField) part).getText();
+                                                name = ((ComboBox) part).getValue().toString();
                                             }
+                                        }
+
+                                        if (part instanceof TextField) {
+
                                             if (part.getId().equals("actorRole")) {
                                                 role = ((TextField) part).getText();
                                             }

+ 102 - 2
src/main/java/com/moviesdb/DataBaseConnector.java

@@ -348,7 +348,7 @@ public class DataBaseConnector {
                 intoPart += " `image_link` = '" + newMovie.getImageLink() + "',";
             }
 
-            if (intoPart.charAt(intoPart.length() - 1) == ',')
+            if (intoPart.length() > 0 && intoPart.charAt(intoPart.length() - 1) == ',')
                 intoPart = intoPart.substring(0, intoPart.length() - 1);
 
             //сборка текста запроса
@@ -579,7 +579,7 @@ public class DataBaseConnector {
                 actors.add(name);
                 rs.next();
             }
-            actors.add("");
+            //аctors.add("");
         }
         catch (SQLException ex) {
             //exception
@@ -588,4 +588,104 @@ public class DataBaseConnector {
         return  actors;
 
     }
+
+    public ObservableList<String> getAllStudios()
+    {
+        ObservableList<String> studios = FXCollections.observableArrayList();
+
+        try
+        {
+            Statement statement = conn.prepareStatement("SELECT distinct studio FROM moviesdb.Movies;", ResultSet.TYPE_SCROLL_SENSITIVE,
+                    ResultSet.CONCUR_UPDATABLE);
+            String req = "SELECT distinct studio FROM moviesdb.Movies;";
+            ResultSet rs = statement.executeQuery(req);
+            rs.last();
+            int Count = rs.getRow();
+
+            rs.first();
+
+            for (int i = 0; i < Count; i++)
+            {
+                String name = rs.getString("studio");
+                if (name == null)
+                    name = "";
+                studios.add(name);
+                rs.next();
+            }
+            //studios.add("");
+        }
+        catch (SQLException ex) {
+            //exception
+            ex.printStackTrace();
+        }
+        return  studios;
+
+    }
+
+    public ObservableList<String> getAllDirectors()
+    {
+        ObservableList<String> directors = FXCollections.observableArrayList();
+
+        try
+        {
+            Statement statement = conn.prepareStatement("SELECT distinct director FROM moviesdb.Movies;", ResultSet.TYPE_SCROLL_SENSITIVE,
+                    ResultSet.CONCUR_UPDATABLE);
+            String req = "SELECT distinct director FROM moviesdb.Movies;";
+            ResultSet rs = statement.executeQuery(req);
+            rs.last();
+            int Count = rs.getRow();
+
+            rs.first();
+
+            for (int i = 0; i < Count; i++)
+            {
+                String name = rs.getString("director");
+                if (name == null)
+                    name = "";
+                directors.add(name);
+                rs.next();
+            }
+            //directors.add("");
+        }
+        catch (SQLException ex) {
+            //exception
+            ex.printStackTrace();
+        }
+        return  directors;
+
+    }
+
+    public ObservableList<String> getAllGenres()
+    {
+        ObservableList<String> directors = FXCollections.observableArrayList();
+
+        try
+        {
+            Statement statement = conn.prepareStatement("SELECT distinct genre FROM moviesdb.Movies;", ResultSet.TYPE_SCROLL_SENSITIVE,
+                    ResultSet.CONCUR_UPDATABLE);
+            String req = "SELECT distinct genre FROM moviesdb.Movies;";
+            ResultSet rs = statement.executeQuery(req);
+            rs.last();
+            int Count = rs.getRow();
+
+            rs.first();
+
+            for (int i = 0; i < Count; i++)
+            {
+                String name = rs.getString("genre");
+                if (name == null)
+                    name = "";
+                directors.add(name);
+                rs.next();
+            }
+            //directors.add("");
+        }
+        catch (SQLException ex) {
+            //exception
+            ex.printStackTrace();
+        }
+        return  directors;
+
+    }
+
 }

+ 22 - 115
src/main/java/com/moviesdb/EditMovieController.java

@@ -18,65 +18,7 @@ import java.util.List;
 
 //For reading properties from .properties file
 
-public class EditMovieController extends Controller {
-
-    @FXML
-    Button addActorButton;
-
-    @FXML
-    AnchorPane borderTop;
-
-    @FXML
-    Pane borderLeft;
-    @FXML
-    Pane borderRight;
-    @FXML
-    Pane borderBottom;
-
-    @FXML
-    ScrollPane actorsGrid;
-    @FXML
-    VBox actorsGridAncor;
-
-    @FXML
-    TextField urlTextBox;
-    @FXML
-    TextField titleTextBox;
-    @FXML
-    TextField genreTextBox;
-    @FXML
-    TextArea descriptionTextBox;
-    @FXML
-    TextField yearTextBox;
-    @FXML
-    TextField timeTextBox;
-    @FXML
-    TextField studioTextBox;
-    @FXML
-    TextField directorTextBox;
-    @FXML
-    TextField rateTextBox;
-
-    @FXML
-    Label actorLabel;
-    @FXML
-    Pane actorUnderline;
-    @FXML
-    Label roleLabel;
-    @FXML
-    Pane roleUnderline;
-    @FXML
-    Label buttonRowAdd;
-    @FXML
-    Label buttonRowRem;
-
-
-    Object caller;
-    double xOffset;
-    double yOffset;
-
-    double basePos;
-    double baseWidth;
+public class EditMovieController extends AddMovieController {
 
     Movie editableMovie;
 
@@ -162,14 +104,19 @@ public class EditMovieController extends Controller {
 
         urlTextBox.setText(editableMovie.getImageLink());
         titleTextBox.setText(editableMovie.name());
-        genreTextBox.setText(editableMovie.genre());
+        genreTextBox.setValue(editableMovie.genre());
         yearTextBox.setText(editableMovie.year());
         timeTextBox.setText(editableMovie.duration());
-        studioTextBox.setText(editableMovie.studio());
-        directorTextBox.setText(editableMovie.director());
+        studioTextBox.setValue(editableMovie.studio());
+        directorTextBox.setValue(editableMovie.director());
         rateTextBox.setText(editableMovie.rating());
         descriptionTextBox.setText(editableMovie.description());
 
+        studioTextBox.setItems(((BrowserController) caller).my_connector.getAllStudios());
+        directorTextBox.setItems(((BrowserController) caller).my_connector.getAllDirectors());
+        genreTextBox.setItems(((BrowserController) caller).my_connector.getAllGenres());
+
+
         //TODO ADD ACTORS INFO
         List<Role> Role = ((BrowserController) caller).getRolesFromConnection(editableMovie.id());
 
@@ -223,11 +170,14 @@ public class EditMovieController extends Controller {
         Movie NewMovie = new Movie();
         NewMovie.setCover(urlTextBox.getText());
         NewMovie.setName(titleTextBox.getText());
-        NewMovie.setGenre(genreTextBox.getText());
+        if (genreTextBox.getValue() != null)
+            NewMovie.setGenre(genreTextBox.getValue().toString());
         NewMovie.setYear(yearTextBox.getText());
         NewMovie.setDuration(timeTextBox.getText());
-        NewMovie.setStudio(studioTextBox.getText());
-        NewMovie.setDirector(directorTextBox.getText());
+        if (studioTextBox.getValue() != null)
+            NewMovie.setStudio(studioTextBox.getValue().toString());
+        if (directorTextBox.getValue() != null)
+            NewMovie.setDirector(directorTextBox.getValue().toString());
         NewMovie.setRating(rateTextBox.getText());
         NewMovie.setDescription(descriptionTextBox.getText());
 
@@ -260,54 +210,7 @@ public class EditMovieController extends Controller {
     }
 
 
-    private List<Role> fetchRoles(Movie targetMovie) {
-        List<Role> roles = new ArrayList<Role>();
-        try {
-            //AnchorPane row = (AnchorPane) actorsGrid.getChildren().get(1);
 
-            for (Node row : actorsGridAncor.getChildren()) {
-                System.out.println("Type: " + row.toString());
-                if (row instanceof AnchorPane) {
-                    // clear
-                    String name = null;
-                    String role = null;
-                    for (Node hbox : ((AnchorPane) row).getChildren()) {
-                        System.out.println("\t-Type: " + hbox.toString());
-
-                        if (hbox instanceof HBox)
-                            for (Node halfrow : ((HBox) hbox).getChildren()) {
-                                System.out.println("\t\t-Type: " + halfrow.toString());
-
-                                if (halfrow instanceof AnchorPane)
-                                    for (Node part : ((AnchorPane) halfrow).getChildren()) {
-                                        System.out.println("\t\t\t-Type: " + part.toString());
-
-                                        if (part instanceof TextField) {
-                                            System.out.println("\t\t\t\t Text: " + ((TextField) part).getText());
-                                            if (part.getId().equals("actorName")) {
-                                                name = ((TextField) part).getText();
-                                            }
-                                            if (part.getId().equals("actorRole")) {
-                                                role = ((TextField) part).getText();
-                                            }
-                                        }
-                                    }
-                            }
-                    }
-                    if (name != "" || role != "") {
-                        Role rowRole = new Role(targetMovie.id(), name, role);
-                        roles.add(rowRole);
-                        System.out.println("Final: movieId=" + rowRole.movieId() + ", actorName=" + rowRole.actor() + ", actorRole=" + rowRole.role() + "\n");
-                        System.out.println(rowRole.movieId());
-                    }
-                }
-
-            }
-        } catch (Exception ex) {
-            ex.printStackTrace();
-        }
-        return roles;
-    }
 
 
     private void addFilledRole(Role filledRole) {
@@ -331,11 +234,15 @@ public class EditMovieController extends Controller {
                                 for (Node part : ((AnchorPane) halfrow).getChildren()) {
                                     System.out.println("\t\t\t-Type: " + part.toString());
 
-                                    if (part instanceof TextField) {
-                                        System.out.println("\t\t\t\t Text: " + ((TextField) part).getText());
+                                    if (part instanceof ComboBox) {
+                                        //System.out.println("\t\t\t\t Text: " + ((ComboBox) part).setValue(filledRole.actor()));
                                         if (part.getId().equals("actorName")) {
-                                            ((TextField) part).setText(filledRole.actor());
+                                            ((ComboBox) part).setValue(filledRole.actor());
                                         }
+                                    }
+                                    if (part instanceof TextField) {
+                                        System.out.println("\t\t\t\t Text: " + ((TextField) part).getText());
+
                                         if (part.getId().equals("actorRole")) {
                                             ((TextField) part).setText(filledRole.role());
                                         }

+ 2 - 1
src/main/resources/ActorRoleSegment.fxml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
+<?import javafx.scene.control.ComboBox?>
 <?import javafx.scene.control.TextField?>
 <?import javafx.scene.layout.AnchorPane?>
 <?import javafx.scene.layout.HBox?>
@@ -11,7 +12,7 @@
          <children>
             <AnchorPane maxWidth="1.7976931348623157E308" AnchorPane.leftAnchor="0.0" HBox.hgrow="ALWAYS">
                <children>
-                  <TextField id="actorName" maxWidth="1.7976931348623157E308" minWidth="150.0" style="-fx-opacity: 1; -fx-background-color: transparent; -fx-text-fill: #9f9f9f;" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
+                  <ComboBox fx:id="actorName" editable="true" prefWidth="150.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" />
                   <Pane prefHeight="3.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="25.0" />
                </children>
             </AnchorPane>

+ 4 - 24
src/main/resources/AddMovieWindow.fxml

@@ -1,15 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <?import javafx.scene.Cursor?>
-<?import javafx.scene.control.Label?>
-<?import javafx.scene.control.ScrollPane?>
-<?import javafx.scene.control.TextArea?>
-<?import javafx.scene.control.TextField?>
-<?import javafx.scene.layout.AnchorPane?>
-<?import javafx.scene.layout.BorderPane?>
-<?import javafx.scene.layout.Pane?>
-<?import javafx.scene.layout.VBox?>
-<?import javafx.scene.text.Font?>
+<?import javafx.scene.control.ComboBox?>
 <?import javafx.scene.control.Label?>
 <?import javafx.scene.control.ScrollPane?>
 <?import javafx.scene.control.TextArea?>
@@ -79,11 +71,6 @@
 						</Label>
 						<Pane layoutX="22.0" layoutY="234.0" prefHeight="1.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="24.0" AnchorPane.topAnchor="113.0" />
 						<Pane layoutX="167.0" layoutY="256.0" prefHeight="3.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="113.0" />
-						<TextField id="actorName" fx:id="genreTextBox" layoutX="221.0" layoutY="134.0" maxWidth="150.0" minWidth="150.0" style="-fx-opacity: 1; -fx-background-color: transparent; -fx-text-fill: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="88.0">
-						   <font>
-							  <Font size="14.0" />
-						   </font>
-						</TextField>
 						<Label layoutX="26.0" layoutY="186.0" text="Year" textFill="#9f9f9f" AnchorPane.leftAnchor="30.0" AnchorPane.topAnchor="133.0">
 						   <font>
 							  <Font size="14.0" />
@@ -115,11 +102,6 @@
 						</Label>
 						<Pane layoutX="42.0" layoutY="254.0" prefHeight="1.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="24.0" AnchorPane.topAnchor="233.0" />
 						<Pane layoutX="187.0" layoutY="276.0" prefHeight="3.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="233.0" />
-						<TextField id="actorName" fx:id="studioTextBox" layoutX="193.0" layoutY="227.0" maxWidth="150.0" minWidth="150.0" style="-fx-opacity: 1; -fx-background-color: transparent; -fx-text-fill: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="208.0">
-						   <font>
-							  <Font size="14.0" />
-						   </font>
-						</TextField>
 						<Label layoutX="6.0" layoutY="291.0" text="Director" textFill="#9f9f9f" AnchorPane.leftAnchor="30.0" AnchorPane.topAnchor="253.0">
 						   <font>
 							  <Font size="14.0" />
@@ -127,11 +109,6 @@
 						</Label>
 						<Pane layoutX="12.0" layoutY="349.0" prefHeight="1.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="24.0" AnchorPane.topAnchor="273.0" />
 						<Pane layoutX="157.0" layoutY="371.0" prefHeight="3.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="273.0" />
-						<TextField id="actorName" fx:id="directorTextBox" layoutX="163.0" layoutY="322.0" maxWidth="150.0" minWidth="150.0" style="-fx-opacity: 1; -fx-background-color: transparent; -fx-text-fill: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="248.0">
-						   <font>
-							  <Font size="14.0" />
-						   </font>
-						</TextField>
 						<Label fx:id="actorLabel" layoutX="28.0" layoutY="333.0" text="Actor" textFill="#9f9f9f" AnchorPane.leftAnchor="30.0" AnchorPane.topAnchor="293.0">
 						   <font>
 							  <Font size="14.0" />
@@ -160,6 +137,9 @@
 							  <VBox fx:id="actorsGridAncor" prefHeight="200.0" prefWidth="100.0" style="-fx-background-color: transparent;" />
 						   </content>
 						</ScrollPane>
+                     <ComboBox fx:id="directorTextBox" editable="true" layoutX="174.0" layoutY="248.0" prefHeight="25.0" prefWidth="409.0" AnchorPane.leftAnchor="173.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="249.0" />
+                     <ComboBox fx:id="studioTextBox" editable="true" layoutX="174.0" layoutY="211.0" prefHeight="25.0" prefWidth="409.0" AnchorPane.leftAnchor="173.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="211.0" />
+                     <ComboBox fx:id="genreTextBox" editable="true" layoutX="173.0" layoutY="91.0" prefHeight="25.0" prefWidth="409.0" AnchorPane.leftAnchor="173.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="91.0" />
 					 </AnchorPane>
 					 <AnchorPane prefWidth="604.0" VBox.vgrow="SOMETIMES">
 						<children>

+ 5 - 25
src/main/resources/EditMovieWindow.fxml

@@ -1,15 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <?import javafx.scene.Cursor?>
-<?import javafx.scene.control.Label?>
-<?import javafx.scene.control.ScrollPane?>
-<?import javafx.scene.control.TextArea?>
-<?import javafx.scene.control.TextField?>
-<?import javafx.scene.layout.AnchorPane?>
-<?import javafx.scene.layout.BorderPane?>
-<?import javafx.scene.layout.Pane?>
-<?import javafx.scene.layout.VBox?>
-<?import javafx.scene.text.Font?>
+<?import javafx.scene.control.ComboBox?>
 <?import javafx.scene.control.Label?>
 <?import javafx.scene.control.ScrollPane?>
 <?import javafx.scene.control.TextArea?>
@@ -37,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="Edit" textFill="#9f9f9f" AnchorPane.bottomAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0">
+               <Label onMouseClicked="#executeForm" text="Add" textFill="#9f9f9f" AnchorPane.bottomAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0">
                   <font>
                      <Font name="System Bold" size="16.0" />
                   </font>
@@ -79,11 +71,6 @@
                      </Label>
                      <Pane layoutX="22.0" layoutY="234.0" prefHeight="1.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="24.0" AnchorPane.topAnchor="113.0" />
                      <Pane layoutX="167.0" layoutY="256.0" prefHeight="3.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="113.0" />
-                     <TextField id="actorName" fx:id="genreTextBox" layoutX="221.0" layoutY="134.0" maxWidth="150.0" minWidth="150.0" style="-fx-opacity: 1; -fx-background-color: transparent; -fx-text-fill: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="88.0">
-                        <font>
-                           <Font size="14.0" />
-                        </font>
-                     </TextField>
                      <Label layoutX="26.0" layoutY="186.0" text="Year" textFill="#9f9f9f" AnchorPane.leftAnchor="30.0" AnchorPane.topAnchor="133.0">
                         <font>
                            <Font size="14.0" />
@@ -115,11 +102,6 @@
                      </Label>
                      <Pane layoutX="42.0" layoutY="254.0" prefHeight="1.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="24.0" AnchorPane.topAnchor="233.0" />
                      <Pane layoutX="187.0" layoutY="276.0" prefHeight="3.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="233.0" />
-                     <TextField id="actorName" fx:id="studioTextBox" layoutX="193.0" layoutY="227.0" maxWidth="150.0" minWidth="150.0" style="-fx-opacity: 1; -fx-background-color: transparent; -fx-text-fill: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="208.0">
-                        <font>
-                           <Font size="14.0" />
-                        </font>
-                     </TextField>
                      <Label layoutX="6.0" layoutY="291.0" text="Director" textFill="#9f9f9f" AnchorPane.leftAnchor="30.0" AnchorPane.topAnchor="253.0">
                         <font>
                            <Font size="14.0" />
@@ -127,11 +109,6 @@
                      </Label>
                      <Pane layoutX="12.0" layoutY="349.0" prefHeight="1.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="24.0" AnchorPane.topAnchor="273.0" />
                      <Pane layoutX="157.0" layoutY="371.0" prefHeight="3.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="273.0" />
-                     <TextField id="actorName" fx:id="directorTextBox" layoutX="163.0" layoutY="322.0" maxWidth="150.0" minWidth="150.0" style="-fx-opacity: 1; -fx-background-color: transparent; -fx-text-fill: #9f9f9f;" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="248.0">
-                        <font>
-                           <Font size="14.0" />
-                        </font>
-                     </TextField>
                      <Label fx:id="actorLabel" layoutX="28.0" layoutY="333.0" text="Actor" textFill="#9f9f9f" AnchorPane.leftAnchor="30.0" AnchorPane.topAnchor="293.0">
                         <font>
                            <Font size="14.0" />
@@ -160,6 +137,9 @@
                            <VBox fx:id="actorsGridAncor" prefHeight="200.0" prefWidth="100.0" style="-fx-background-color: transparent;" />
                         </content>
                      </ScrollPane>
+                     <ComboBox fx:id="directorTextBox" editable="true" layoutX="174.0" layoutY="248.0" prefHeight="25.0" prefWidth="409.0" AnchorPane.leftAnchor="173.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="248.0" />
+                     <ComboBox fx:id="studioTextBox" editable="true" layoutX="174.0" layoutY="211.0" prefHeight="25.0" prefWidth="409.0" AnchorPane.leftAnchor="173.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="211.0" />
+                     <ComboBox fx:id="genreTextBox" editable="true" layoutX="173.0" layoutY="91.0" prefHeight="25.0" prefWidth="409.0" AnchorPane.leftAnchor="173.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="91.0" />
                   </AnchorPane>
                   <AnchorPane prefWidth="604.0" VBox.vgrow="SOMETIMES">
                      <children>