2026-05-11 19:40:18 +02:00

76 lines
3.1 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.*?>
<BorderPane xmlns:fx="http://javafx.com/fxml"
fx:controller="de.opcua.app.ui.MainController"
prefWidth="1262" prefHeight="619"
minWidth="900" minHeight="520"
stylesheets="@../styles/application.css">
<top>
<HBox spacing="8" alignment="CENTER_LEFT" styleClass="top-bar">
<padding>
<Insets top="10" right="12" bottom="10" left="12"/>
</padding>
<ImageView fitWidth="28" fitHeight="28" preserveRatio="true" smooth="true">
<image>
<Image url="@../styles/opcua-client-logo.png"/>
</image>
</ImageView>
<Label text="OPC UA Client" styleClass="app-title"/>
<Region HBox.hgrow="ALWAYS"/>
<Button fx:id="connectButton" text="Connect" minWidth="92" onAction="#connectButton_Click" styleClass="button-primary"/>
<Button fx:id="saveButton" text="Save" minWidth="80" onAction="#onSave"/>
<Button fx:id="settingsButton" text="Settings" minWidth="92" onAction="#onSettings"/>
</HBox>
</top>
<center>
<SplitPane dividerPositions="0.25" BorderPane.alignment="CENTER">
<items>
<VBox spacing="8" minWidth="240">
<padding>
<Insets top="10" right="6" bottom="10" left="10"/>
</padding>
<Label text="OPC UA Tree" styleClass="label-header"/>
<TreeView fx:id="myTreeView" VBox.vgrow="ALWAYS" minWidth="220"
onMouseClicked="#myTreeView_AfterSelect"/>
</VBox>
<VBox spacing="8" minWidth="520">
<padding>
<Insets top="10" right="10" bottom="10" left="6"/>
</padding>
<TableView fx:id="nodeListview" VBox.vgrow="ALWAYS" minHeight="260">
<columns>
<TableColumn fx:id="checkBoxColumn" text="Select" prefWidth="70"/>
<TableColumn fx:id="colDisplayName" text="DisplayName" prefWidth="160"/>
<TableColumn fx:id="colNodeType" text="NodeType" prefWidth="110"/>
<TableColumn fx:id="colNodeId" text="NodeId" prefWidth="280"/>
<TableColumn fx:id="colNamespaceIndex" text="NamespaceIndex" prefWidth="120"/>
<TableColumn fx:id="colIdentifierType" text="IdentifierType" prefWidth="120"/>
<TableColumn fx:id="colValue" text="Value" prefWidth="150"/>
</columns>
<columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY"/>
</columnResizePolicy>
</TableView>
<HBox spacing="8" alignment="CENTER_LEFT" styleClass="script-bar">
<Label text="JS:"/>
<TextField fx:id="scriptField" HBox.hgrow="ALWAYS" promptText="opc.read(&quot;ns=...&quot;)"/>
<Button fx:id="runScriptButton" text="Run" minWidth="70" onAction="#runScript"/>
</HBox>
<TextArea fx:id="logArea" visible="false" managed="false" prefRowCount="0"/>
</VBox>
</items>
</SplitPane>
</center>
</BorderPane>