Minor optimizations to ResponseHeadersViewer and move 'state' package

This commit is contained in:
Rohit Awate 2018-08-12 12:45:10 +05:30
parent a8413e8b5c
commit 65f689be47
No known key found for this signature in database
GPG key ID: 1051D7B79CF2EE25
17 changed files with 48 additions and 46 deletions

View file

@ -18,10 +18,10 @@ package com.rohitawate.everest.controllers;
import com.rohitawate.everest.controllers.codearea.EverestCodeArea;
import com.rohitawate.everest.controllers.codearea.highlighters.HighlighterFactory;
import com.rohitawate.everest.controllers.state.ComposerState;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.misc.ThemeManager;
import com.rohitawate.everest.state.ComposerState;
import com.rohitawate.everest.state.FieldState;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;

View file

@ -20,13 +20,10 @@ import com.jfoenix.controls.JFXProgressBar;
import com.jfoenix.controls.JFXSnackbar;
import com.rohitawate.everest.controllers.codearea.EverestCodeArea;
import com.rohitawate.everest.controllers.codearea.highlighters.HighlighterFactory;
import com.rohitawate.everest.controllers.state.ComposerState;
import com.rohitawate.everest.controllers.state.DashboardState;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.controllers.visualizers.TreeVisualizer;
import com.rohitawate.everest.controllers.visualizers.Visualizer;
import com.rohitawate.everest.exceptions.RedirectException;
import com.rohitawate.everest.exceptions.NullResponseException;
import com.rohitawate.everest.exceptions.RedirectException;
import com.rohitawate.everest.format.FormatterFactory;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.misc.EverestUtilities;
@ -34,11 +31,13 @@ import com.rohitawate.everest.misc.Services;
import com.rohitawate.everest.misc.ThemeManager;
import com.rohitawate.everest.models.requests.DELETERequest;
import com.rohitawate.everest.models.requests.DataRequest;
import com.rohitawate.everest.models.requests.EverestRequest;
import com.rohitawate.everest.models.requests.GETRequest;
import com.rohitawate.everest.models.responses.EverestResponse;
import com.rohitawate.everest.requestmanager.RequestManager;
import com.rohitawate.everest.requestmanager.RequestManagersPool;
import com.rohitawate.everest.state.ComposerState;
import com.rohitawate.everest.state.DashboardState;
import com.rohitawate.everest.state.FieldState;
import javafx.beans.binding.Bindings;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;

View file

@ -18,7 +18,7 @@ package com.rohitawate.everest.controllers;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXCheckBox;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.state.FieldState;
import javafx.beans.binding.Bindings;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;

View file

@ -16,9 +16,9 @@
package com.rohitawate.everest.controllers;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.misc.ThemeManager;
import com.rohitawate.everest.state.FieldState;
import javafx.beans.binding.Bindings;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;

View file

@ -16,9 +16,9 @@
package com.rohitawate.everest.controllers;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.misc.ThemeManager;
import com.rohitawate.everest.state.FieldState;
import javafx.beans.binding.Bindings;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;

View file

@ -17,9 +17,9 @@
package com.rohitawate.everest.controllers;
import com.rohitawate.everest.controllers.search.Searchable;
import com.rohitawate.everest.controllers.state.ComposerState;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.state.ComposerState;
import com.rohitawate.everest.state.FieldState;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

View file

@ -17,8 +17,8 @@
package com.rohitawate.everest.controllers;
import com.rohitawate.everest.controllers.search.SearchablePaneController;
import com.rohitawate.everest.controllers.state.ComposerState;
import com.rohitawate.everest.misc.Services;
import com.rohitawate.everest.state.ComposerState;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.input.MouseButton;

View file

@ -17,12 +17,12 @@
package com.rohitawate.everest.controllers;
import com.fasterxml.jackson.core.type.TypeReference;
import com.rohitawate.everest.controllers.state.ComposerState;
import com.rohitawate.everest.controllers.state.DashboardState;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.misc.EverestUtilities;
import com.rohitawate.everest.misc.KeyMap;
import com.rohitawate.everest.misc.ThemeManager;
import com.rohitawate.everest.state.ComposerState;
import com.rohitawate.everest.state.DashboardState;
import javafx.application.Platform;
import javafx.beans.Observable;
import javafx.beans.property.StringProperty;

View file

@ -25,10 +25,14 @@ import javafx.scene.layout.VBox;
import java.util.HashMap;
class ResponseHeadersViewer extends ScrollPane {
public class ResponseHeadersViewer extends ScrollPane {
private VBox container;
private HashMap<String, String> map;
private static final String responseHeaderLabel = "response-header-label";
private static final String keyLabelStyleClass = "response-header-key-label";
private static final String valueLabelStyleClass = "response-header-value-label";
ResponseHeadersViewer() {
this.container = new VBox();
container.setPadding(new Insets(10, 20, 10, 20));
@ -57,10 +61,10 @@ class ResponseHeadersViewer extends ScrollPane {
map.forEach((key, value) -> {
Label keyLabel = new Label(key + ": ");
keyLabel.getStyleClass().addAll("visualizerKeyLabel", "visualizerLabel");
keyLabel.getStyleClass().addAll(keyLabelStyleClass, responseHeaderLabel);
Label valueLabel = new Label(value);
valueLabel.getStyleClass().addAll("visualizerValueLabel", "visualizerLabel");
valueLabel.getStyleClass().addAll(valueLabelStyleClass, responseHeaderLabel);
container.getChildren().add(new HBox(keyLabel, valueLabel));
});

View file

@ -18,7 +18,7 @@ package com.rohitawate.everest.controllers;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXCheckBox;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.state.FieldState;
import javafx.beans.binding.Bindings;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;

View file

@ -16,9 +16,9 @@
package com.rohitawate.everest.controllers;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.misc.ThemeManager;
import com.rohitawate.everest.state.FieldState;
import javafx.beans.binding.Bindings;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;

View file

@ -18,12 +18,12 @@ package com.rohitawate.everest.history;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.rohitawate.everest.controllers.state.ComposerState;
import com.rohitawate.everest.controllers.state.FieldState;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.misc.EverestUtilities;
import com.rohitawate.everest.misc.Services;
import com.rohitawate.everest.settings.Settings;
import com.rohitawate.everest.state.ComposerState;
import com.rohitawate.everest.state.FieldState;
import javax.ws.rs.core.MediaType;
import java.io.File;

View file

@ -15,8 +15,8 @@
*/
package com.rohitawate.everest.requestmanager;
import com.rohitawate.everest.exceptions.RedirectException;
import com.rohitawate.everest.exceptions.NullResponseException;
import com.rohitawate.everest.exceptions.RedirectException;
import com.rohitawate.everest.models.requests.DELETERequest;
import com.rohitawate.everest.models.requests.DataRequest;
import com.rohitawate.everest.models.requests.EverestRequest;
@ -50,19 +50,19 @@ import java.util.Map;
/**
* Manages all the requests made through Everest.
* Converts EverestRequests into JAX-RS Invocations are then processed by Jersey.
* Also, parses the response and returns EverestResponses.
* Converts EverestRequests into JAX-RS Invocations, which are then processed by Jersey.
* Also parses the ServerResponse and returns an EverestResponse.
*
* Previously, Everest used separate managers for GET, Data (POST, PUT and PATCH) and DELETE
* requests. However, RequestManager extends JavaFX's Service class which is expensive to create objects of.
* This made the creation of separate pools for every kind of RequestManager too expensive memory-wise.
* Thus, now a single class manages all kinds of Requests thus requiring only a single kind of pool.
* Also, this enables us to re-use inactive RequestManagers for all kinds of Requests. For example, previously,
* if a GETRequestManager was requested, and all GETRequestManagers were running, a new one would be created even
* if a DELETERequestManager was idle.
* Previously, Everest used separate managers for GET, Data (POST, PUT and PATCH) and DELETE requests.
* However, RequestManager extends JavaFX's Service class, which is expensive to create objects of.
* This made the creation of separate pools for every kind of RequestManager too expensive, memory-wise.
* Thus, now a single class manages all kinds of Requests thereby requiring only a single kind of pool.
* Also, this enables us to re-use inactive RequestManagers for all kinds of requests.
* For example, previously, if a GETRequestManager was requested by Everest, and all GETRequestManagers were running,
* a new one would be created even if a DELETERequestManager was idle.
*
* TLDR: At the cost of some reduced semantic clarity, the old, separate-for-every-type-of-request RequestManagers
* are now replaced by this single works-for-all one to save some serious amount of memory and for better re-use.
* are now replaced by this single works-for-all one to save some serious amount of memory and to facilitate better re-use.
*/
public class RequestManager extends Service<EverestResponse> {
private static final Client client;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.rohitawate.everest.controllers.state;
package com.rohitawate.everest.state;
import com.rohitawate.everest.controllers.BodyTabController.BodyTab;

View file

@ -14,13 +14,13 @@
* limitations under the License.
*/
package com.rohitawate.everest.controllers.state;
package com.rohitawate.everest.state;
import com.rohitawate.everest.controllers.DashboardController.ComposerTab;
import com.rohitawate.everest.controllers.DashboardController.ResponseLayer;
import com.rohitawate.everest.controllers.DashboardController.ResponseTab;
import com.rohitawate.everest.exceptions.RedirectException;
import com.rohitawate.everest.exceptions.NullResponseException;
import com.rohitawate.everest.exceptions.RedirectException;
import com.rohitawate.everest.logging.LoggingService;
import com.rohitawate.everest.models.requests.DataRequest;
import com.rohitawate.everest.models.requests.EverestRequest;
@ -34,6 +34,9 @@ import java.net.MalformedURLException;
import java.time.LocalDateTime;
import java.util.HashMap;
/**
* Represents the state of Everest's Dashboard.
*/
public class DashboardState {
public ComposerState composer;
public ResponseLayer visibleResponseLayer;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.rohitawate.everest.controllers.state;
package com.rohitawate.everest.state;
import com.fasterxml.jackson.annotation.JsonIgnore;

View file

@ -317,27 +317,23 @@
-fx-background-color: #2a2a2a;
}
.visualizerLabel {
/* Response Headers Viewer */
.response-header-label {
-fx-font-family: "Liberation Mono", "Consolas", "Courier New", "Monaco", "DejaVu Sans Mono", monospace;
}
.visualizerRootLabel {
-fx-font-size: 16px;
-fx-text-fill: #dedede;
-fx-font-weight: bold;
}
.visualizerKeyLabel {
.response-header-key-label {
-fx-font-size: 16px;
-fx-text-fill: #bababa;
-fx-font-weight: bold;
}
.visualizerValueLabel {
.response-header-value-label {
-fx-font-size: 16px;
-fx-text-fill: #959595;
}
/* Tree Visualizer */
.tree-view {
-fx-padding: 5px;
-fx-background-color: #353535;