Skip to content

Commit 87b9764

Browse files
committed
Show response in bigger window
1 parent 299c3e7 commit 87b9764

4 files changed

Lines changed: 66 additions & 1 deletion

File tree

api-client/src/main/java/xyz.gianlu.librespot.api.client/MainController.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@
33
import com.google.gson.JsonObject;
44
import com.sun.javafx.collections.ObservableListWrapper;
55
import javafx.beans.property.SimpleStringProperty;
6+
import javafx.fxml.FXMLLoader;
7+
import javafx.scene.Parent;
8+
import javafx.scene.Scene;
69
import javafx.scene.control.*;
710
import javafx.scene.control.cell.TextFieldTableCell;
811
import javafx.scene.input.MouseEvent;
912
import javafx.scene.layout.GridPane;
1013
import javafx.scene.layout.Priority;
14+
import javafx.stage.Modality;
15+
import javafx.stage.Stage;
1116
import org.jetbrains.annotations.NotNull;
1217

18+
import java.io.IOException;
1319
import java.io.PrintWriter;
1420
import java.io.StringWriter;
1521
import java.net.URI;
@@ -180,6 +186,21 @@ public void clickedMercuryAddEmptyHeader(MouseEvent mouseEvent) {
180186
mercuryHeaders.getFocusModel().focus(last);
181187
}
182188

189+
public void clickedResponse(MouseEvent mouseEvent) throws IOException {
190+
String json = responses.getSelectionModel().getSelectedItem();
191+
192+
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getClassLoader().getResource("responseDialog.fxml"));
193+
Parent parent = fxmlLoader.load();
194+
ResponseDialogController dialogController = fxmlLoader.getController();
195+
dialogController.setJson(json);
196+
197+
Scene scene = new Scene(parent, 400, 300);
198+
Stage stage = new Stage();
199+
stage.initModality(Modality.APPLICATION_MODAL);
200+
stage.setScene(scene);
201+
stage.showAndWait();
202+
}
203+
183204
public static class Header {
184205
private final SimpleStringProperty key;
185206
private final SimpleStringProperty value;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package xyz.gianlu.librespot.api.client;
2+
3+
import javafx.scene.Node;
4+
import javafx.scene.control.TextArea;
5+
import javafx.scene.input.MouseEvent;
6+
import org.jetbrains.annotations.NotNull;
7+
8+
/**
9+
* @author Gianlu
10+
*/
11+
public class ResponseDialogController {
12+
public TextArea jsonField;
13+
14+
void setJson(@NotNull String json) {
15+
jsonField.setText(json);
16+
}
17+
18+
public void clickedClose(MouseEvent event) {
19+
((Node) (event.getSource())).getScene().getWindow().hide();
20+
}
21+
}

api-client/src/main/resources/main.fxml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
</VBox>
107107
<VBox>
108108
<children>
109+
<Label text="Headers"/>
109110
<TableView fx:id="mercuryHeaders" editable="true" prefHeight="250.0"
110111
prefWidth="200.0">
111112
<columns>
@@ -140,7 +141,7 @@
140141
<content>
141142
<VBox>
142143
<children>
143-
<ListView fx:id="responses" VBox.vgrow="SOMETIMES"/>
144+
<ListView fx:id="responses" onMouseClicked="#clickedResponse" VBox.vgrow="SOMETIMES"/>
144145
</children>
145146
</VBox>
146147
</content>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<?import javafx.geometry.Insets?>
4+
<?import javafx.scene.control.Button?>
5+
<?import javafx.scene.control.TextArea?>
6+
<?import javafx.scene.layout.VBox?>
7+
<VBox xmlns:fx="http://javafx.com/fxml/1" prefHeight="300.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8.0.121"
8+
fx:controller="xyz.gianlu.librespot.api.client.ResponseDialogController">
9+
<children>
10+
<TextArea fx:id="jsonField" editable="false" maxHeight="1.7976931348623157E308"
11+
maxWidth="1.7976931348623157E308" wrapText="true" VBox.vgrow="ALWAYS"/>
12+
<Button alignment="CENTER_RIGHT" cancelButton="true" mnemonicParsing="false" onMouseClicked="#clickedClose"
13+
text="Close" VBox.vgrow="NEVER">
14+
<VBox.margin>
15+
<Insets top="8.0"/>
16+
</VBox.margin>
17+
</Button>
18+
</children>
19+
<padding>
20+
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
21+
</padding>
22+
</VBox>

0 commit comments

Comments
 (0)