mirror of
https://github.com/sirjonasxx/G-Earth.git
synced 2024-11-23 08:50:52 +01:00
reimplement hotkeys, autoscrol checkbox, tweaks
This commit is contained in:
parent
b484d2f07b
commit
ca2d750e43
@ -3,9 +3,11 @@ package gearth.ui;
|
|||||||
import gearth.protocol.HPacket;
|
import gearth.protocol.HPacket;
|
||||||
import gearth.ui.logger.loggerdisplays.PacketLogger;
|
import gearth.ui.logger.loggerdisplays.PacketLogger;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.event.EventHandler;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.CheckMenuItem;
|
import javafx.scene.control.CheckMenuItem;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.input.ScrollEvent;
|
||||||
import javafx.scene.layout.BorderPane;
|
import javafx.scene.layout.BorderPane;
|
||||||
import javafx.scene.layout.FlowPane;
|
import javafx.scene.layout.FlowPane;
|
||||||
import org.fxmisc.flowless.VirtualizedScrollPane;
|
import org.fxmisc.flowless.VirtualizedScrollPane;
|
||||||
@ -26,12 +28,15 @@ public class UiLoggerController implements Initializable {
|
|||||||
public CheckMenuItem chkViewIncoming;
|
public CheckMenuItem chkViewIncoming;
|
||||||
public CheckMenuItem chkViewOutgoing;
|
public CheckMenuItem chkViewOutgoing;
|
||||||
public CheckMenuItem chkDisplayStructure;
|
public CheckMenuItem chkDisplayStructure;
|
||||||
|
public Label lblAutoScrolll;
|
||||||
|
public CheckMenuItem chkAutoscroll;
|
||||||
|
|
||||||
private StyleClassedTextArea area;
|
private StyleClassedTextArea area;
|
||||||
|
|
||||||
private boolean viewIncoming = true;
|
private boolean viewIncoming = true;
|
||||||
private boolean viewOutgoing = true;
|
private boolean viewOutgoing = true;
|
||||||
private boolean displayStructure = true;
|
private boolean displayStructure = true;
|
||||||
|
private boolean autoScroll = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
@ -66,9 +71,6 @@ public class UiLoggerController implements Initializable {
|
|||||||
|
|
||||||
elements.add(new Element(" <- ", ""));
|
elements.add(new Element(" <- ", ""));
|
||||||
elements.add(new Element(packet.toString(), "incoming"));
|
elements.add(new Element(packet.toString(), "incoming"));
|
||||||
|
|
||||||
if (!expr.equals("") && displayStructure)
|
|
||||||
elements.add(new Element("\n" + expr, "incoming"));
|
|
||||||
} else {
|
} else {
|
||||||
elements.add(new Element("Outgoing[", "outgoing"));
|
elements.add(new Element("Outgoing[", "outgoing"));
|
||||||
elements.add(new Element(String.valueOf(packet.headerId()), ""));
|
elements.add(new Element(String.valueOf(packet.headerId()), ""));
|
||||||
@ -76,10 +78,9 @@ public class UiLoggerController implements Initializable {
|
|||||||
|
|
||||||
elements.add(new Element(" -> ", ""));
|
elements.add(new Element(" -> ", ""));
|
||||||
elements.add(new Element(packet.toString(), "outgoing"));
|
elements.add(new Element(packet.toString(), "outgoing"));
|
||||||
|
|
||||||
if (!expr.equals("") && displayStructure)
|
|
||||||
elements.add(new Element("\n" + expr, "outgoing"));
|
|
||||||
}
|
}
|
||||||
|
if (!expr.equals("") && displayStructure)
|
||||||
|
elements.add(new Element("\n" + expr, "structure"));
|
||||||
|
|
||||||
elements.add(new Element("\n--------------------\n", ""));
|
elements.add(new Element("\n--------------------\n", ""));
|
||||||
AppendLog(elements);
|
AppendLog(elements);
|
||||||
@ -98,25 +99,33 @@ public class UiLoggerController implements Initializable {
|
|||||||
area.appendText(sb.toString());
|
area.appendText(sb.toString());
|
||||||
area.setStyleSpans(oldLen, styleSpansBuilder.create());
|
area.setStyleSpans(oldLen, styleSpansBuilder.create());
|
||||||
|
|
||||||
area.moveTo(area.getLength());
|
if (autoScroll) {
|
||||||
area.requestFollowCaret();
|
area.moveTo(area.getLength());
|
||||||
|
area.requestFollowCaret();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toggleViewIncoming() {
|
public void toggleViewIncoming() {
|
||||||
viewIncoming = !viewIncoming;
|
viewIncoming = !viewIncoming;
|
||||||
lblViewIncoming.setText("View Incoming: " + (viewIncoming ? "True" : "False"));
|
lblViewIncoming.setText("View Incoming: " + (viewIncoming ? "True" : "False"));
|
||||||
chkViewIncoming.setSelected(viewIncoming);
|
// chkViewIncoming.setSelected(viewIncoming);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toggleViewOutgoing() {
|
public void toggleViewOutgoing() {
|
||||||
viewOutgoing = !viewOutgoing;
|
viewOutgoing = !viewOutgoing;
|
||||||
lblViewOutgoing.setText("View Outgoing: " + (viewOutgoing ? "True" : "False"));
|
lblViewOutgoing.setText("View Outgoing: " + (viewOutgoing ? "True" : "False"));
|
||||||
chkViewOutgoing.setSelected(viewOutgoing);
|
// chkViewOutgoing.setSelected(viewOutgoing);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toggleDisplayStructure() {
|
public void toggleDisplayStructure() {
|
||||||
displayStructure = !displayStructure;
|
displayStructure = !displayStructure;
|
||||||
chkDisplayStructure.setSelected(displayStructure);
|
// chkDisplayStructure.setSelected(displayStructure);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void toggleAutoscroll(ActionEvent actionEvent) {
|
||||||
|
autoScroll = !autoScroll;
|
||||||
|
lblAutoScrolll.setText("Autoscroll: " + (autoScroll ? "True" : "False"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public class UiLogger implements PacketLogger {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
FXMLLoader loader = new FXMLLoader(getClass().getResource("/gearth/ui/UiLogger.fxml"));
|
FXMLLoader loader = new FXMLLoader(getClass().getResource("/gearth/ui/logger/uilogger/UiLogger.fxml"));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Parent root = loader.load();
|
Parent root = loader.load();
|
||||||
@ -34,24 +34,24 @@ public class UiLogger implements PacketLogger {
|
|||||||
|
|
||||||
Scene scene = new Scene(root);
|
Scene scene = new Scene(root);
|
||||||
scene.getStylesheets().add("/gearth/ui/bootstrap3.css");
|
scene.getStylesheets().add("/gearth/ui/bootstrap3.css");
|
||||||
scene.getStylesheets().add("/gearth/ui/logger.css");
|
scene.getStylesheets().add("/gearth/ui/logger/uilogger/logger.css");
|
||||||
|
|
||||||
scene.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
|
// scene.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
|
||||||
final KeyCombination keyCombIncoming = new KeyCodeCombination(KeyCode.I,
|
// final KeyCombination keyCombIncoming = new KeyCodeCombination(KeyCode.I,
|
||||||
KeyCombination.CONTROL_DOWN);
|
// KeyCombination.CONTROL_DOWN);
|
||||||
final KeyCombination keyCombOutgoing = new KeyCodeCombination(KeyCode.O,
|
// final KeyCombination keyCombOutgoing = new KeyCodeCombination(KeyCode.O,
|
||||||
KeyCombination.CONTROL_DOWN);
|
// KeyCombination.CONTROL_DOWN);
|
||||||
|
//
|
||||||
public void handle(KeyEvent ke) {
|
// public void handle(KeyEvent ke) {
|
||||||
if (keyCombIncoming.match(ke)) {
|
// if (keyCombIncoming.match(ke)) {
|
||||||
controller.toggleViewIncoming();
|
// controller.toggleViewIncoming();
|
||||||
ke.consume();
|
// ke.consume();
|
||||||
} else if (keyCombOutgoing.match(ke)) {
|
// } else if (keyCombOutgoing.match(ke)) {
|
||||||
controller.toggleViewOutgoing();
|
// controller.toggleViewOutgoing();
|
||||||
ke.consume();
|
// ke.consume();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
|
||||||
stage.setScene(scene);
|
stage.setScene(scene);
|
||||||
|
|
||||||
|
@ -5,10 +5,11 @@
|
|||||||
<?import javafx.scene.control.Label?>
|
<?import javafx.scene.control.Label?>
|
||||||
<?import javafx.scene.control.Menu?>
|
<?import javafx.scene.control.Menu?>
|
||||||
<?import javafx.scene.control.MenuBar?>
|
<?import javafx.scene.control.MenuBar?>
|
||||||
|
<?import javafx.scene.input.KeyCodeCombination?>
|
||||||
<?import javafx.scene.layout.BorderPane?>
|
<?import javafx.scene.layout.BorderPane?>
|
||||||
<?import javafx.scene.layout.FlowPane?>
|
<?import javafx.scene.layout.FlowPane?>
|
||||||
|
|
||||||
<BorderPane fx:id="borderPane" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.UiLoggerController">
|
<BorderPane fx:id="borderPane" prefHeight="560.0" prefWidth="820.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gearth.ui.UiLoggerController">
|
||||||
<top>
|
<top>
|
||||||
<MenuBar BorderPane.alignment="CENTER">
|
<MenuBar BorderPane.alignment="CENTER">
|
||||||
<Menu mnemonicParsing="false" text="View">
|
<Menu mnemonicParsing="false" text="View">
|
||||||
@ -17,8 +18,18 @@
|
|||||||
<CheckMenuItem fx:id="chkDisplayStructure" mnemonicParsing="false" onAction="#toggleDisplayStructure" selected="true" text="Structure" />
|
<CheckMenuItem fx:id="chkDisplayStructure" mnemonicParsing="false" onAction="#toggleDisplayStructure" selected="true" text="Structure" />
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
<CheckMenuItem fx:id="chkViewIncoming" mnemonicParsing="false" onAction="#toggleViewIncoming" selected="true" text="View Incoming (Ctrl+I)" />
|
<CheckMenuItem fx:id="chkViewIncoming" mnemonicParsing="false" onAction="#toggleViewIncoming" selected="true" text="View Incoming">
|
||||||
<CheckMenuItem fx:id="chkViewOutgoing" mnemonicParsing="false" onAction="#toggleViewOutgoing" selected="true" text="View Outgoing (Ctrl+O)" />
|
<accelerator>
|
||||||
|
<KeyCodeCombination alt="UP" code="I" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
|
||||||
|
</accelerator></CheckMenuItem>
|
||||||
|
<CheckMenuItem fx:id="chkViewOutgoing" mnemonicParsing="false" onAction="#toggleViewOutgoing" selected="true" text="View Outgoing">
|
||||||
|
<accelerator>
|
||||||
|
<KeyCodeCombination alt="UP" code="O" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
|
||||||
|
</accelerator></CheckMenuItem>
|
||||||
|
<CheckMenuItem fx:id="chkAutoscroll" mnemonicParsing="false" onAction="#toggleAutoscroll" selected="true" text="Autoscroll">
|
||||||
|
<accelerator>
|
||||||
|
<KeyCodeCombination alt="UP" code="L" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
|
||||||
|
</accelerator></CheckMenuItem>
|
||||||
</Menu>
|
</Menu>
|
||||||
</MenuBar>
|
</MenuBar>
|
||||||
</top>
|
</top>
|
||||||
@ -42,6 +53,12 @@
|
|||||||
<Insets right="10.0" />
|
<Insets right="10.0" />
|
||||||
</FlowPane.margin>
|
</FlowPane.margin>
|
||||||
</Label>
|
</Label>
|
||||||
|
<Label layoutX="138.0" layoutY="11.0" text="|">
|
||||||
|
<FlowPane.margin>
|
||||||
|
<Insets right="10.0" />
|
||||||
|
</FlowPane.margin>
|
||||||
|
</Label>
|
||||||
|
<Label fx:id="lblAutoScrolll" layoutX="151.0" layoutY="11.0" style="-fx-text-fill: black !important" text="Autoscroll: True" />
|
||||||
</FlowPane>
|
</FlowPane>
|
||||||
</bottom>
|
</bottom>
|
||||||
</BorderPane>
|
</BorderPane>
|
@ -15,6 +15,10 @@
|
|||||||
-fx-fill: #0066cc;
|
-fx-fill: #0066cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.structure {
|
||||||
|
-fx-fill: cyan;
|
||||||
|
}
|
||||||
|
|
||||||
.dark {
|
.dark {
|
||||||
-fx-background-color: #000000;
|
-fx-background-color: #000000;
|
||||||
}
|
}
|
||||||
@ -30,4 +34,10 @@
|
|||||||
.menu-bar .text, .menu .text {
|
.menu-bar .text, .menu .text {
|
||||||
-fx-text-fill: #000000 !important;
|
-fx-text-fill: #000000 !important;
|
||||||
-fx-fill: #000000 !important;
|
-fx-fill: #000000 !important;
|
||||||
|
-fx-padding: -2 0 -2 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-bar:vertical {
|
||||||
|
-fx-pref-width: 16.5;
|
||||||
|
-fx-padding: 1;
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user