From ea6ef5e265735f9ee349b1ecb7903bfb53fbf8c5 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Thu, 2 May 2013 12:51:41 +0000 Subject: [PATCH] Added new NetLogger UI, currently no logic and server side --- src/zutil/log/netlog/NetLoggerClient.fxml | 44 +++++++++ src/zutil/log/netlog/NetLoggerClient.java | 52 ++++++++++ .../log/netlog/NetLoggerClientInstance.fxml | 97 ++++++++++++++++++ .../log/netlog/NetLoggerClientInstance.java | 99 +++++++++++++++++++ 4 files changed, 292 insertions(+) create mode 100644 src/zutil/log/netlog/NetLoggerClient.fxml create mode 100644 src/zutil/log/netlog/NetLoggerClient.java create mode 100644 src/zutil/log/netlog/NetLoggerClientInstance.fxml create mode 100644 src/zutil/log/netlog/NetLoggerClientInstance.java diff --git a/src/zutil/log/netlog/NetLoggerClient.fxml b/src/zutil/log/netlog/NetLoggerClient.fxml new file mode 100644 index 0000000..db10222 --- /dev/null +++ b/src/zutil/log/netlog/NetLoggerClient.fxml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/zutil/log/netlog/NetLoggerClient.java b/src/zutil/log/netlog/NetLoggerClient.java new file mode 100644 index 0000000..4aac0b2 --- /dev/null +++ b/src/zutil/log/netlog/NetLoggerClient.java @@ -0,0 +1,52 @@ +package zutil.log.netlog; + +import javafx.application.Application; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.stage.Stage; +import javafx.scene.Scene; +import javafx.scene.Parent; +import javafx.scene.control.TabPane; + +public class NetLoggerClient extends Application{ + public static final String VERSION = "0.1"; + + // UI elements + @FXML + private TabPane tabPane; + + + public static void main(String[] args) { + Application.launch(NetLoggerClient.class, args); + } + + @Override + public void start(Stage stage) throws Exception { + Parent root = FXMLLoader.load(getClass().getResource("NetLoggerClient.fxml")); + + stage.setTitle("NetLoggerClient ("+VERSION+")"); + stage.setScene(new Scene(root)); + stage.show(); + } + + // Menu Actioins + @FXML + protected void handleConnectAction(ActionEvent event) { + try{ + tabPane.getTabs().add(new NetLoggerClientInstance("koc.se", 8080)); + }catch(Exception e){ + e.printStackTrace(); + } + } + + @FXML + protected void handleExitAction(ActionEvent event) { + System.exit(0); + } + + @FXML + protected void handleAboutAction(ActionEvent event) { + + } +} \ No newline at end of file diff --git a/src/zutil/log/netlog/NetLoggerClientInstance.fxml b/src/zutil/log/netlog/NetLoggerClientInstance.fxml new file mode 100644 index 0000000..b3782fa --- /dev/null +++ b/src/zutil/log/netlog/NetLoggerClientInstance.fxml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + +
diff --git a/src/zutil/log/netlog/NetLoggerClientInstance.java b/src/zutil/log/netlog/NetLoggerClientInstance.java new file mode 100644 index 0000000..b4477f3 --- /dev/null +++ b/src/zutil/log/netlog/NetLoggerClientInstance.java @@ -0,0 +1,99 @@ +package zutil.log.netlog; + +import javafx.event.ActionEvent; +import javafx.event.Event; +import javafx.event.EventHandler; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.ToggleButton; +import javafx.scene.control.TableView; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.Parent; +import javafx.scene.layout.AnchorPane; +import java.io.IOException; + +public class NetLoggerClientInstance extends Tab{ + private enum Status{RUNNING, PAUSED, DISCONNECTED} + + // Logic variables + private Status status; + + // UI elements + @FXML + private ToggleButton statusBt; + + @FXML + private TableView logTb; + @FXML + private TableView exceptionTb; + + @FXML + private Label logCountLb; + @FXML + private ProgressBar progressBar; + + public NetLoggerClientInstance(){} + + public NetLoggerClientInstance(String host, int port) throws IOException{ + this.setText( host+":"+port ); + + Parent tabRoot = FXMLLoader.load(getClass().getResource("NetLoggerClientInstance.fxml")); + this.setContent(tabRoot); + AnchorPane.setRightAnchor(tabRoot, 0.0); + this.setOnClosed(new EventHandler() { + public void handle(Event e) { + handleDisconnectAction(e); + } + }); + updateStatus(); + } + + @FXML + protected void handlePauseAction(ActionEvent event) { + System.out.println("Pause changed"); + if(status == Status.RUNNING){ + status = Status.PAUSED; + } + else if(status == Status.PAUSED){ + status = Status.RUNNING; + } + updateStatus(); + } + + @FXML + protected void handleDisconnectAction(Event event) { + System.out.println("Disconnected changed"); + status = Status.DISCONNECTED; + updateStatus(); + } + + @FXML + protected void handleLevelChanged(ActionEvent event) { + System.out.println("Level changed"); + } + + @FXML + protected void handleIntervalChanged(ActionEvent event) { + System.out.println("Interval changed"); + } + + private void updateStatus(){ + if(progressBar == null || statusBt == null) + return; + + if(status == Status.RUNNING){ + progressBar.setProgress(1); + statusBt.setText("Pause"); + } + else if(status == Status.PAUSED){ + progressBar.setProgress(-1); + statusBt.setText("Unpause"); + } + else if(status == Status.DISCONNECTED){ + progressBar.setProgress(0); + statusBt.disableProperty(); + } + } +} \ No newline at end of file