diff --git a/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLogger.java b/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLogger.java index 8f51469..ce976c6 100644 --- a/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLogger.java +++ b/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLogger.java @@ -57,7 +57,7 @@ public class UiLogger extends ExtensionForm implements PacketLogger { @Override protected void onEndConnection() { controller.onDisconnect(); - controller.setPacketInfoManager(new PacketInfoManager(new ArrayList<>())); + controller.setPacketInfoManager(PacketInfoManager.EMPTY); } @Override diff --git a/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerController.java b/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerController.java index 8d8e6f8..def8d74 100644 --- a/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerController.java +++ b/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerController.java @@ -45,6 +45,7 @@ public class UiLoggerController implements Initializable { public CheckMenuItem chkMessageHash; public Label lblPacketInfo; public CheckMenuItem chkUseNewStructures; + public CheckMenuItem chkAlwaysOnTop; public CheckMenuItem chkOpenOnConnect; public CheckMenuItem chkResetOnConnect; @@ -71,15 +72,6 @@ public class UiLoggerController implements Initializable { private Stage stage; private PacketInfoManager packetInfoManager = null; - private boolean viewIncoming = true; - private boolean viewOutgoing = true; - private boolean displayStructure = true; - private boolean autoScroll = true; - private boolean skiphugepackets = true; - private boolean viewMessageName = true; - private boolean viewMessageHash = false; - private boolean alwaysOnTop = false; - private int skipped = 0; private volatile boolean initialized = false; @@ -137,7 +129,10 @@ public class UiLoggerController implements Initializable { loadAllMenuItems(); for (MenuItem item : allMenuItems) { - item.setOnAction(event -> saveAllMenuItems()); + item.setOnAction(event -> { + saveAllMenuItems(); + updateLoggerInfo(); + }); } area = new StyleClassedTextArea(); @@ -204,20 +199,20 @@ public class UiLoggerController implements Initializable { boolean filter = checkFilter(packet); if (filter) { skipped++; - lblSkipped.setText("Skipped: " + skipped); + updateLoggerInfo(); return; } } - if (isIncoming && !viewIncoming) return; - if (!isIncoming && !viewOutgoing) return; + if (isIncoming && !chkViewIncoming.isSelected()) return; + if (!isIncoming && !chkViewOutgoing.isSelected()) return; ArrayList elements = new ArrayList<>(); boolean packetInfoAvailable = packetInfoManager.getPacketInfoList().size() > 0; - if ((viewMessageName || viewMessageHash) && packetInfoAvailable) { + if ((chkMessageName.isSelected() || chkMessageHash.isSelected()) && packetInfoAvailable) { List messages = packetInfoManager.getAllPacketInfoFromHeaderId( (isIncoming ? HMessage.Direction.TOCLIENT : HMessage.Direction.TOSERVER), packet.headerId() @@ -228,11 +223,11 @@ public class UiLoggerController implements Initializable { .filter(Objects::nonNull).distinct().collect(Collectors.toList()); boolean addedSomething = false; - if (viewMessageName && names.size() > 0) { + if (chkMessageName.isSelected() && names.size() > 0) { for (String name : names) {elements.add(new Element("["+name+"]", "messageinfo")); } addedSomething = true; } - if (viewMessageHash && hashes.size() > 0) { + if (chkMessageHash.isSelected() && hashes.size() > 0) { for (String hash : hashes) {elements.add(new Element("["+hash+"]", "messageinfo")); } addedSomething = true; } @@ -253,7 +248,7 @@ public class UiLoggerController implements Initializable { elements.add(new Element("]", "incoming")); elements.add(new Element(" <- ", "")); - if (skiphugepackets && packet.length() > 4000) { + if (chkSkipBigPackets.isSelected() && packet.length() > 4000) { elements.add(new Element("", "skipped")); } else { @@ -266,7 +261,7 @@ public class UiLoggerController implements Initializable { elements.add(new Element(" -> ", "")); - if (skiphugepackets && packet.length() > 4000) { + if (chkSkipBigPackets.isSelected() && packet.length() > 4000) { elements.add(new Element("", "skipped")); } else { @@ -278,7 +273,7 @@ public class UiLoggerController implements Initializable { String expr = packet.toExpression(isIncoming ? HMessage.Direction.TOCLIENT : HMessage.Direction.TOSERVER, packetInfoManager, chkUseNewStructures.isSelected()); String cleaned = cleanTextContent(expr); if (cleaned.equals(expr)) { - if (!expr.equals("") && displayStructure) + if (!expr.equals("") && chkDisplayStructure.isSelected()) elements.add(new Element("\n" + cleanTextContent(expr), "structure")); } } @@ -313,7 +308,7 @@ public class UiLoggerController implements Initializable { // System.out.println(sb.toString()); area.setStyleSpans(oldLen, styleSpansBuilder.create()); - if (autoScroll) { + if (chkAutoscroll.isSelected()) { // area.moveTo(area.getLength()); area.requestFollowCaret(); } @@ -324,51 +319,25 @@ public class UiLoggerController implements Initializable { this.stage = stage; } - public void setPacketInfoManager(PacketInfoManager packetInfoManager) { - this.packetInfoManager = packetInfoManager; + public void updateLoggerInfo() { Platform.runLater(() -> { + lblViewIncoming.setText("View Incoming: " + (chkViewIncoming.isSelected() ? "True" : "False")); + lblViewOutgoing.setText("View Outgoing: " + (chkViewOutgoing.isSelected() ? "True" : "False")); + lblAutoScrolll.setText("Autoscroll: " + (chkAutoscroll.isSelected() ? "True" : "False")); + lblSkipped.setText("Skipped: " + skipped); + boolean packetInfoAvailable = packetInfoManager.getPacketInfoList().size() > 0; lblPacketInfo.setText("Packet info: " + (packetInfoAvailable ? "True" : "False")); }); } - public void toggleViewIncoming() { - viewIncoming = !viewIncoming; - lblViewIncoming.setText("View Incoming: " + (viewIncoming ? "True" : "False")); -// chkViewIncoming.setSelected(viewIncoming); - } - - public void toggleViewOutgoing() { - viewOutgoing = !viewOutgoing; - lblViewOutgoing.setText("View Outgoing: " + (viewOutgoing ? "True" : "False")); -// chkViewOutgoing.setSelected(viewOutgoing); - } - - public void toggleDisplayStructure() { - displayStructure = !displayStructure; -// chkDisplayStructure.setSelected(displayStructure); - } - - public void toggleAutoscroll(ActionEvent actionEvent) { - autoScroll = !autoScroll; - lblAutoScrolll.setText("Autoscroll: " + (autoScroll ? "True" : "False")); - } - - public void toggleSkipPackets(ActionEvent actionEvent) { - skiphugepackets = !skiphugepackets; - } - - public void toggleMessageName(ActionEvent actionEvent) { - viewMessageName = !viewMessageName; - } - - public void toggleMessageHash(ActionEvent actionEvent) { - viewMessageHash = !viewMessageHash; + public void setPacketInfoManager(PacketInfoManager packetInfoManager) { + this.packetInfoManager = packetInfoManager; + Platform.runLater(this::updateLoggerInfo); } public void toggleAlwaysOnTop(ActionEvent actionEvent) { - stage.setAlwaysOnTop(!alwaysOnTop); - alwaysOnTop = !alwaysOnTop; + stage.setAlwaysOnTop(chkAlwaysOnTop.isSelected()); } public void clearText(ActionEvent actionEvent) { diff --git a/G-Earth/src/main/resources/gearth/services/internal_extensions/uilogger/UiLogger.fxml b/G-Earth/src/main/resources/gearth/services/internal_extensions/uilogger/UiLogger.fxml index 63c547e..f8d8109 100644 --- a/G-Earth/src/main/resources/gearth/services/internal_extensions/uilogger/UiLogger.fxml +++ b/G-Earth/src/main/resources/gearth/services/internal_extensions/uilogger/UiLogger.fxml @@ -26,15 +26,15 @@ - + - + - + @@ -47,10 +47,10 @@ - - - - + + + + @@ -66,7 +66,7 @@ - +