From dccaf7e73de21869a418836854befe2dabf81b40 Mon Sep 17 00:00:00 2001 From: Rohit Awate Date: Tue, 14 Aug 2018 14:23:50 +0530 Subject: [PATCH] Several minor UI tweaks, add live params preview automatic KV field addition --- .../controllers/BodyTabController.java | 7 +- .../controllers/DashboardController.java | 54 ++++--- .../FileKeyValueFieldController.java | 9 +- .../controllers/FormDataTabController.java | 36 +++-- .../controllers/HeaderTabController.java | 23 +-- .../controllers/HistoryItemController.java | 17 +++ .../StringKeyValueFieldController.java | 21 +++ .../everest/controllers/URLTabController.java | 25 +-- .../highlighters/HighlighterFactory.java | 9 +- .../everest/format/FormatterFactory.java | 3 +- .../requestmanager/RequestManager.java | 4 + src/main/resources/assets/File.png | Bin 0 -> 755 bytes src/main/resources/css/Adreana.css | 28 +++- src/main/resources/css/syntax/Moondust.css | 2 +- .../resources/fxml/homewindow/BodyTab.fxml | 57 ++++++- .../resources/fxml/homewindow/Dashboard.fxml | 144 ++++++++---------- .../fxml/homewindow/FormDataTab.fxml | 52 +------ .../resources/fxml/homewindow/HeaderTab.fxml | 36 +---- .../fxml/homewindow/HistoryItem.fxml | 27 ++-- .../fxml/homewindow/HistoryPane.fxml | 63 ++++---- .../resources/fxml/homewindow/URLTab.fxml | 36 +---- 21 files changed, 335 insertions(+), 318 deletions(-) create mode 100644 src/main/resources/assets/File.png diff --git a/src/main/java/com/rohitawate/everest/controllers/BodyTabController.java b/src/main/java/com/rohitawate/everest/controllers/BodyTabController.java index 0717c1e..05a173e 100644 --- a/src/main/java/com/rohitawate/everest/controllers/BodyTabController.java +++ b/src/main/java/com/rohitawate/everest/controllers/BodyTabController.java @@ -111,7 +111,7 @@ public class BodyTabController implements Initializable { @FXML private void browseFile() { FileChooser fileChooser = new FileChooser(); - fileChooser.setTitle("Choose a binary file to add to request..."); + fileChooser.setTitle("Choose a binary file to add to the request"); Window dashboardWindow = filePathField.getScene().getWindow(); String filePath; @@ -124,6 +124,11 @@ public class BodyTabController implements Initializable { filePathField.setText(filePath); } + @FXML + private void clearFilePath() { + filePathField.clear(); + } + public ComposerState getState() { ComposerState state = new ComposerState(); diff --git a/src/main/java/com/rohitawate/everest/controllers/DashboardController.java b/src/main/java/com/rohitawate/everest/controllers/DashboardController.java index d4f588b..7f02a6a 100644 --- a/src/main/java/com/rohitawate/everest/controllers/DashboardController.java +++ b/src/main/java/com/rohitawate/everest/controllers/DashboardController.java @@ -42,7 +42,6 @@ import com.rohitawate.everest.state.FieldState; import javafx.beans.binding.Bindings; import javafx.beans.property.IntegerProperty; import javafx.beans.property.SimpleIntegerProperty; -import javafx.event.ActionEvent; import javafx.event.Event; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; @@ -186,7 +185,7 @@ public class DashboardController implements Initializable { responseTypeBox.valueProperty().addListener(change -> { String type = responseTypeBox.getValue(); - if (type.equals("JSON")) { + if (type.equals(HTTPConstants.JSON)) { try { responseArea.setText(responseArea.getText(), FormatterFactory.getHighlighter(type), @@ -263,16 +262,16 @@ public class DashboardController implements Initializable { if (bodyTabController.rawTab.isSelected()) { String contentType; switch (bodyTabController.rawInputTypeBox.getValue()) { - case "PLAIN TEXT": + case HTTPConstants.PLAIN_TEXT: contentType = MediaType.TEXT_PLAIN; break; - case "JSON": + case HTTPConstants.JSON: contentType = MediaType.APPLICATION_JSON; break; - case "XML": + case HTTPConstants.XML: contentType = MediaType.APPLICATION_XML; break; - case "HTML": + case HTTPConstants.HTML: contentType = MediaType.TEXT_HTML; break; default: @@ -459,15 +458,15 @@ public class DashboardController implements Initializable { switch (contentType.toLowerCase()) { case "application/json": - simplifiedContentType = "JSON"; + simplifiedContentType = HTTPConstants.JSON; visualizerTab.setDisable(false); visualizer.populate(body); break; case "application/xml": - simplifiedContentType = "XML"; + simplifiedContentType = HTTPConstants.XML; break; case "text/html": - simplifiedContentType = "HTML"; + simplifiedContentType = HTTPConstants.HTML; if (Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { snackbar.show("Open link in browser?", "YES", 5000, e -> { snackbar.close(); @@ -482,10 +481,10 @@ public class DashboardController implements Initializable { } break; default: - simplifiedContentType = "PLAIN TEXT"; + simplifiedContentType = HTTPConstants.PLAIN_TEXT; } } else { - simplifiedContentType = "PLAIN TEXT"; + simplifiedContentType = HTTPConstants.PLAIN_TEXT; } responseArea.setText(body, @@ -564,35 +563,38 @@ public class DashboardController implements Initializable { } private void addParamField() { - addParamField("", "", null, false); + addParamField("", "", false); } private void addParamField(FieldState state) { - addParamField(state.key, state.value, null, state.checked); - } - - @FXML - private void addParamField(ActionEvent event) { - addParamField("", "", event, false); + addParamField(state.key, state.value, state.checked); } /** * Adds a new URL-parameter field */ - private void addParamField(String key, String value, ActionEvent event, boolean checked) { + private void addParamField(String key, String value, boolean checked) { /* Re-uses previous field if it is empty, else loads a new one. A value of null for the 'event' parameter indicates that the method call came from code and not from the user. This call is made while recovering the application state. */ - if (paramsControllers.size() > 0 && event == null) { + if (paramsControllers.size() > 0) { StringKeyValueFieldController previousController = paramsControllers.get(paramsControllers.size() - 1); if (previousController.isKeyFieldEmpty() && previousController.isValueFieldEmpty()) { previousController.setKeyField(key); previousController.setValueField(value); + + /* + For when the last field is loaded from setState. + This makes sure an extra blank field is always present. + */ + if (!(key.equals("") && value.equals(""))) + addParamField(); + return; } } @@ -611,7 +613,12 @@ public class DashboardController implements Initializable { paramsBox.getChildren().remove(headerField); paramsControllers.remove(controller); paramsCountProperty.set(paramsCountProperty.get() - 1); + appendParams(); }); + controller.setKeyHandler(keyEvent -> addParamField()); + controller.getSelectedProperty().addListener(e -> appendParams()); + controller.getKeyProperty().addListener(e -> appendParams()); + controller.getValueProperty().addListener(e -> appendParams()); paramsBox.getChildren().add(headerField); } catch (IOException e) { LoggingService.logSevere("Could not append params field.", e, LocalDateTime.now()); @@ -691,13 +698,13 @@ public class DashboardController implements Initializable { // TODO: Get rid of similar switches String contentType; switch (responseTypeBox.getValue()) { - case "JSON": + case HTTPConstants.JSON: contentType = MediaType.APPLICATION_JSON; break; - case "XML": + case HTTPConstants.XML: contentType = MediaType.APPLICATION_XML; break; - case "HTML": + case HTTPConstants.HTML: contentType = MediaType.TEXT_HTML; break; default: @@ -815,6 +822,7 @@ public class DashboardController implements Initializable { if (state.composer.params != null) { for (FieldState fieldState : state.composer.params) addParamField(fieldState); + appendParams(); } if (!(state.composer.httpMethod.equals(HTTPConstants.GET) || state.composer.httpMethod.equals(HTTPConstants.DELETE))) diff --git a/src/main/java/com/rohitawate/everest/controllers/FileKeyValueFieldController.java b/src/main/java/com/rohitawate/everest/controllers/FileKeyValueFieldController.java index 4e5da97..7e30ca1 100644 --- a/src/main/java/com/rohitawate/everest/controllers/FileKeyValueFieldController.java +++ b/src/main/java/com/rohitawate/everest/controllers/FileKeyValueFieldController.java @@ -20,9 +20,11 @@ import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXCheckBox; import com.rohitawate.everest.state.FieldState; import javafx.beans.binding.Bindings; +import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.TextField; +import javafx.scene.input.KeyEvent; import javafx.stage.FileChooser; import javafx.stage.Window; import javafx.util.Pair; @@ -75,7 +77,7 @@ public class FileKeyValueFieldController implements Initializable { @FXML private void browseFile() { FileChooser fileChooser = new FileChooser(); - fileChooser.setTitle("Choose a binary file to add to request..."); + fileChooser.setTitle("Choose a binary file to add to the request"); Window dashboardWindow = fileValueField.getScene().getWindow(); String filePath; try { @@ -117,4 +119,9 @@ public class FileKeyValueFieldController implements Initializable { public void setChecked(boolean checked) { checkBox.setSelected(checked); } + + public void setKeyHandler(EventHandler handler) { + fileKeyField.setOnKeyPressed(handler); + fileValueField.setOnKeyPressed(handler); + } } diff --git a/src/main/java/com/rohitawate/everest/controllers/FormDataTabController.java b/src/main/java/com/rohitawate/everest/controllers/FormDataTabController.java index f422123..bb27ff3 100644 --- a/src/main/java/com/rohitawate/everest/controllers/FormDataTabController.java +++ b/src/main/java/com/rohitawate/everest/controllers/FormDataTabController.java @@ -61,32 +61,35 @@ public class FormDataTabController implements Initializable { } public void addFileField(FieldState state) { - addFileField(state.key, state.value, null, state.checked); - } - - @FXML - private void addFileField(ActionEvent event) { - addFileField("", "", event, false); + addFileField(state.key, state.value, state.checked); } private void addFileField() { - addFileField("", "", null, false); + addFileField("", "", false); } - private void addFileField(String key, String value, ActionEvent event, boolean checked) { + private void addFileField(String key, String value, boolean checked) { /* Re-uses previous field if it is empty, else loads a new one. A value of null for the 'event' parameter indicates that the method call came from code and not from the user. This call is made while recovering the application state. */ - if (fileControllers.size() > 0 && event == null) { + if (fileControllers.size() > 0) { FileKeyValueFieldController previousController = fileControllers.get(fileControllers.size() - 1); if (previousController.isFileKeyFieldEmpty() && previousController.isFileValueFieldEmpty()) { previousController.setFileKeyField(key); previousController.setFileValueField(value); + + /* + For when the last field is loaded from setState. + This makes sure an extra blank field is always present. + */ + if (!key.equals("") && !value.equals("")) + addFileField(); + return; } } @@ -107,6 +110,7 @@ public class FormDataTabController implements Initializable { fileControllers.remove(controller); fileControllersCount.set(fileControllersCount.get() - 1); }); + controller.setKeyHandler(keyEvent -> addFileField()); fieldsBox.getChildren().add(fileField); } catch (IOException e) { LoggingService.logSevere("Could not add file field.", e, LocalDateTime.now()); @@ -117,11 +121,6 @@ public class FormDataTabController implements Initializable { addStringField(state.key, state.value, null, state.checked); } - @FXML - private void addStringField(ActionEvent event) { - addStringField("", "", event, false); - } - private void addStringField() { addStringField("", "", null, false); } @@ -140,6 +139,14 @@ public class FormDataTabController implements Initializable { previousController.isValueFieldEmpty()) { previousController.setKeyField(key); previousController.setValueField(value); + + /* + For when the last field is loaded from setState. + This makes sure an extra blank field is always present. + */ + if (!key.equals("") && !value.equals("")) + addStringField(); + return; } } @@ -159,6 +166,7 @@ public class FormDataTabController implements Initializable { stringControllers.remove(controller); stringControllersCount.set(stringControllersCount.get() - 1); }); + controller.setKeyHandler(keyEvent -> addStringField()); fieldsBox.getChildren().add(stringField); } catch (IOException e) { LoggingService.logSevere("Could not add string field.", e, LocalDateTime.now()); diff --git a/src/main/java/com/rohitawate/everest/controllers/HeaderTabController.java b/src/main/java/com/rohitawate/everest/controllers/HeaderTabController.java index e4e0f0e..54b5f17 100644 --- a/src/main/java/com/rohitawate/everest/controllers/HeaderTabController.java +++ b/src/main/java/com/rohitawate/everest/controllers/HeaderTabController.java @@ -22,7 +22,6 @@ import com.rohitawate.everest.state.FieldState; import javafx.beans.binding.Bindings; import javafx.beans.property.IntegerProperty; import javafx.beans.property.SimpleIntegerProperty; -import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; @@ -54,32 +53,35 @@ public class HeaderTabController implements Initializable { } public void addHeader(FieldState state) { - addHeader(state.key, state.value, null, state.checked); + addHeader(state.key, state.value, state.checked); } private void addHeader() { - addHeader("", "", null, false); + addHeader("", "", false); } - @FXML - private void addHeader(ActionEvent event) { - addHeader("", "", event, false); - } - - private void addHeader(String key, String value, ActionEvent event, boolean checked) { + private void addHeader(String key, String value, boolean checked) { /* Re-uses previous field if it is empty, else loads a new one. A value of null for the 'event' parameter indicates that the method call came from code and not from the user. This call is made while recovering the application state. */ - if (controllers.size() > 0 && event == null) { + if (controllers.size() > 0) { StringKeyValueFieldController previousController = controllers.get(controllers.size() - 1); if (previousController.isKeyFieldEmpty() && previousController.isValueFieldEmpty()) { previousController.setKeyField(key); previousController.setValueField(value); + + /* + For when the last field is loaded from setState. + This makes sure an extra blank field is always present. + */ + if (!key.equals("") && !value.equals("")) + addHeader(); + return; } } @@ -100,6 +102,7 @@ public class HeaderTabController implements Initializable { controllers.remove(controller); controllersCount.set(controllersCount.get() - 1); }); + controller.setKeyHandler(keyEvent -> addHeader()); headersBox.getChildren().add(headerField); } catch (IOException e) { LoggingService.logSevere("Could not add string field.", e, LocalDateTime.now()); diff --git a/src/main/java/com/rohitawate/everest/controllers/HistoryItemController.java b/src/main/java/com/rohitawate/everest/controllers/HistoryItemController.java index 13df130..a37b6a3 100644 --- a/src/main/java/com/rohitawate/everest/controllers/HistoryItemController.java +++ b/src/main/java/com/rohitawate/everest/controllers/HistoryItemController.java @@ -52,6 +52,23 @@ public class HistoryItemController implements Initializable, Searchable handler) { + keyField.setOnKeyPressed(handler); + valueField.setOnKeyPressed(handler); + } + + public BooleanProperty getSelectedProperty() { + return checkBox.selectedProperty(); + } + + public StringProperty getKeyProperty() { + return keyField.textProperty(); + } + + public StringProperty getValueProperty() { + return valueField.textProperty(); + } } diff --git a/src/main/java/com/rohitawate/everest/controllers/URLTabController.java b/src/main/java/com/rohitawate/everest/controllers/URLTabController.java index c757995..84b587e 100644 --- a/src/main/java/com/rohitawate/everest/controllers/URLTabController.java +++ b/src/main/java/com/rohitawate/everest/controllers/URLTabController.java @@ -22,7 +22,6 @@ import com.rohitawate.everest.state.FieldState; import javafx.beans.binding.Bindings; import javafx.beans.property.IntegerProperty; import javafx.beans.property.SimpleIntegerProperty; -import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; @@ -54,32 +53,35 @@ public class URLTabController implements Initializable { public void addField(FieldState state) { - addField(state.key, state.value, null, state.checked); + addField(state.key, state.value, state.checked); } private void addField() { - addField("", "", null, false); + addField("", "", false); } - @FXML - private void addField(ActionEvent event) { - addField("", "", event, false); - } - - private void addField(String key, String value, ActionEvent event, boolean checked) { + private void addField(String key, String value, boolean checked) { /* Re-uses previous field if it is empty, else loads a new one. A value of null for the 'event' parameter indicates that the method call came from code and not from the user. This call is made while recovering the application state. */ - if (controllers.size() > 0 && event == null) { + if (controllers.size() > 0) { StringKeyValueFieldController previousController = controllers.get(controllers.size() - 1); if (previousController.isKeyFieldEmpty() && previousController.isValueFieldEmpty()) { previousController.setKeyField(key); previousController.setValueField(value); + + /* + For when the last field is loaded from setState. + This makes sure an extra blank field is always present. + */ + if (!key.equals("") && !value.equals("")) + addField(); + return; } } @@ -98,8 +100,9 @@ public class URLTabController implements Initializable { controller.deleteButton.setOnAction(e -> { fieldsBox.getChildren().remove(stringField); controllers.remove(controller); - controllersCount.set(controllersCount.get() + 1); + controllersCount.set(controllersCount.get() - 1); }); + controller.setKeyHandler(keyEvent -> addField()); fieldsBox.getChildren().add(stringField); } catch (IOException e) { LoggingService.logSevere("Could not add string field.", e, LocalDateTime.now()); diff --git a/src/main/java/com/rohitawate/everest/controllers/codearea/highlighters/HighlighterFactory.java b/src/main/java/com/rohitawate/everest/controllers/codearea/highlighters/HighlighterFactory.java index b51b578..6ed234b 100644 --- a/src/main/java/com/rohitawate/everest/controllers/codearea/highlighters/HighlighterFactory.java +++ b/src/main/java/com/rohitawate/everest/controllers/codearea/highlighters/HighlighterFactory.java @@ -1,6 +1,7 @@ package com.rohitawate.everest.controllers.codearea.highlighters; import com.rohitawate.everest.exceptions.DuplicateHighlighterException; +import com.rohitawate.everest.models.requests.HTTPConstants; import java.util.HashMap; @@ -15,13 +16,13 @@ public class HighlighterFactory { static { highlighters = new HashMap<>(); - highlighters.put("JSON", new JSONHighlighter()); + highlighters.put(HTTPConstants.JSON, new JSONHighlighter()); XMLHighlighter xmlHighlighter = new XMLHighlighter(); - highlighters.put("XML", xmlHighlighter); - highlighters.put("HTML", xmlHighlighter); + highlighters.put(HTTPConstants.XML, xmlHighlighter); + highlighters.put(HTTPConstants.HTML, xmlHighlighter); - highlighters.put("PLAIN TEXT", new PlaintextHighlighter()); + highlighters.put(HTTPConstants.PLAIN_TEXT, new PlaintextHighlighter()); } public static Highlighter getHighlighter(String name) { diff --git a/src/main/java/com/rohitawate/everest/format/FormatterFactory.java b/src/main/java/com/rohitawate/everest/format/FormatterFactory.java index 0b393a0..3015f7b 100644 --- a/src/main/java/com/rohitawate/everest/format/FormatterFactory.java +++ b/src/main/java/com/rohitawate/everest/format/FormatterFactory.java @@ -2,6 +2,7 @@ package com.rohitawate.everest.format; import com.rohitawate.everest.exceptions.DuplicateFormatterException; import com.rohitawate.everest.exceptions.DuplicateHighlighterException; +import com.rohitawate.everest.models.requests.HTTPConstants; import java.util.HashMap; @@ -15,7 +16,7 @@ public class FormatterFactory { static { formatters = new HashMap<>(); - formatters.put("JSON", new JSONFormatter()); + formatters.put(HTTPConstants.JSON, new JSONFormatter()); } public static Formatter getHighlighter(String type) { diff --git a/src/main/java/com/rohitawate/everest/requestmanager/RequestManager.java b/src/main/java/com/rohitawate/everest/requestmanager/RequestManager.java index 0523003..de06349 100644 --- a/src/main/java/com/rohitawate/everest/requestmanager/RequestManager.java +++ b/src/main/java/com/rohitawate/everest/requestmanager/RequestManager.java @@ -238,6 +238,10 @@ public class RequestManager extends Service { overriddenContentType = MediaType.APPLICATION_OCTET_STREAM; filePath = dataRequest.getBody(); + if (filePath.equals("")) { + throw new FileNotFoundException("No file selected"); + } + File check = new File(filePath); if (!check.exists()) { diff --git a/src/main/resources/assets/File.png b/src/main/resources/assets/File.png new file mode 100644 index 0000000000000000000000000000000000000000..a4667ce899b07241b63c59ea1360b810aa72c8d0 GIT binary patch literal 755 zcmVVk<6*2&dI5fXHxK z%>sxBr`0Zif^cfLfT>KoKH-mUStzwzz=V7e4QaQ4m$-@9vIeYTo7{{koW(8d!TN&! zM>O6${UKMthKR}Mg^k%l-Sq{$t+gVyt3beEoEAhhV@}xnjAzUdO^$%8LRN^OU&R7) z7V)Qw`eu>y1cot)jRpOta6e=GByt42uC-OcTG&c7<-Zhg9@EONPE6Ovu3W${dNS;a z=&6mJM2>*>88(%Tos)$Iv0rf-O=SwtQjKy1e8=q!yGmH|St#cTY!a$;MZ3{d=J7$O zT1S&3;DYdy-JN0Ej2U6$cP7OsN5DzpDU?ljZS2Yg+{Gc)gwTUjqudaBr1*tqDV_el znXUAD7OzsB$xWjVGwdqizf7ZBuv=OdiV2|^yujxaXL1CL3R{UP7V#4tOEJn3uunB< z6!xYXM8lBfUx002ovPDHLkV1g7}R-*s_ literal 0 HcmV?d00001 diff --git a/src/main/resources/css/Adreana.css b/src/main/resources/css/Adreana.css index b58a875..4192908 100644 --- a/src/main/resources/css/Adreana.css +++ b/src/main/resources/css/Adreana.css @@ -23,7 +23,7 @@ } #addressField { - -fx-background-color: #6e6e6e; + -fx-background-color: #707070; -fx-text-fill: white; } @@ -34,8 +34,8 @@ .combo-box .list-cell { -fx-background-color: #282828; - -fx-pref-height: 40px; - -fx-font-size: 15px; + -fx-pref-height: 35px; + -fx-font-size: 14px; -fx-text-fill: #d4d4d4; -fx-padding: 0 0 0 10px; } @@ -63,8 +63,9 @@ -fx-background-color: transparent; } -#sendButton { - -fx-background-color: #c45015; +#sendButton, +#sendButtonPane { + -fx-background-color: #282828; } #responseDetails { @@ -209,7 +210,14 @@ -fx-padding: 0px; } -#keyField, #valueField, #filePathField { +#keyField, #valueField { + -fx-prompt-text-fill: #919191; + -fx-background-color: #303030; + -fx-text-fill: white; +} + +/* Binary tab */ +#filePathBox, #filePathField { -fx-prompt-text-fill: #919191; -fx-background-color: #303030; -fx-text-fill: white; @@ -238,7 +246,7 @@ } #browseButton { - -fx-background-color: #a2a2a2; + -fx-background-color: #bababa; } #browseButton:hover { @@ -317,6 +325,10 @@ -fx-background-color: #2a2a2a; } +#responseTypeBox .list-cell { + -fx-font-size: 13px; +} + /* Response Headers Viewer */ .response-header-label { -fx-font-family: "Liberation Mono", "Consolas", "Courier New", "Monaco", "DejaVu Sans Mono", monospace; @@ -351,7 +363,7 @@ .tree-cell { -fx-background-color: #282828; -fx-text-fill: azure; - -fx-font-size: 15px; + -fx-font-size: 14px; -fx-font-family: "Liberation Mono", monospace; -fx-border-width: 0px; } diff --git a/src/main/resources/css/syntax/Moondust.css b/src/main/resources/css/syntax/Moondust.css index 7abf263..72d07c1 100644 --- a/src/main/resources/css/syntax/Moondust.css +++ b/src/main/resources/css/syntax/Moondust.css @@ -23,7 +23,7 @@ .everest-code-area .text { -fx-fill: #ababab; -fx-font-family: "Liberation Mono", "Consolas", "Courier New", "Monaco", "DejaVu Sans Mono", monospace; - -fx-font-size: 17px; + -fx-font-size: 15px; } .everest-code-area .caret { diff --git a/src/main/resources/fxml/homewindow/BodyTab.fxml b/src/main/resources/fxml/homewindow/BodyTab.fxml index 1ac209c..0a872d1 100644 --- a/src/main/resources/fxml/homewindow/BodyTab.fxml +++ b/src/main/resources/fxml/homewindow/BodyTab.fxml @@ -19,9 +19,12 @@ + + + @@ -41,13 +44,55 @@ - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/src/main/resources/fxml/homewindow/Dashboard.fxml b/src/main/resources/fxml/homewindow/Dashboard.fxml index d8caa35..39130d2 100644 --- a/src/main/resources/fxml/homewindow/Dashboard.fxml +++ b/src/main/resources/fxml/homewindow/Dashboard.fxml @@ -25,49 +25,58 @@ - + - - + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - @@ -85,51 +94,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -150,17 +122,17 @@ - + - + - + - + @@ -203,10 +176,14 @@ + + + + maxHeight="20.0" onAction="#clearResponseArea" + ripplerFill="WHITE" text=" CLEAR" textFill="WHITE" + HBox.hgrow="ALWAYS"> @@ -219,6 +196,9 @@ + + + @@ -256,7 +236,7 @@ - +