Browse Source

Implemented Actor/Role row removal and floating elements of row

toomanysugar 4 years ago
parent
commit
8a5a548fa5

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

@@ -4,10 +4,7 @@ import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Node;
-import javafx.scene.control.Button;
-import javafx.scene.control.ScrollPane;
-import javafx.scene.control.TextArea;
-import javafx.scene.control.TextField;
+import javafx.scene.control.*;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.AnchorPane;
 import javafx.scene.layout.HBox;
@@ -61,6 +58,20 @@ public class AddMovieController extends Controller {
     @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;
@@ -153,13 +164,32 @@ public class AddMovieController extends Controller {
             //row.setPrefWidth(actorsGrid.getWidth());
             actorsGridAncor.getChildren().add(row);
             actorsGrid.setMinHeight(actorsGrid.getMinHeight() + 35);
-            //actorsGrid.getChildren().add(row);
+            if ((long) actorsGridAncor.getChildren().size() > 1)
+                moveFloatingElements(35);
         } catch (IOException ex) {
             ex.printStackTrace();
         }
-        //System.out.println("LoginForm closed");
     }
 
+    public void removeActor() {
+        int count = (actorsGridAncor.getChildren().size());
+        if (count > 1) {
+            actorsGridAncor.getChildren().remove(count - 1);
+            actorsGrid.setMinHeight(actorsGrid.getMinHeight() - 35);
+            moveFloatingElements(-35);
+        }
+    }
+
+    private void moveFloatingElements(int space) {
+        AnchorPane.setTopAnchor(actorLabel, actorLabel.getLayoutY() + space);
+        AnchorPane.setTopAnchor(actorUnderline, actorUnderline.getLayoutY() + space);
+        AnchorPane.setTopAnchor(roleLabel, roleLabel.getLayoutY() + space);
+        AnchorPane.setTopAnchor(roleUnderline, roleUnderline.getLayoutY() + space);
+        AnchorPane.setTopAnchor(buttonRowAdd, buttonRowAdd.getLayoutY() + space);
+        AnchorPane.setTopAnchor(buttonRowRem, buttonRowRem.getLayoutY() + space);
+}
+
+
     public void executeForm() {
         //read all textboxes
         Movie NewMovie = new Movie();

+ 15 - 9
src/main/resources/AddMovieWindow.fxml

@@ -1,8 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<?import javafx.scene.control.*?>
-<?import javafx.scene.layout.*?>
-<?import javafx.scene.text.*?>
+<?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?>
 
 <BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="0.0" prefHeight="553.0" prefWidth="616.0" stylesheets="@AddMovieWindowStyle.css" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.moviesdb.AddMovieController">
    <right>
@@ -110,25 +116,25 @@
 							  <Font size="14.0" />
 						   </font>
 						</TextField>
-						<Label layoutX="28.0" layoutY="333.0" text="Actor" textFill="#9f9f9f" AnchorPane.leftAnchor="30.0" AnchorPane.topAnchor="293.0">
+						<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" />
 						   </font>
 						</Label>
 						<Pane layoutX="124.0" layoutY="370.0" minWidth="304.0" prefHeight="3.0" prefWidth="304.0" style="-fx-background-color: #9f9f9f;" visible="false" AnchorPane.leftAnchor="174.0" AnchorPane.rightAnchor="126.0" AnchorPane.topAnchor="313.0" />
-						<Pane layoutX="22.0" layoutY="359.0" maxHeight="1.0" maxWidth="150.0" minHeight="1.0" minWidth="150.0" prefHeight="1.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="24.0" AnchorPane.topAnchor="313.0" />
-						<Label layoutX="422.0" layoutY="378.0" text="Role" textFill="#9f9f9f" AnchorPane.rightAnchor="68.0" AnchorPane.topAnchor="293.0">
+						<Pane fx:id="actorUnderline" layoutX="22.0" layoutY="359.0" maxHeight="1.0" maxWidth="150.0" minHeight="1.0" minWidth="150.0" prefHeight="1.0" prefWidth="150.0" style="-fx-background-color: #9f9f9f;" AnchorPane.leftAnchor="24.0" AnchorPane.topAnchor="313.0" />
+						<Label fx:id="roleLabel" layoutX="422.0" layoutY="378.0" text="Role" textFill="#9f9f9f" AnchorPane.rightAnchor="68.0" AnchorPane.topAnchor="293.0">
 						   <font>
 							  <Font size="14.0" />
 						   </font>
 						</Label>
-						<Pane layoutX="392.0" layoutY="369.0" maxHeight="1.0" maxWidth="64.0" minHeight="1.0" minWidth="64.0" prefHeight="1.0" prefWidth="64.0" style="-fx-background-color: #9f9f9f;" AnchorPane.rightAnchor="62.0" AnchorPane.topAnchor="313.0" />
-						<Label alignment="CENTER" layoutX="555.0" layoutY="323.0" onMouseClicked="#addActor" prefHeight="17.0" prefWidth="24.0" text="+" textFill="#9f9f9f" AnchorPane.rightAnchor="38.0" AnchorPane.topAnchor="283.0">
+						<Pane fx:id="roleUnderline" layoutX="392.0" layoutY="369.0" maxHeight="1.0" maxWidth="64.0" minHeight="1.0" minWidth="64.0" prefHeight="1.0" prefWidth="64.0" style="-fx-background-color: #9f9f9f;" AnchorPane.rightAnchor="62.0" AnchorPane.topAnchor="313.0" />
+						<Label fx:id="buttonRowAdd" alignment="CENTER" layoutX="555.0" layoutY="323.0" onMouseClicked="#addActor" prefHeight="17.0" prefWidth="24.0" text="+" textFill="#9f9f9f" AnchorPane.rightAnchor="38.0" AnchorPane.topAnchor="283.0">
 						   <font>
 							  <Font name="System Bold" size="24.0" />
 						   </font>
 						</Label>
-						<Label alignment="CENTER" layoutX="495.0" layoutY="323.0" prefHeight="17.0" prefWidth="24.0" text="-" textFill="#9f9f9f" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="283.0">
+						<Label fx:id="buttonRowRem" alignment="CENTER" layoutX="495.0" layoutY="323.0" onMouseClicked="#removeActor" prefHeight="17.0" prefWidth="24.0" text="-" textFill="#9f9f9f" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="283.0">
 						   <font>
 							  <Font name="System Bold" size="24.0" />
 						   </font>