Added new NetLogger UI, currently no logic and server side
This commit is contained in:
parent
7bbec55626
commit
ea6ef5e265
4 changed files with 292 additions and 0 deletions
44
src/zutil/log/netlog/NetLoggerClient.fxml
Normal file
44
src/zutil/log/netlog/NetLoggerClient.fxml
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import java.util.*?>
|
||||||
|
<?import javafx.collections.*?>
|
||||||
|
<?import javafx.scene.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
<?import javafx.scene.paint.*?>
|
||||||
|
|
||||||
|
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml" fx:controller="zutil.log.netlog.NetLoggerClient">
|
||||||
|
<children>
|
||||||
|
<MenuBar prefWidth="598.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<menus>
|
||||||
|
<Menu mnemonicParsing="false" text="File">
|
||||||
|
<items>
|
||||||
|
<MenuItem mnemonicParsing="false" onAction="#handleConnectAction" text="Connect" />
|
||||||
|
<Menu mnemonicParsing="false" text="Previous">
|
||||||
|
<items>
|
||||||
|
<MenuItem mnemonicParsing="false" text="Koc.se:8080" />
|
||||||
|
<MenuItem mnemonicParsing="false" text="localhost:8080" />
|
||||||
|
</items>
|
||||||
|
</Menu>
|
||||||
|
<SeparatorMenuItem mnemonicParsing="false" />
|
||||||
|
<MenuItem mnemonicParsing="false" text="Export" />
|
||||||
|
<SeparatorMenuItem disable="true" mnemonicParsing="false" />
|
||||||
|
<MenuItem mnemonicParsing="false" onAction="#handleExitAction" text="Exit" />
|
||||||
|
</items>
|
||||||
|
</Menu>
|
||||||
|
<Menu mnemonicParsing="false" text="Edit">
|
||||||
|
<items>
|
||||||
|
<MenuItem disable="true" mnemonicParsing="false" text="Copy" />
|
||||||
|
</items>
|
||||||
|
</Menu>
|
||||||
|
<Menu mnemonicParsing="false" text="Help">
|
||||||
|
<items>
|
||||||
|
<MenuItem mnemonicParsing="false" onAction="#handleAboutAction" text="About" />
|
||||||
|
</items>
|
||||||
|
</Menu>
|
||||||
|
</menus>
|
||||||
|
</MenuBar>
|
||||||
|
<TabPane fx:id="tabPane" prefHeight="364.0" prefWidth="586.0" tabClosingPolicy="ALL_TABS" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="22.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
52
src/zutil/log/netlog/NetLoggerClient.java
Normal file
52
src/zutil/log/netlog/NetLoggerClient.java
Normal file
|
|
@ -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) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
97
src/zutil/log/netlog/NetLoggerClientInstance.fxml
Normal file
97
src/zutil/log/netlog/NetLoggerClientInstance.fxml
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import java.util.*?>
|
||||||
|
<?import javafx.collections.*?>
|
||||||
|
<?import javafx.scene.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
<?import javafx.scene.paint.*?>
|
||||||
|
|
||||||
|
<BorderPane xmlns:fx="http://javafx.com/fxml" fx:controller="zutil.log.netlog.NetLoggerClientInstance">
|
||||||
|
<bottom>
|
||||||
|
<ToolBar maxHeight="22.0" minHeight="19.0" prefHeight="22.0" prefWidth="839.0">
|
||||||
|
<items>
|
||||||
|
<ProgressBar fx:id="progressBar" prefWidth="200.0" progress="0.0" style="" />
|
||||||
|
<Region HBox.Hgrow="ALWAYS" />
|
||||||
|
<Separator orientation="VERTICAL" prefHeight="200.0" valignment="CENTER" />
|
||||||
|
<Label fx:id="logCountLb" text="80">
|
||||||
|
<graphic>
|
||||||
|
<Label text="Log Count:" />
|
||||||
|
</graphic>
|
||||||
|
</Label>
|
||||||
|
</items>
|
||||||
|
</ToolBar>
|
||||||
|
</bottom>
|
||||||
|
<center>
|
||||||
|
<SplitPane dividerPositions="0.7491525423728813" focusTraversable="true" orientation="VERTICAL" prefHeight="297.0" prefWidth="600.0">
|
||||||
|
<items>
|
||||||
|
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0">
|
||||||
|
<children>
|
||||||
|
<TableView fx:id="logTb" prefHeight="146.0" prefWidth="598.0" tableMenuButtonVisible="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<columns>
|
||||||
|
<TableColumn editable="false" prefWidth="75.0" sortable="false" text="#" />
|
||||||
|
<TableColumn editable="false" prefWidth="75.0" sortable="false" text="Timestamp" />
|
||||||
|
<TableColumn editable="false" prefWidth="75.0" sortable="false" text="Level" />
|
||||||
|
<TableColumn editable="false" prefWidth="400.0" sortable="false" text="Log" />
|
||||||
|
</columns>
|
||||||
|
</TableView>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0">
|
||||||
|
<children>
|
||||||
|
<TableView fx:id="exceptionTb" prefHeight="147.0" prefWidth="598.0" tableMenuButtonVisible="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<columns>
|
||||||
|
<TableColumn editable="false" prefWidth="75.0" text="Count" />
|
||||||
|
<TableColumn editable="false" prefWidth="75.0" text="Exception" />
|
||||||
|
<TableColumn editable="false" prefWidth="450.0" text="StackTrace" />
|
||||||
|
</columns>
|
||||||
|
</TableView>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</items>
|
||||||
|
</SplitPane>
|
||||||
|
</center>
|
||||||
|
<top>
|
||||||
|
<ToolBar maxHeight="30.0" minHeight="22.0" prefHeight="30.0" prefWidth="839.0">
|
||||||
|
<items>
|
||||||
|
<ToggleButton fx:id="pauseBt" mnemonicParsing="false" onAction="#handlePauseAction" text="Pause" />
|
||||||
|
<Region HBox.Hgrow="ALWAYS" />
|
||||||
|
<Group id="Group">
|
||||||
|
<children>
|
||||||
|
<Label layoutX="0.0" layoutY="-7.0" text="Log Level: " />
|
||||||
|
<ComboBox layoutX="60.0" layoutY="-9.0" onAction="#handleLevelChanged">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="01 - ERROR" />
|
||||||
|
<String fx:value="02 - WARNING" />
|
||||||
|
<String fx:value="03 - INFO" />
|
||||||
|
<String fx:value="04 - FINE" />
|
||||||
|
<String fx:value="05 - FINER" />
|
||||||
|
<String fx:value="06 - FINEST" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ComboBox>
|
||||||
|
</children>
|
||||||
|
</Group>
|
||||||
|
<Group id="Group">
|
||||||
|
<children>
|
||||||
|
<Label alignment="CENTER_RIGHT" layoutX="0.0" layoutY="-7.0" prefWidth="60.0" text="Interval: " />
|
||||||
|
<ComboBox layoutX="65.0" layoutY="-9.0" onAction="#handleIntervalChanged">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="Instant" />
|
||||||
|
<String fx:value="3 sec" />
|
||||||
|
<String fx:value="5 sec" />
|
||||||
|
<String fx:value="10 sec" />
|
||||||
|
<String fx:value="30 sec" />
|
||||||
|
<String fx:value="60 sec" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ComboBox>
|
||||||
|
</children>
|
||||||
|
</Group>
|
||||||
|
</items>
|
||||||
|
</ToolBar>
|
||||||
|
</top>
|
||||||
|
</BorderPane>
|
||||||
99
src/zutil/log/netlog/NetLoggerClientInstance.java
Normal file
99
src/zutil/log/netlog/NetLoggerClientInstance.java
Normal file
|
|
@ -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<Event>() {
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue