From c4365662cfa5e7c0a3a6b628020658659e1769db Mon Sep 17 00:00:00 2001 From: Austin Shalit Date: Thu, 21 Jul 2016 11:13:54 -0700 Subject: [PATCH 1/5] Change source selector to a dropdown. --- .../wpi/grip/ui/pipeline/AddSourceView.java | 51 ++++++++++--------- .../grip/ui/pipeline/AddSourceViewTest.java | 16 +++--- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java b/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java index cdce572dc8..ae300eb511 100644 --- a/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java +++ b/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java @@ -24,25 +24,24 @@ import java.util.Optional; import java.util.function.Consumer; import java.util.function.Predicate; - import javafx.application.Platform; +import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Parent; import javafx.scene.control.Button; import javafx.scene.control.ButtonBar; import javafx.scene.control.ButtonType; -import javafx.scene.control.ContentDisplay; import javafx.scene.control.Control; import javafx.scene.control.Dialog; +import javafx.scene.control.MenuButton; +import javafx.scene.control.MenuItem; import javafx.scene.control.Spinner; import javafx.scene.control.TextField; import javafx.scene.image.ImageView; -import javafx.scene.input.MouseEvent; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.text.Text; -import javafx.scene.text.TextAlignment; import javafx.stage.FileChooser; import javafx.stage.FileChooser.ExtensionFilter; @@ -58,10 +57,12 @@ public class AddSourceView extends HBox { static final String SOURCE_DIALOG_STYLE_CLASS = "source-dialog"; private final EventBus eventBus; - private final Button webcamButton; - private final Button ipcamButton; + private final MenuItem webcamButton; + private final MenuItem ipcamButton; private Optional activeDialog = Optional.empty(); + private final MenuButton menuButton = new MenuButton("Add Source"); + @Inject AddSourceView(EventBus eventBus, MultiImageFileSource.Factory multiImageSourceFactory, @@ -71,8 +72,9 @@ public class AddSourceView extends HBox { this.eventBus = eventBus; this.setFillHeight(true); + this.getChildren().add(menuButton); - addButton("Add\nImage(s)", + addMenuItem("Add\nImage(s)", getClass().getResource("/edu/wpi/grip/ui/icons/add-image.png"), mouseEvent -> { // Show a file picker so the user can open one or more images from disk @@ -120,14 +122,14 @@ public class AddSourceView extends HBox { } }); - webcamButton = addButton( + webcamButton = addMenuItem( "Add\nWebcam", getClass().getResource("/edu/wpi/grip/ui/icons/add-webcam.png"), mouseEvent -> { final Parent root = this.getScene().getRoot(); // Show a dialog for the user to pick a camera index - final Spinner cameraIndex = new Spinner(0, Integer.MAX_VALUE, 0); + final Spinner cameraIndex = new Spinner<>(0, Integer.MAX_VALUE, 0); final SourceDialog dialog = new SourceDialog(root, cameraIndex); dialog.setTitle("Add Webcam"); @@ -144,12 +146,10 @@ public class AddSourceView extends HBox { cameraSource.initialize(); return cameraSource; }, - e -> { - dialog.errorText.setText(e.getMessage()); - }); + e -> dialog.errorText.setText(e.getMessage())); }); - ipcamButton = addButton( + ipcamButton = addMenuItem( "Add IP\nCamera", getClass().getResource("/edu/wpi/grip/ui/icons/add-webcam.png"), mouseEvent -> { @@ -197,7 +197,7 @@ public class AddSourceView extends HBox { e -> dialog.errorText.setText(e.getMessage())); }); - addButton("Add\nHTTP source", getClass().getResource("/edu/wpi/grip/ui/icons/publish.png"), + addMenuItem("Add\nHTTP source", getClass().getResource("/edu/wpi/grip/ui/icons/publish.png"), mouseEvent -> { final Parent root = this.getScene().getRoot(); // Show a dialog to pick the server path images will be uploaded on @@ -252,28 +252,31 @@ private void loadCamera(Dialog dialog, SupplierWithIO /** * Add a new button for adding a source. This method takes care of setting the event handler. */ - private Button addButton(String text, URL graphicURL, EventHandler - onMouseClicked) { + private MenuItem addMenuItem(String text, URL graphicURL, EventHandler + onActionEvent) { final ImageView graphic = new ImageView(graphicURL.toString()); graphic.setFitWidth(DPIUtility.SMALL_ICON_SIZE); graphic.setFitHeight(DPIUtility.SMALL_ICON_SIZE); - final Button button = new Button(text, graphic); - button.setTextAlignment(TextAlignment.CENTER); - button.setContentDisplay(ContentDisplay.TOP); - button.setOnMouseClicked(onMouseClicked); + final MenuItem menuItem = new MenuItem(text, graphic); + menuItem.setOnAction(onActionEvent); - this.getChildren().add(button); - return button; + menuButton.getItems().add(menuItem); + return menuItem; + } + + @VisibleForTesting + MenuButton getMenuButton() { + return menuButton; } @VisibleForTesting - Button getWebcamButton() { + MenuItem getWebcamButton() { return webcamButton; } @VisibleForTesting - Button getIpcamButton() { + MenuItem getIpcamButton() { return ipcamButton; } diff --git a/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java b/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java index 74c93fb8ce..ab6eabc7c6 100644 --- a/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java +++ b/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java @@ -17,7 +17,7 @@ import java.io.IOException; import java.util.Optional; import java.util.Properties; - +import javafx.application.Platform; import javafx.scene.Scene; import javafx.stage.Stage; @@ -51,22 +51,22 @@ public void start(Stage stage) { @After public void after() { - // Ensuer that all of the dialogs that were created get closed afterward. + // Ensure that all of the dialogs that were created get closed afterward. addSourceView.closeDialogs(); } @Test @SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert") public void testClickOnCreateWebCameraOpensDialog() throws Exception { - clickOn(addSourceView.getWebcamButton()); + Platform.runLater(() -> addSourceView.getMenuButton().fire()); WaitForAsyncUtils.waitForFxEvents(); - verifyThat("." + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); + verifyThat('.' + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); } @Test @SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert") public void testClickOnCreateIPCameraOpensDialog() throws Exception { - clickOn(addSourceView.getIpcamButton()); + Platform.runLater(() -> addSourceView.getIpcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); verifyThat("." + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); } @@ -74,7 +74,7 @@ public void testClickOnCreateIPCameraOpensDialog() throws Exception { @Test public void testCreatesSourceStarted() throws Exception { // When - clickOn(addSourceView.getWebcamButton()); + Platform.runLater(() -> addSourceView.getWebcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); verifyThat("." + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); @@ -148,7 +148,7 @@ public void after() { @SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert") public void testWhenStartFailsDialogStillCloses() throws Exception { // When - clickOn(addSourceView.getWebcamButton()); + Platform.runLater(() -> addSourceView.getWebcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); clickOn("OK"); @@ -162,7 +162,7 @@ public void testWhenStartFailsDialogStillCloses() throws Exception { @Test public void testCreatesSourceStartedFails() throws Exception { // When - clickOn(addSourceView.getWebcamButton()); + Platform.runLater(() -> addSourceView.getWebcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); verifyThat("." + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); From 966a2a8695f00c8cf87d17df63e3c9a764776d34 Mon Sep 17 00:00:00 2001 From: Austin Shalit Date: Thu, 21 Jul 2016 11:13:54 -0700 Subject: [PATCH 2/5] Change source selector to a dropdown. --- .../wpi/grip/ui/pipeline/AddSourceView.java | 51 ++++++++++--------- .../grip/ui/pipeline/AddSourceViewTest.java | 16 +++--- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java b/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java index cdce572dc8..ae300eb511 100644 --- a/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java +++ b/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java @@ -24,25 +24,24 @@ import java.util.Optional; import java.util.function.Consumer; import java.util.function.Predicate; - import javafx.application.Platform; +import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Parent; import javafx.scene.control.Button; import javafx.scene.control.ButtonBar; import javafx.scene.control.ButtonType; -import javafx.scene.control.ContentDisplay; import javafx.scene.control.Control; import javafx.scene.control.Dialog; +import javafx.scene.control.MenuButton; +import javafx.scene.control.MenuItem; import javafx.scene.control.Spinner; import javafx.scene.control.TextField; import javafx.scene.image.ImageView; -import javafx.scene.input.MouseEvent; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.text.Text; -import javafx.scene.text.TextAlignment; import javafx.stage.FileChooser; import javafx.stage.FileChooser.ExtensionFilter; @@ -58,10 +57,12 @@ public class AddSourceView extends HBox { static final String SOURCE_DIALOG_STYLE_CLASS = "source-dialog"; private final EventBus eventBus; - private final Button webcamButton; - private final Button ipcamButton; + private final MenuItem webcamButton; + private final MenuItem ipcamButton; private Optional activeDialog = Optional.empty(); + private final MenuButton menuButton = new MenuButton("Add Source"); + @Inject AddSourceView(EventBus eventBus, MultiImageFileSource.Factory multiImageSourceFactory, @@ -71,8 +72,9 @@ public class AddSourceView extends HBox { this.eventBus = eventBus; this.setFillHeight(true); + this.getChildren().add(menuButton); - addButton("Add\nImage(s)", + addMenuItem("Add\nImage(s)", getClass().getResource("/edu/wpi/grip/ui/icons/add-image.png"), mouseEvent -> { // Show a file picker so the user can open one or more images from disk @@ -120,14 +122,14 @@ public class AddSourceView extends HBox { } }); - webcamButton = addButton( + webcamButton = addMenuItem( "Add\nWebcam", getClass().getResource("/edu/wpi/grip/ui/icons/add-webcam.png"), mouseEvent -> { final Parent root = this.getScene().getRoot(); // Show a dialog for the user to pick a camera index - final Spinner cameraIndex = new Spinner(0, Integer.MAX_VALUE, 0); + final Spinner cameraIndex = new Spinner<>(0, Integer.MAX_VALUE, 0); final SourceDialog dialog = new SourceDialog(root, cameraIndex); dialog.setTitle("Add Webcam"); @@ -144,12 +146,10 @@ public class AddSourceView extends HBox { cameraSource.initialize(); return cameraSource; }, - e -> { - dialog.errorText.setText(e.getMessage()); - }); + e -> dialog.errorText.setText(e.getMessage())); }); - ipcamButton = addButton( + ipcamButton = addMenuItem( "Add IP\nCamera", getClass().getResource("/edu/wpi/grip/ui/icons/add-webcam.png"), mouseEvent -> { @@ -197,7 +197,7 @@ public class AddSourceView extends HBox { e -> dialog.errorText.setText(e.getMessage())); }); - addButton("Add\nHTTP source", getClass().getResource("/edu/wpi/grip/ui/icons/publish.png"), + addMenuItem("Add\nHTTP source", getClass().getResource("/edu/wpi/grip/ui/icons/publish.png"), mouseEvent -> { final Parent root = this.getScene().getRoot(); // Show a dialog to pick the server path images will be uploaded on @@ -252,28 +252,31 @@ private void loadCamera(Dialog dialog, SupplierWithIO /** * Add a new button for adding a source. This method takes care of setting the event handler. */ - private Button addButton(String text, URL graphicURL, EventHandler - onMouseClicked) { + private MenuItem addMenuItem(String text, URL graphicURL, EventHandler + onActionEvent) { final ImageView graphic = new ImageView(graphicURL.toString()); graphic.setFitWidth(DPIUtility.SMALL_ICON_SIZE); graphic.setFitHeight(DPIUtility.SMALL_ICON_SIZE); - final Button button = new Button(text, graphic); - button.setTextAlignment(TextAlignment.CENTER); - button.setContentDisplay(ContentDisplay.TOP); - button.setOnMouseClicked(onMouseClicked); + final MenuItem menuItem = new MenuItem(text, graphic); + menuItem.setOnAction(onActionEvent); - this.getChildren().add(button); - return button; + menuButton.getItems().add(menuItem); + return menuItem; + } + + @VisibleForTesting + MenuButton getMenuButton() { + return menuButton; } @VisibleForTesting - Button getWebcamButton() { + MenuItem getWebcamButton() { return webcamButton; } @VisibleForTesting - Button getIpcamButton() { + MenuItem getIpcamButton() { return ipcamButton; } diff --git a/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java b/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java index 74c93fb8ce..ab6eabc7c6 100644 --- a/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java +++ b/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java @@ -17,7 +17,7 @@ import java.io.IOException; import java.util.Optional; import java.util.Properties; - +import javafx.application.Platform; import javafx.scene.Scene; import javafx.stage.Stage; @@ -51,22 +51,22 @@ public void start(Stage stage) { @After public void after() { - // Ensuer that all of the dialogs that were created get closed afterward. + // Ensure that all of the dialogs that were created get closed afterward. addSourceView.closeDialogs(); } @Test @SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert") public void testClickOnCreateWebCameraOpensDialog() throws Exception { - clickOn(addSourceView.getWebcamButton()); + Platform.runLater(() -> addSourceView.getMenuButton().fire()); WaitForAsyncUtils.waitForFxEvents(); - verifyThat("." + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); + verifyThat('.' + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); } @Test @SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert") public void testClickOnCreateIPCameraOpensDialog() throws Exception { - clickOn(addSourceView.getIpcamButton()); + Platform.runLater(() -> addSourceView.getIpcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); verifyThat("." + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); } @@ -74,7 +74,7 @@ public void testClickOnCreateIPCameraOpensDialog() throws Exception { @Test public void testCreatesSourceStarted() throws Exception { // When - clickOn(addSourceView.getWebcamButton()); + Platform.runLater(() -> addSourceView.getWebcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); verifyThat("." + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); @@ -148,7 +148,7 @@ public void after() { @SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert") public void testWhenStartFailsDialogStillCloses() throws Exception { // When - clickOn(addSourceView.getWebcamButton()); + Platform.runLater(() -> addSourceView.getWebcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); clickOn("OK"); @@ -162,7 +162,7 @@ public void testWhenStartFailsDialogStillCloses() throws Exception { @Test public void testCreatesSourceStartedFails() throws Exception { // When - clickOn(addSourceView.getWebcamButton()); + Platform.runLater(() -> addSourceView.getWebcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); verifyThat("." + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); From 0b67c423ead5441f363667a1bc8cf700e1b06386 Mon Sep 17 00:00:00 2001 From: Austin Shalit Date: Sat, 23 Jul 2016 17:49:27 -0700 Subject: [PATCH 3/5] Bug Fix --- .../wpi/grip/ui/pipeline/AddSourceView.java | 32 ++++++++----------- .../grip/ui/pipeline/AddSourceViewTest.java | 4 +-- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java b/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java index ae300eb511..2abf4f2928 100644 --- a/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java +++ b/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java @@ -59,6 +59,7 @@ public class AddSourceView extends HBox { private final MenuItem webcamButton; private final MenuItem ipcamButton; + private final MenuItem httpButton; private Optional activeDialog = Optional.empty(); private final MenuButton menuButton = new MenuButton("Add Source"); @@ -74,9 +75,8 @@ public class AddSourceView extends HBox { this.setFillHeight(true); this.getChildren().add(menuButton); - addMenuItem("Add\nImage(s)", - getClass().getResource("/edu/wpi/grip/ui/icons/add-image.png"), - mouseEvent -> { + addMenuItem("Image(s)", + getClass().getResource("/edu/wpi/grip/ui/icons/add-image.png"), mouseEvent -> { // Show a file picker so the user can open one or more images from disk final FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Open an image"); @@ -122,10 +122,8 @@ public class AddSourceView extends HBox { } }); - webcamButton = addMenuItem( - "Add\nWebcam", - getClass().getResource("/edu/wpi/grip/ui/icons/add-webcam.png"), - mouseEvent -> { + webcamButton = addMenuItem("Webcam", + getClass().getResource("/edu/wpi/grip/ui/icons/add-webcam.png"), mouseEvent -> { final Parent root = this.getScene().getRoot(); // Show a dialog for the user to pick a camera index @@ -149,10 +147,8 @@ public class AddSourceView extends HBox { e -> dialog.errorText.setText(e.getMessage())); }); - ipcamButton = addMenuItem( - "Add IP\nCamera", - getClass().getResource("/edu/wpi/grip/ui/icons/add-webcam.png"), - mouseEvent -> { + ipcamButton = addMenuItem("IP Camera", + getClass().getResource("/edu/wpi/grip/ui/icons/add-webcam.png"), mouseEvent -> { final Parent root = this.getScene().getRoot(); // Show a dialog for the user to pick a camera URL @@ -197,8 +193,8 @@ public class AddSourceView extends HBox { e -> dialog.errorText.setText(e.getMessage())); }); - addMenuItem("Add\nHTTP source", getClass().getResource("/edu/wpi/grip/ui/icons/publish.png"), - mouseEvent -> { + httpButton = addMenuItem("HTTP", + getClass().getResource("/edu/wpi/grip/ui/icons/publish.png"), mouseEvent -> { final Parent root = this.getScene().getRoot(); // Show a dialog to pick the server path images will be uploaded on final String imageRoot = GripServer.IMAGE_UPLOAD_PATH + "/"; @@ -265,11 +261,6 @@ private MenuItem addMenuItem(String text, URL graphicURL, EventHandler { diff --git a/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java b/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java index ab6eabc7c6..7495a70e80 100644 --- a/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java +++ b/ui/src/test/java/edu/wpi/grip/ui/pipeline/AddSourceViewTest.java @@ -58,7 +58,7 @@ public void after() { @Test @SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert") public void testClickOnCreateWebCameraOpensDialog() throws Exception { - Platform.runLater(() -> addSourceView.getMenuButton().fire()); + Platform.runLater(() -> addSourceView.getWebcamButton().fire()); WaitForAsyncUtils.waitForFxEvents(); verifyThat('.' + AddSourceView.SOURCE_DIALOG_STYLE_CLASS, NodeMatchers.isVisible()); } @@ -140,7 +140,7 @@ public void start(Stage stage) { @After public void after() { - // Ensuer that all of the dialogs that were created get closed afterward. + // Ensure that all of the dialogs that were created get closed afterward. addSourceView.closeDialogs(); } From 7a62f69250d87dd8410bacc299bf2587b45f3aad Mon Sep 17 00:00:00 2001 From: Austin Shalit Date: Sat, 23 Jul 2016 18:23:34 -0700 Subject: [PATCH 4/5] Rename AddSourceView -> AddSourceButton --- ...ddSourceView.java => AddSourceButton.java} | 14 +++++------- .../grip/ui/pipeline/PipelineController.java | 9 +++----- .../edu/wpi/grip/ui/pipeline/Pipeline.fxml | 3 +-- ...ViewTest.java => AddSourceButtonTest.java} | 22 +++++++++---------- 4 files changed, 20 insertions(+), 28 deletions(-) rename ui/src/main/java/edu/wpi/grip/ui/pipeline/{AddSourceView.java => AddSourceButton.java} (97%) rename ui/src/test/java/edu/wpi/grip/ui/pipeline/{AddSourceViewTest.java => AddSourceButtonTest.java} (88%) diff --git a/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java b/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceButton.java similarity index 97% rename from ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java rename to ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceButton.java index 2abf4f2928..74e20f6189 100644 --- a/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceView.java +++ b/ui/src/main/java/edu/wpi/grip/ui/pipeline/AddSourceButton.java @@ -39,7 +39,6 @@ import javafx.scene.control.TextField; import javafx.scene.image.ImageView; import javafx.scene.layout.GridPane; -import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.text.Text; import javafx.stage.FileChooser; @@ -51,7 +50,7 @@ * construct that source. As an example, the image file source results in a file picker that the * user can use to browse for an image. */ -public class AddSourceView extends HBox { +public class AddSourceButton extends MenuButton { @VisibleForTesting static final String SOURCE_DIALOG_STYLE_CLASS = "source-dialog"; @@ -62,18 +61,15 @@ public class AddSourceView extends HBox { private final MenuItem httpButton; private Optional activeDialog = Optional.empty(); - private final MenuButton menuButton = new MenuButton("Add Source"); - @Inject - AddSourceView(EventBus eventBus, + AddSourceButton(EventBus eventBus, MultiImageFileSource.Factory multiImageSourceFactory, ImageFileSource.Factory imageSourceFactory, CameraSource.Factory cameraSourceFactory, HttpSource.Factory httpSourceFactory) { this.eventBus = eventBus; - this.setFillHeight(true); - this.getChildren().add(menuButton); + this.setText("Add Source"); addMenuItem("Image(s)", getClass().getResource("/edu/wpi/grip/ui/icons/add-image.png"), mouseEvent -> { @@ -257,7 +253,7 @@ private MenuItem addMenuItem(String text, URL graphicURL, EventHandler { diff --git a/ui/src/main/java/edu/wpi/grip/ui/pipeline/PipelineController.java b/ui/src/main/java/edu/wpi/grip/ui/pipeline/PipelineController.java index f33336d5fc..09f83e9710 100644 --- a/ui/src/main/java/edu/wpi/grip/ui/pipeline/PipelineController.java +++ b/ui/src/main/java/edu/wpi/grip/ui/pipeline/PipelineController.java @@ -31,7 +31,6 @@ import java.util.NavigableMap; import java.util.TreeMap; import java.util.stream.Collectors; - import javafx.beans.InvalidationListener; import javafx.beans.property.ReadOnlyObjectProperty; import javafx.collections.ObservableList; @@ -43,9 +42,7 @@ import javafx.scene.Parent; import javafx.scene.input.TransferMode; import javafx.scene.layout.HBox; -import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; - import javax.annotation.Nullable; import javax.inject.Inject; @@ -61,7 +58,7 @@ public final class PipelineController { @FXML private VBox sourcesBox; @FXML - private Pane addSourcePane; + private VBox addSourceBox; @FXML private HBox stepBox; @FXML @@ -78,7 +75,7 @@ public final class PipelineController { @Inject private StepController.Factory stepControllerFactory; @Inject - private AddSourceView addSourceView; + private AddSourceButton addSourceButton; @Inject private OperationDragService operationDragService; @Inject @@ -135,7 +132,7 @@ public void initialize() throws Exception { }); }); - addSourcePane.getChildren().add(addSourceView); + addSourceBox.getChildren().add(addSourceButton); } /** diff --git a/ui/src/main/resources/edu/wpi/grip/ui/pipeline/Pipeline.fxml b/ui/src/main/resources/edu/wpi/grip/ui/pipeline/Pipeline.fxml index 4f5878e345..ad1e49edff 100644 --- a/ui/src/main/resources/edu/wpi/grip/ui/pipeline/Pipeline.fxml +++ b/ui/src/main/resources/edu/wpi/grip/ui/pipeline/Pipeline.fxml @@ -5,7 +5,6 @@ - @@ -21,7 +20,7 @@