| target/ | |||||
| !.mvn/wrapper/maven-wrapper.jar | |||||
| !**/src/main/**/target/ | |||||
| !**/src/test/**/target/ | |||||
| ### IntelliJ IDEA ### | |||||
| .idea/modules.xml | |||||
| .idea/jarRepositories.xml | |||||
| .idea/compiler.xml | |||||
| .idea/libraries/ | |||||
| *.iws | |||||
| *.iml | |||||
| *.ipr | |||||
| ### Eclipse ### | |||||
| .apt_generated | |||||
| .classpath | |||||
| .factorypath | |||||
| .project | |||||
| .settings | |||||
| .springBeans | |||||
| .sts4-cache | |||||
| ### NetBeans ### | |||||
| /nbproject/private/ | |||||
| /nbbuild/ | |||||
| /dist/ | |||||
| /nbdist/ | |||||
| /.nb-gradle/ | |||||
| build/ | |||||
| !**/src/main/**/build/ | |||||
| !**/src/test/**/build/ | |||||
| ### VS Code ### | |||||
| .vscode/ | |||||
| ### Mac OS ### | |||||
| .DS_Store | |||||
| /.metadata | |||||
| /.idea |
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" | |||||
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||||
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |||||
| <modelVersion>4.0.0</modelVersion> | |||||
| <groupId>ch.spherICIT</groupId> | |||||
| <artifactId>FSRemoteControl</artifactId> | |||||
| <version>1.0-SNAPSHOT</version> | |||||
| <properties> | |||||
| <maven.compiler.source>21</maven.compiler.source> | |||||
| <maven.compiler.target>21</maven.compiler.target> | |||||
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||||
| <flatlafVersion>3.5.4</flatlafVersion> | |||||
| </properties> | |||||
| <dependencies> | |||||
| <dependency> | |||||
| <groupId>com.formdev</groupId> | |||||
| <artifactId>flatlaf</artifactId> | |||||
| <version>${flatlafVersion}</version> | |||||
| </dependency> | |||||
| <dependency> | |||||
| <groupId>com.formdev</groupId> | |||||
| <artifactId>flatlaf</artifactId> | |||||
| <version>${flatlafVersion}</version> | |||||
| <classifier>windows-x86_64</classifier> | |||||
| <type>dll</type> | |||||
| </dependency> | |||||
| <dependency> | |||||
| <groupId>org.swinglabs</groupId> | |||||
| <artifactId>swingx</artifactId> | |||||
| <version>1.6.1</version> | |||||
| </dependency> | |||||
| <dependency> | |||||
| <groupId>net.sf.flexjson</groupId> | |||||
| <artifactId>flexjson</artifactId> | |||||
| <version>3.3</version> | |||||
| </dependency> | |||||
| <dependency> | |||||
| <groupId>com.fazecast</groupId> | |||||
| <artifactId>jSerialComm</artifactId> | |||||
| <version>2.11.0</version> | |||||
| </dependency> | |||||
| </dependencies> | |||||
| <build> | |||||
| <plugins> | |||||
| <plugin> | |||||
| <artifactId>maven-assembly-plugin</artifactId> | |||||
| <executions> | |||||
| <execution> | |||||
| <phase>package</phase> | |||||
| <goals> | |||||
| <goal>single</goal> | |||||
| </goals> | |||||
| <configuration> | |||||
| <appendAssemblyId>false</appendAssemblyId> | |||||
| <descriptors> | |||||
| <descriptor>src/main/assembly/zip.xml</descriptor> | |||||
| </descriptors> | |||||
| </configuration> | |||||
| </execution> | |||||
| </executions> | |||||
| </plugin> | |||||
| </plugins> | |||||
| </build> | |||||
| </project> |
| <assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.1" | |||||
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||||
| xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.1 https://maven.apache.org/xsd/assembly-2.1.1.xsd"> | |||||
| <id>zip</id> | |||||
| <includeBaseDirectory>true</includeBaseDirectory> | |||||
| <formats> | |||||
| <format>zip</format> | |||||
| <format>dir</format> | |||||
| </formats> | |||||
| <dependencySets> | |||||
| <dependencySet> | |||||
| <outputDirectory>lib</outputDirectory> | |||||
| </dependencySet> | |||||
| </dependencySets> | |||||
| </assembly> |
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="ch.spherICIT.components.statusbar.FSStatusBar"> | |||||
| <grid id="27dc6" binding="statusBarPnl" custom-create="true" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <xy x="20" y="20" width="500" height="33"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"> | |||||
| <color color="-4605511"/> | |||||
| </border> | |||||
| <children> | |||||
| <hspacer id="824c0"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="1.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| </hspacer> | |||||
| <grid id="ce429" binding="connectionStatePnl" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="1.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <component id="47c4d" class="javax.swing.JLabel" binding="connectionStateLbl"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="5" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="12" style="0"/> | |||||
| <horizontalAlignment value="11"/> | |||||
| <text value="Am Verbinden..."/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="e88e3" class="javax.swing.JProgressBar" binding="connectionStatePrgBar"> | |||||
| <constraints> | |||||
| <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <foreground color="-16738404"/> | |||||
| <indeterminate value="true"/> | |||||
| <minimumSize width="80" height="20"/> | |||||
| <preferredSize width="80" height="20"/> | |||||
| <requestFocusEnabled value="false"/> | |||||
| <string value="Aufbau..."/> | |||||
| <stringPainted value="true"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="29d1b" class="javax.swing.JSeparator"> | |||||
| <constraints> | |||||
| <grid row="0" column="3" row-span="1" col-span="1" vsize-policy="6" hsize-policy="6" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="1.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <minimumSize width="5" height="1"/> | |||||
| <orientation value="1"/> | |||||
| <preferredSize width="5" height="0"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="e2139" class="javax.swing.JButton" binding="reconnectBtn"> | |||||
| <constraints> | |||||
| <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <borderPainted value="false"/> | |||||
| <contentAreaFilled value="false"/> | |||||
| <icon value="cable_reconnect.png"/> | |||||
| <label value=""/> | |||||
| <maximumSize width="32" height="32"/> | |||||
| <minimumSize width="32" height="32"/> | |||||
| <preferredSize width="32" height="32"/> | |||||
| <pressedIcon value="cable_reconnect_pr.png"/> | |||||
| <text value=""/> | |||||
| <visible value="false"/> | |||||
| </properties> | |||||
| </component> | |||||
| </children> | |||||
| </grid> | |||||
| <grid id="4d5d5" binding="portPnl" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <component id="11418" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="5" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="12" style="0"/> | |||||
| <horizontalAlignment value="11"/> | |||||
| <text value="Port:"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="9f91b" class="javax.swing.JLabel" binding="portValueLbl"> | |||||
| <constraints> | |||||
| <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="5" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="12" style="0"/> | |||||
| <text value=" "/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="ad8df" class="javax.swing.JSeparator"> | |||||
| <constraints> | |||||
| <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="6" hsize-policy="6" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="1.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <minimumSize width="5" height="1"/> | |||||
| <orientation value="1"/> | |||||
| <preferredSize width="5" height="0"/> | |||||
| </properties> | |||||
| </component> | |||||
| </children> | |||||
| </grid> | |||||
| <grid id="af4ec" binding="versionPnl" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <grid row="0" column="3" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <component id="60f7e" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="5" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="12" style="0"/> | |||||
| <horizontalAlignment value="11"/> | |||||
| <text value="Ver:"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="fc757" class="javax.swing.JLabel" binding="versionValueLbl"> | |||||
| <constraints> | |||||
| <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="5" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="12" style="0"/> | |||||
| <text value=" "/> | |||||
| </properties> | |||||
| </component> | |||||
| </children> | |||||
| </grid> | |||||
| </children> | |||||
| </grid> | |||||
| </form> |
| package ch.spherICIT.components.statusbar; | |||||
| import ch.spherICIT.main.ConnectionState; | |||||
| import ch.spherICIT.main.IConnectionState; | |||||
| import ch.spherICIT.main.ConnectionStateInfo; | |||||
| import com.formdev.flatlaf.ui.FlatLineBorder; | |||||
| import com.formdev.flatlaf.util.StringUtils; | |||||
| import javax.swing.ImageIcon; | |||||
| import javax.swing.JButton; | |||||
| import javax.swing.JComponent; | |||||
| import javax.swing.JLabel; | |||||
| import javax.swing.JPanel; | |||||
| import javax.swing.JProgressBar; | |||||
| import javax.swing.JSeparator; | |||||
| import javax.swing.border.CompoundBorder; | |||||
| import javax.swing.border.EmptyBorder; | |||||
| import javax.swing.plaf.FontUIResource; | |||||
| import javax.swing.text.StyleContext; | |||||
| import java.awt.Color; | |||||
| import java.awt.Dimension; | |||||
| import java.awt.Font; | |||||
| import java.awt.GridBagConstraints; | |||||
| import java.awt.GridBagLayout; | |||||
| import java.awt.Insets; | |||||
| import java.awt.event.ActionEvent; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.util.Locale; | |||||
| public class FSStatusBar implements IConnectionState { | |||||
| private JPanel statusBarPnl; | |||||
| private JPanel connectionStatePnl; | |||||
| private JProgressBar connectionStatePrgBar; | |||||
| private JPanel portPnl; | |||||
| private JLabel connectionStateLbl; | |||||
| private JLabel portValueLbl; | |||||
| private JPanel versionPnl; | |||||
| private JLabel versionValueLbl; | |||||
| private JButton reconnectBtn; | |||||
| private ActionListener reconnectActionListener; | |||||
| public FSStatusBar() { | |||||
| $$$setupUI$$$(); | |||||
| this.reconnectBtn.addActionListener(new ActionListener() { | |||||
| @Override | |||||
| public void actionPerformed(ActionEvent e) { | |||||
| if (FSStatusBar.this.reconnectActionListener != null) { | |||||
| FSStatusBar.this.reconnectActionListener.actionPerformed(e); | |||||
| } | |||||
| } | |||||
| }); | |||||
| } | |||||
| public void setReconnectActionListener(ActionListener reconnectActionListener) { | |||||
| this.reconnectActionListener = reconnectActionListener; | |||||
| } | |||||
| @Override | |||||
| public void connectionStateChanged(ConnectionStateInfo connectionStateInfo) { | |||||
| this.reconnectBtn.setVisible(false); | |||||
| this.portValueLbl.setText(" "); | |||||
| this.versionValueLbl.setText(" "); | |||||
| if (connectionStateInfo.connectionState().equals(ConnectionState.CONNECTING)) { | |||||
| this.connectionStateLbl.setText("Am Verbinden..."); | |||||
| this.connectionStatePrgBar.setString("Aufbau..."); | |||||
| this.connectionStatePrgBar.setIndeterminate(true); | |||||
| } else if (connectionStateInfo.connectionState().equals(ConnectionState.CONNECTED)) { | |||||
| this.connectionStateLbl.setText("Verbunden!"); | |||||
| this.connectionStatePrgBar.setString("OK!"); | |||||
| this.connectionStatePrgBar.setIndeterminate(false); | |||||
| this.connectionStatePrgBar.setValue(100); | |||||
| this.portValueLbl.setText(StringUtils.isEmpty(connectionStateInfo.port()) ? " " : connectionStateInfo.port()); | |||||
| this.versionValueLbl.setText(StringUtils.isEmpty(connectionStateInfo.version()) ? " " : connectionStateInfo.version()); | |||||
| } else { | |||||
| this.connectionStateLbl.setText("Zeitüberschreitung!"); | |||||
| this.connectionStatePrgBar.setString("Nicht verbunden"); | |||||
| this.connectionStatePrgBar.setIndeterminate(false); | |||||
| this.connectionStatePrgBar.setValue(0); | |||||
| this.reconnectBtn.setVisible(true); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Method generated by IntelliJ IDEA GUI Designer | |||||
| * >>> IMPORTANT!! <<< | |||||
| * DO NOT edit this method OR call it in your code! | |||||
| * | |||||
| * @noinspection ALL | |||||
| */ | |||||
| private void $$$setupUI$$$() { | |||||
| createUIComponents(); | |||||
| statusBarPnl.setLayout(new GridBagLayout()); | |||||
| final JPanel spacer1 = new JPanel(); | |||||
| GridBagConstraints gbc; | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| statusBarPnl.add(spacer1, gbc); | |||||
| connectionStatePnl = new JPanel(); | |||||
| connectionStatePnl.setLayout(new GridBagLayout()); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 0; | |||||
| gbc.weighty = 1.0; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| statusBarPnl.add(connectionStatePnl, gbc); | |||||
| connectionStateLbl = new JLabel(); | |||||
| Font connectionStateLblFont = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 12, connectionStateLbl.getFont()); | |||||
| if (connectionStateLblFont != null) connectionStateLbl.setFont(connectionStateLblFont); | |||||
| connectionStateLbl.setHorizontalAlignment(11); | |||||
| connectionStateLbl.setText("Am Verbinden..."); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.EAST; | |||||
| gbc.insets = new Insets(5, 0, 0, 10); | |||||
| connectionStatePnl.add(connectionStateLbl, gbc); | |||||
| connectionStatePrgBar = new JProgressBar(); | |||||
| connectionStatePrgBar.setForeground(new Color(-16738404)); | |||||
| connectionStatePrgBar.setIndeterminate(true); | |||||
| connectionStatePrgBar.setMinimumSize(new Dimension(80, 20)); | |||||
| connectionStatePrgBar.setPreferredSize(new Dimension(80, 20)); | |||||
| connectionStatePrgBar.setRequestFocusEnabled(false); | |||||
| connectionStatePrgBar.setString("Aufbau..."); | |||||
| connectionStatePrgBar.setStringPainted(true); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 0; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| gbc.insets = new Insets(0, 0, 0, 10); | |||||
| connectionStatePnl.add(connectionStatePrgBar, gbc); | |||||
| final JSeparator separator1 = new JSeparator(); | |||||
| separator1.setMinimumSize(new Dimension(5, 1)); | |||||
| separator1.setOrientation(1); | |||||
| separator1.setPreferredSize(new Dimension(5, 0)); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 3; | |||||
| gbc.gridy = 0; | |||||
| gbc.weighty = 1.0; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| connectionStatePnl.add(separator1, gbc); | |||||
| reconnectBtn = new JButton(); | |||||
| reconnectBtn.setBorderPainted(false); | |||||
| reconnectBtn.setContentAreaFilled(false); | |||||
| reconnectBtn.setIcon(new ImageIcon(getClass().getResource("/cable_reconnect.png"))); | |||||
| reconnectBtn.setLabel(""); | |||||
| reconnectBtn.setMaximumSize(new Dimension(32, 32)); | |||||
| reconnectBtn.setMinimumSize(new Dimension(32, 32)); | |||||
| reconnectBtn.setPreferredSize(new Dimension(32, 32)); | |||||
| reconnectBtn.setPressedIcon(new ImageIcon(getClass().getResource("/cable_reconnect_pr.png"))); | |||||
| reconnectBtn.setText(""); | |||||
| reconnectBtn.setVisible(false); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 2; | |||||
| gbc.gridy = 0; | |||||
| gbc.insets = new Insets(0, 0, 0, 10); | |||||
| connectionStatePnl.add(reconnectBtn, gbc); | |||||
| portPnl = new JPanel(); | |||||
| portPnl.setLayout(new GridBagLayout()); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 2; | |||||
| gbc.gridy = 0; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| statusBarPnl.add(portPnl, gbc); | |||||
| final JLabel label1 = new JLabel(); | |||||
| Font label1Font = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 12, label1.getFont()); | |||||
| if (label1Font != null) label1.setFont(label1Font); | |||||
| label1.setHorizontalAlignment(11); | |||||
| label1.setText("Port:"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(5, 0, 0, 10); | |||||
| portPnl.add(label1, gbc); | |||||
| portValueLbl = new JLabel(); | |||||
| Font portValueLblFont = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 12, portValueLbl.getFont()); | |||||
| if (portValueLblFont != null) portValueLbl.setFont(portValueLblFont); | |||||
| portValueLbl.setText(" "); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(5, 0, 0, 10); | |||||
| portPnl.add(portValueLbl, gbc); | |||||
| final JSeparator separator2 = new JSeparator(); | |||||
| separator2.setMinimumSize(new Dimension(5, 1)); | |||||
| separator2.setOrientation(1); | |||||
| separator2.setPreferredSize(new Dimension(5, 0)); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 2; | |||||
| gbc.gridy = 0; | |||||
| gbc.weighty = 1.0; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| portPnl.add(separator2, gbc); | |||||
| versionPnl = new JPanel(); | |||||
| versionPnl.setLayout(new GridBagLayout()); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 3; | |||||
| gbc.gridy = 0; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| statusBarPnl.add(versionPnl, gbc); | |||||
| final JLabel label2 = new JLabel(); | |||||
| Font label2Font = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 12, label2.getFont()); | |||||
| if (label2Font != null) label2.setFont(label2Font); | |||||
| label2.setHorizontalAlignment(11); | |||||
| label2.setText("Ver:"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(5, 0, 0, 10); | |||||
| versionPnl.add(label2, gbc); | |||||
| versionValueLbl = new JLabel(); | |||||
| Font versionValueLblFont = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 12, versionValueLbl.getFont()); | |||||
| if (versionValueLblFont != null) versionValueLbl.setFont(versionValueLblFont); | |||||
| versionValueLbl.setText(" "); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(5, 0, 0, 10); | |||||
| versionPnl.add(versionValueLbl, gbc); | |||||
| } | |||||
| /** | |||||
| * @noinspection ALL | |||||
| */ | |||||
| private Font $$$getFont$$$(String fontName, int style, int size, Font currentFont) { | |||||
| if (currentFont == null) return null; | |||||
| String resultName; | |||||
| if (fontName == null) { | |||||
| resultName = currentFont.getName(); | |||||
| } else { | |||||
| Font testFont = new Font(fontName, Font.PLAIN, 10); | |||||
| if (testFont.canDisplay('a') && testFont.canDisplay('1')) { | |||||
| resultName = fontName; | |||||
| } else { | |||||
| resultName = currentFont.getName(); | |||||
| } | |||||
| } | |||||
| Font font = new Font(resultName, style >= 0 ? style : currentFont.getStyle(), size >= 0 ? size : currentFont.getSize()); | |||||
| boolean isMac = System.getProperty("os.name", "").toLowerCase(Locale.ENGLISH).startsWith("mac"); | |||||
| Font fontWithFallback = isMac ? new Font(font.getFamily(), font.getStyle(), font.getSize()) : new StyleContext().getFont(font.getFamily(), font.getStyle(), font.getSize()); | |||||
| return fontWithFallback instanceof FontUIResource ? fontWithFallback : new FontUIResource(fontWithFallback); | |||||
| } | |||||
| /** | |||||
| * @noinspection ALL | |||||
| */ | |||||
| public JComponent $$$getRootComponent$$$() { | |||||
| return statusBarPnl; | |||||
| } | |||||
| private void createUIComponents() { | |||||
| this.statusBarPnl = new JPanel(); | |||||
| this.statusBarPnl.setMinimumSize(new Dimension(2, 36)); | |||||
| this.statusBarPnl.setPreferredSize(new Dimension(2, 36)); | |||||
| this.statusBarPnl.setBorder(new CompoundBorder(new EmptyBorder(3, 3, 3, 3), | |||||
| new FlatLineBorder(new Insets(3, 3, 3, 3), Color.LIGHT_GRAY, 1, 10))); | |||||
| } | |||||
| } |
| package ch.spherICIT.components.switchbtn; | |||||
| public interface EventSwitchSelected { | |||||
| public void onSelected(boolean selected); | |||||
| } |
| package ch.spherICIT.components.switchbtn; | |||||
| import javax.swing.JComponent; | |||||
| import javax.swing.SwingUtilities; | |||||
| import javax.swing.Timer; | |||||
| import java.awt.AlphaComposite; | |||||
| import java.awt.Color; | |||||
| import java.awt.Cursor; | |||||
| import java.awt.Dimension; | |||||
| import java.awt.Graphics; | |||||
| import java.awt.Graphics2D; | |||||
| import java.awt.RenderingHints; | |||||
| import java.awt.event.ActionEvent; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.awt.event.MouseAdapter; | |||||
| import java.awt.event.MouseEvent; | |||||
| import java.util.ArrayList; | |||||
| import java.util.List; | |||||
| public class SwitchButton extends JComponent { | |||||
| public boolean isSelected() { | |||||
| return selected; | |||||
| } | |||||
| public void setSelected(boolean selected) { | |||||
| this.selected = selected; | |||||
| timer.start(); | |||||
| runEvent(); | |||||
| } | |||||
| private Timer timer; | |||||
| private float location; | |||||
| private boolean selected; | |||||
| private boolean mouseOver; | |||||
| private float speed = 3f; | |||||
| private List<EventSwitchSelected> events; | |||||
| public SwitchButton() { | |||||
| setBackground(new Color(0, 174, 255)); | |||||
| setPreferredSize(new Dimension(50, 25)); | |||||
| setForeground(Color.WHITE); | |||||
| setCursor(new Cursor(Cursor.HAND_CURSOR)); | |||||
| events = new ArrayList<>(); | |||||
| location = 2; | |||||
| timer = new Timer(0, new ActionListener() { | |||||
| @Override | |||||
| public void actionPerformed(ActionEvent ae) { | |||||
| if (isSelected()) { | |||||
| int endLocation = getWidth() - getHeight() + 2; | |||||
| if (location < endLocation) { | |||||
| location += speed; | |||||
| repaint(); | |||||
| } else { | |||||
| timer.stop(); | |||||
| location = endLocation; | |||||
| repaint(); | |||||
| } | |||||
| } else { | |||||
| int endLocation = 2; | |||||
| if (location > endLocation) { | |||||
| location -= speed; | |||||
| repaint(); | |||||
| } else { | |||||
| timer.stop(); | |||||
| location = endLocation; | |||||
| repaint(); | |||||
| } | |||||
| } | |||||
| } | |||||
| }); | |||||
| addMouseListener(new MouseAdapter() { | |||||
| @Override | |||||
| public void mouseEntered(MouseEvent me) { | |||||
| mouseOver = true; | |||||
| } | |||||
| @Override | |||||
| public void mouseExited(MouseEvent me) { | |||||
| mouseOver = false; | |||||
| } | |||||
| @Override | |||||
| public void mouseReleased(MouseEvent me) { | |||||
| if (SwingUtilities.isLeftMouseButton(me)) { | |||||
| if (mouseOver) { | |||||
| selected = !selected; | |||||
| timer.start(); | |||||
| runEvent(); | |||||
| } | |||||
| } | |||||
| } | |||||
| }); | |||||
| } | |||||
| @Override | |||||
| public void paint(Graphics grphcs) { | |||||
| Graphics2D g2 = (Graphics2D) grphcs; | |||||
| g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); | |||||
| int width = getWidth(); | |||||
| int height = getHeight(); | |||||
| float alpha = getAlpha(); | |||||
| if (alpha < 1) { | |||||
| g2.setColor(Color.GRAY); | |||||
| g2.fillRoundRect(0, 0, width, height, height, height); | |||||
| } | |||||
| g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); | |||||
| g2.setColor(getBackground()); | |||||
| g2.fillRoundRect(0, 0, width, height, height, height); | |||||
| g2.setColor(getForeground()); | |||||
| g2.setComposite(AlphaComposite.SrcOver); | |||||
| g2.fillOval((int) location, 2, height - 4, height - 4); | |||||
| super.paint(grphcs); | |||||
| } | |||||
| private float getAlpha() { | |||||
| float width = getPreferredSize().width - getPreferredSize().height; | |||||
| if (width > 0) { | |||||
| float alpha = (location - 2) / width; | |||||
| if (alpha < 0) { | |||||
| alpha = 0; | |||||
| } | |||||
| if (alpha > 1) { | |||||
| alpha = 1; | |||||
| } | |||||
| return alpha; | |||||
| } | |||||
| return 1f; | |||||
| } | |||||
| private void runEvent() { | |||||
| for (EventSwitchSelected event : events) { | |||||
| event.onSelected(selected); | |||||
| } | |||||
| } | |||||
| public void addEventSelected(EventSwitchSelected event) { | |||||
| events.add(event); | |||||
| } | |||||
| } |
| package ch.spherICIT.main; | |||||
| public enum ConnectionState { | |||||
| CONNECTING, CONNECTED, TIMEOUT | |||||
| } |
| package ch.spherICIT.main; | |||||
| public record ConnectionStateInfo(ConnectionState connectionState, String port, String version) { | |||||
| } |
| package ch.spherICIT.main; | |||||
| public interface IConnectionState { | |||||
| public void connectionStateChanged(ConnectionStateInfo connectionStateInfo); | |||||
| } |
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="ch.spherICIT.main.LogWindow"> | |||||
| <grid id="27dc6" binding="mainLogPnl" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <xy x="20" y="20" width="500" height="415"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <component id="e673e" class="javax.swing.JSeparator"> | |||||
| <constraints> | |||||
| <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="0" bottom="0" right="10" weightx="1.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| </component> | |||||
| <component id="5bcb5" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="10" bottom="0" right="5" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="12" style="0"/> | |||||
| <text value="Serial Port Logs"/> | |||||
| </properties> | |||||
| </component> | |||||
| <scrollpane id="9d34d"> | |||||
| <constraints> | |||||
| <grid row="2" column="0" row-span="1" col-span="2" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="10" bottom="10" right="10" weightx="1.0" weighty="1.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="line"> | |||||
| <color color="-4605511"/> | |||||
| </border> | |||||
| <children> | |||||
| <component id="3b48" class="javax.swing.JTextArea" binding="logsTxtArea"> | |||||
| <constraints/> | |||||
| <properties> | |||||
| <background color="-328966"/> | |||||
| <editable value="false"/> | |||||
| </properties> | |||||
| </component> | |||||
| </children> | |||||
| </scrollpane> | |||||
| <vspacer id="39ef2"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="2" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0" ipady="10"/> | |||||
| </constraints> | |||||
| </vspacer> | |||||
| </children> | |||||
| </grid> | |||||
| </form> |
| package ch.spherICIT.main; | |||||
| import javax.swing.BorderFactory; | |||||
| import javax.swing.ImageIcon; | |||||
| import javax.swing.JButton; | |||||
| import javax.swing.JComponent; | |||||
| import javax.swing.JFrame; | |||||
| import javax.swing.JLabel; | |||||
| import javax.swing.JPanel; | |||||
| import javax.swing.JScrollPane; | |||||
| import javax.swing.JSeparator; | |||||
| import javax.swing.JTextArea; | |||||
| import javax.swing.SwingConstants; | |||||
| import javax.swing.border.TitledBorder; | |||||
| import javax.swing.plaf.FontUIResource; | |||||
| import javax.swing.text.StyleContext; | |||||
| import java.awt.BorderLayout; | |||||
| import java.awt.Color; | |||||
| import java.awt.Dimension; | |||||
| import java.awt.Font; | |||||
| import java.awt.GridBagConstraints; | |||||
| import java.awt.GridBagLayout; | |||||
| import java.awt.HeadlessException; | |||||
| import java.awt.Insets; | |||||
| import java.awt.event.ActionEvent; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.time.LocalDateTime; | |||||
| import java.time.format.DateTimeFormatter; | |||||
| import java.util.ArrayList; | |||||
| import java.util.List; | |||||
| import java.util.Locale; | |||||
| public class LogWindow extends JFrame { | |||||
| public enum SendDirection { | |||||
| OUT, IN | |||||
| } | |||||
| private JTextArea logsTxtArea; | |||||
| private JPanel mainLogPnl; | |||||
| private List<String> logs; | |||||
| private DateTimeFormatter dateTimeFormatter; | |||||
| private JButton closeBtn; | |||||
| public LogWindow() throws HeadlessException { | |||||
| this.dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); | |||||
| this.logs = new ArrayList<>(); | |||||
| createCloseBtn(); | |||||
| final JPanel btnPanel = new JPanel(new GridBagLayout()); | |||||
| btnPanel.setBorder(BorderFactory.createEmptyBorder(5, 10, 10, 10)); | |||||
| btnPanel.add(this.closeBtn); | |||||
| setTitle("FS Remote Control Logs"); | |||||
| setIconImage(new ImageIcon(ClassLoader.getSystemResource("Application_Logo_BG.png"), "").getImage()); | |||||
| setSize(new Dimension(600, 400)); | |||||
| setLayout(new BorderLayout()); | |||||
| setLocationRelativeTo(null); | |||||
| setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); | |||||
| setResizable(false); | |||||
| add(this.mainLogPnl, BorderLayout.CENTER); | |||||
| add(btnPanel, BorderLayout.SOUTH); | |||||
| addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"On\"}", SendDirection.IN); | |||||
| addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"Off\"}", SendDirection.OUT); | |||||
| addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"On\"}", SendDirection.IN); | |||||
| addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"Off\"}", SendDirection.OUT); | |||||
| addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"On\"}", SendDirection.IN); | |||||
| addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"Off\"}", SendDirection.OUT); | |||||
| } | |||||
| private void createCloseBtn() { | |||||
| this.closeBtn = new JButton("Schliessen"); | |||||
| this.closeBtn.setFont(this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 14, this.closeBtn.getFont())); | |||||
| this.closeBtn.setVerticalAlignment(SwingConstants.BOTTOM); | |||||
| this.closeBtn.setPreferredSize(new Dimension(120, 32)); | |||||
| this.closeBtn.addActionListener(new ActionListener() { | |||||
| @Override | |||||
| public void actionPerformed(ActionEvent e) { | |||||
| setVisible(false); | |||||
| } | |||||
| }); | |||||
| } | |||||
| public void addLogEntry(String logEntry, SendDirection sd) { | |||||
| this.logs.add(this.dateTimeFormatter.format(LocalDateTime.now()) + " :" + (sd.equals(SendDirection.IN) ? " << " : " >> ") + logEntry); | |||||
| this.logsTxtArea.append(this.logs.getLast()); | |||||
| this.logsTxtArea.append("\r\n"); | |||||
| } | |||||
| { | |||||
| // GUI initializer generated by IntelliJ IDEA GUI Designer | |||||
| // >>> IMPORTANT!! <<< | |||||
| // DO NOT EDIT OR ADD ANY CODE HERE! | |||||
| $$$setupUI$$$(); | |||||
| } | |||||
| /** | |||||
| * Method generated by IntelliJ IDEA GUI Designer | |||||
| * >>> IMPORTANT!! <<< | |||||
| * DO NOT edit this method OR call it in your code! | |||||
| * | |||||
| * @noinspection ALL | |||||
| */ | |||||
| private void $$$setupUI$$$() { | |||||
| mainLogPnl = new JPanel(); | |||||
| mainLogPnl.setLayout(new GridBagLayout()); | |||||
| final JSeparator separator1 = new JSeparator(); | |||||
| GridBagConstraints gbc; | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 1; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(0, 0, 0, 10); | |||||
| mainLogPnl.add(separator1, gbc); | |||||
| final JLabel label1 = new JLabel(); | |||||
| Font label1Font = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 12, label1.getFont()); | |||||
| if (label1Font != null) label1.setFont(label1Font); | |||||
| label1.setText("Serial Port Logs"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 1; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(0, 10, 0, 5); | |||||
| mainLogPnl.add(label1, gbc); | |||||
| final JScrollPane scrollPane1 = new JScrollPane(); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 2; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.weighty = 1.0; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| gbc.insets = new Insets(10, 10, 10, 10); | |||||
| mainLogPnl.add(scrollPane1, gbc); | |||||
| scrollPane1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(new Color(-4605511)), null, TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null)); | |||||
| logsTxtArea = new JTextArea(); | |||||
| logsTxtArea.setBackground(new Color(-328966)); | |||||
| logsTxtArea.setEditable(false); | |||||
| scrollPane1.setViewportView(logsTxtArea); | |||||
| final JPanel spacer1 = new JPanel(); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.fill = GridBagConstraints.VERTICAL; | |||||
| gbc.ipady = 10; | |||||
| mainLogPnl.add(spacer1, gbc); | |||||
| } | |||||
| /** | |||||
| * @noinspection ALL | |||||
| */ | |||||
| private Font $$$getFont$$$(String fontName, int style, int size, Font currentFont) { | |||||
| if (currentFont == null) return null; | |||||
| String resultName; | |||||
| if (fontName == null) { | |||||
| resultName = currentFont.getName(); | |||||
| } else { | |||||
| Font testFont = new Font(fontName, Font.PLAIN, 10); | |||||
| if (testFont.canDisplay('a') && testFont.canDisplay('1')) { | |||||
| resultName = fontName; | |||||
| } else { | |||||
| resultName = currentFont.getName(); | |||||
| } | |||||
| } | |||||
| Font font = new Font(resultName, style >= 0 ? style : currentFont.getStyle(), size >= 0 ? size : currentFont.getSize()); | |||||
| boolean isMac = System.getProperty("os.name", "").toLowerCase(Locale.ENGLISH).startsWith("mac"); | |||||
| Font fontWithFallback = isMac ? new Font(font.getFamily(), font.getStyle(), font.getSize()) : new StyleContext().getFont(font.getFamily(), font.getStyle(), font.getSize()); | |||||
| return fontWithFallback instanceof FontUIResource ? fontWithFallback : new FontUIResource(fontWithFallback); | |||||
| } | |||||
| /** | |||||
| * @noinspection ALL | |||||
| */ | |||||
| public JComponent $$$getRootComponent$$$() { | |||||
| return mainLogPnl; | |||||
| } | |||||
| } |
| package ch.spherICIT.main; | |||||
| import com.formdev.flatlaf.FlatIntelliJLaf; | |||||
| import javax.swing.UIManager; | |||||
| import java.awt.Color; | |||||
| public class MainApp { | |||||
| public static void main(String[] args) { | |||||
| try { | |||||
| FlatIntelliJLaf.setup(); | |||||
| Color titlePnBgColor = new Color(135, 176, 230); | |||||
| Color titlePnInactiveBgColor = new Color(119, 155, 202); | |||||
| UIManager.put("RootPane.background", titlePnBgColor); | |||||
| UIManager.put("TitlePane.background", titlePnBgColor); | |||||
| UIManager.put("TitlePane.inactiveBackground", titlePnInactiveBgColor); | |||||
| UIManager.put("TitlePane.centerTitle", true); | |||||
| MainFrame mainFrame = new MainFrame(); | |||||
| mainFrame.setVisible(true); | |||||
| } catch (Exception ex) { | |||||
| System.err.println("Failed to initialize LaF"); | |||||
| ex.printStackTrace(); | |||||
| } | |||||
| } | |||||
| } |
| package ch.spherICIT.main; | |||||
| import ch.spherICIT.components.statusbar.FSStatusBar; | |||||
| import javax.swing.ImageIcon; | |||||
| import javax.swing.JFrame; | |||||
| import java.awt.BorderLayout; | |||||
| public class MainFrame extends JFrame { | |||||
| public MainFrame() { | |||||
| init(); | |||||
| } | |||||
| private void init() { | |||||
| setTitle("FS Remote Control"); | |||||
| setIconImage(new ImageIcon(ClassLoader.getSystemResource("Application_Logo_BG.png"),"").getImage()); | |||||
| setSize(new java.awt.Dimension(800, 480)); | |||||
| setLayout(new BorderLayout()); | |||||
| setLocationRelativeTo(null); | |||||
| setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); | |||||
| MainPanel mainPanel = new MainPanel(); | |||||
| FSStatusBar fsStatusBar = new FSStatusBar(); | |||||
| mainPanel.registerConnectionStateListener(fsStatusBar); | |||||
| fsStatusBar.setReconnectActionListener(mainPanel.getReconnectActionListener()); | |||||
| add(mainPanel.$$$getRootComponent$$$(), BorderLayout.CENTER); | |||||
| add(fsStatusBar.$$$getRootComponent$$$(), BorderLayout.SOUTH); | |||||
| setResizable(false); | |||||
| } | |||||
| } | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="ch.spherICIT.main.MainPanel"> | |||||
| <grid id="27dc6" binding="mainPanel" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <xy x="20" y="20" width="814" height="542"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <hspacer id="6aa04"> | |||||
| <constraints> | |||||
| <grid row="1" column="7" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="1.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| </hspacer> | |||||
| <component id="e5600" class="javax.swing.JLabel" binding="serPortLbl"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="9" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="18" left="10" bottom="10" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="14" style="0"/> | |||||
| <text value="Serieller Port:"/> | |||||
| </properties> | |||||
| </component> | |||||
| <vspacer id="cb4a9"> | |||||
| <constraints> | |||||
| <grid row="6" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="1.0"/> | |||||
| </constraints> | |||||
| </vspacer> | |||||
| <component id="196b9" class="javax.swing.JComboBox" binding="serPortCboBox"> | |||||
| <constraints> | |||||
| <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="9" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="0" bottom="10" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="14" style="0"/> | |||||
| <minimumSize width="120" height="32"/> | |||||
| <model> | |||||
| <item value="COM4"/> | |||||
| </model> | |||||
| <preferredSize width="120" height="32"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="3a8ec" class="javax.swing.JButton" binding="serPortOpenBtn"> | |||||
| <constraints> | |||||
| <grid row="0" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="10" bottom="10" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <contentAreaFilled value="true"/> | |||||
| <font name="Bahnschrift" size="14" style="0"/> | |||||
| <hideActionText value="false"/> | |||||
| <horizontalTextPosition value="0"/> | |||||
| <label value="Öffnen"/> | |||||
| <minimumSize width="130" height="32"/> | |||||
| <preferredSize width="130" height="32"/> | |||||
| <selected value="false"/> | |||||
| <text value="Öffnen"/> | |||||
| <verticalAlignment value="3"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="d6057" class="javax.swing.JButton" binding="serPortCloseBtn"> | |||||
| <constraints> | |||||
| <grid row="0" column="4" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="10" bottom="10" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="14" style="0"/> | |||||
| <label value="Schliessen"/> | |||||
| <minimumSize width="130" height="32"/> | |||||
| <preferredSize width="130" height="32"/> | |||||
| <text value="Schliessen"/> | |||||
| <verticalAlignment value="3"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="d3573" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="1" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="10" bottom="10" right="10" weightx="1.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-15834670"/> | |||||
| <horizontalAlignment value="0"/> | |||||
| <text value="Relais Power Schalter"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="8d93c" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="1" column="3" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="10" bottom="10" right="10" weightx="1.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-15834670"/> | |||||
| <horizontalAlignment value="0"/> | |||||
| <text value="Drehwinkel WebCam"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="ac8d1" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="1" column="5" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="0" bottom="10" right="10" weightx="1.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-15834670"/> | |||||
| <horizontalAlignment value="0"/> | |||||
| <text value="WebCam 0° Azimut"/> | |||||
| </properties> | |||||
| </component> | |||||
| <grid id="68002" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <grid row="2" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <component id="96fd8" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="20" style="1"/> | |||||
| <foreground color="-65536"/> | |||||
| <text value="AUS"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="c30d9" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="10" bottom="0" right="0" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="20" style="1"/> | |||||
| <foreground color="-16738404"/> | |||||
| <text value="EIN"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="70113" class="ch.spherICIT.components.switchbtn.SwitchButton" binding="relaisPwrBtn"> | |||||
| <constraints> | |||||
| <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <background color="-16738404"/> | |||||
| <preferredSize width="80" height="40"/> | |||||
| </properties> | |||||
| </component> | |||||
| </children> | |||||
| </grid> | |||||
| <component id="100a0" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="4" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="10" bottom="10" right="10" weightx="1.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-15834670"/> | |||||
| <horizontalAlignment value="0"/> | |||||
| <text value="Relais Power Status"/> | |||||
| </properties> | |||||
| </component> | |||||
| <vspacer id="39cf7"> | |||||
| <constraints> | |||||
| <grid row="3" column="0" row-span="1" col-span="2" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0" ipady="80"/> | |||||
| </constraints> | |||||
| </vspacer> | |||||
| <component id="28a8c" class="javax.swing.JLabel" binding="relaisPwrLed"> | |||||
| <constraints> | |||||
| <grid row="5" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <horizontalAlignment value="0"/> | |||||
| <icon value="blue_led_off.png"/> | |||||
| <text value=""/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="81669" class="javax.swing.JButton" binding="setZeroAzBtn"> | |||||
| <constraints> | |||||
| <grid row="2" column="5" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="9" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="14" style="0"/> | |||||
| <maximumSize width="130" height="32"/> | |||||
| <minimumSize width="130" height="32"/> | |||||
| <preferredSize width="130" height="32"/> | |||||
| <text value="0° setzen"/> | |||||
| <verticalAlignment value="3"/> | |||||
| </properties> | |||||
| </component> | |||||
| <grid id="cf489" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <grid row="3" column="5" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="8" fill="2" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <component id="7da5c" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-65536"/> | |||||
| <text value="SLOW"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="30249" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="4" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="0" bottom="10" right="10" weightx="1.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-15834670"/> | |||||
| <horizontalAlignment value="0"/> | |||||
| <text value="WebCam Geschwindigkeit"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="ea938" class="ch.spherICIT.components.switchbtn.SwitchButton" binding="camVelocityModeBtn"> | |||||
| <constraints> | |||||
| <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <background color="-16738404"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="5163d" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="1" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="10" bottom="0" right="0" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-16738404"/> | |||||
| <text value="FAST"/> | |||||
| </properties> | |||||
| </component> | |||||
| <vspacer id="6d54b"> | |||||
| <constraints> | |||||
| <grid row="2" column="0" row-span="1" col-span="4" vsize-policy="6" hsize-policy="1" anchor="0" fill="3" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="1.0"/> | |||||
| </constraints> | |||||
| </vspacer> | |||||
| </children> | |||||
| </grid> | |||||
| <grid id="883dc" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <grid row="4" column="5" row-span="2" col-span="2" vsize-policy="3" hsize-policy="3" anchor="8" fill="2" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <component id="ee24f" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="10" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="0" bottom="12" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-65536"/> | |||||
| <text value="AUS"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="9a7c4" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="1" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="2" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="10" bottom="12" right="0" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-16738404"/> | |||||
| <text value="Ein"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="97dc" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="4" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="0" bottom="10" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="16" style="1"/> | |||||
| <foreground color="-15834670"/> | |||||
| <horizontalAlignment value="0"/> | |||||
| <text value="WebCam Stepper Power"/> | |||||
| </properties> | |||||
| </component> | |||||
| <grid id="64aa9" layout-manager="GridBagLayout"> | |||||
| <constraints> | |||||
| <grid row="1" column="3" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="4" fill="2" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties/> | |||||
| <border type="none"/> | |||||
| <children> | |||||
| <component id="bf550" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="10" bottom="5" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <font name="Bahnschrift" size="14" style="1"/> | |||||
| <foreground color="-15834670"/> | |||||
| <horizontalAlignment value="0"/> | |||||
| <text value="Status"/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="b1d8f" class="javax.swing.JLabel" binding="camStepperPwrLed"> | |||||
| <constraints> | |||||
| <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false"/> | |||||
| <gridbag weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <horizontalAlignment value="0"/> | |||||
| <icon value="blue_led_off.png"/> | |||||
| <text value=""/> | |||||
| </properties> | |||||
| </component> | |||||
| </children> | |||||
| </grid> | |||||
| <component id="ba630" class="ch.spherICIT.components.switchbtn.SwitchButton" binding="camStepperPwrBtn"> | |||||
| <constraints> | |||||
| <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="2" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="0" left="0" bottom="10" right="0" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <background color="-16738404"/> | |||||
| </properties> | |||||
| </component> | |||||
| </children> | |||||
| </grid> | |||||
| <component id="b9645" class="javax.swing.JLabel"> | |||||
| <constraints> | |||||
| <grid row="0" column="5" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="80" bottom="20" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <icon value="Arduino_Logo_small.png"/> | |||||
| <text value=""/> | |||||
| </properties> | |||||
| </component> | |||||
| <component id="5199d" class="javax.swing.JButton" binding="logWindowBtn"> | |||||
| <constraints> | |||||
| <grid row="0" column="5" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="9" fill="0" indent="0" use-parent-layout="false"/> | |||||
| <gridbag top="10" left="10" bottom="10" right="10" weightx="0.0" weighty="0.0"/> | |||||
| </constraints> | |||||
| <properties> | |||||
| <icon value="log24.png"/> | |||||
| <maximumSize width="32" height="32"/> | |||||
| <minimumSize width="32" height="32"/> | |||||
| <preferredSize width="32" height="32"/> | |||||
| <text value=""/> | |||||
| </properties> | |||||
| </component> | |||||
| </children> | |||||
| </grid> | |||||
| </form> |
| package ch.spherICIT.main; | |||||
| import ch.spherICIT.components.switchbtn.SwitchButton; | |||||
| import javax.swing.DefaultComboBoxModel; | |||||
| import javax.swing.ImageIcon; | |||||
| import javax.swing.JButton; | |||||
| import javax.swing.JComboBox; | |||||
| import javax.swing.JComponent; | |||||
| import javax.swing.JLabel; | |||||
| import javax.swing.JOptionPane; | |||||
| import javax.swing.JPanel; | |||||
| import javax.swing.plaf.FontUIResource; | |||||
| import javax.swing.text.StyleContext; | |||||
| import java.awt.Color; | |||||
| import java.awt.Dimension; | |||||
| import java.awt.Font; | |||||
| import java.awt.GridBagConstraints; | |||||
| import java.awt.GridBagLayout; | |||||
| import java.awt.Insets; | |||||
| import java.awt.event.ActionEvent; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.util.HashSet; | |||||
| import java.util.Locale; | |||||
| import java.util.Set; | |||||
| public class MainPanel { | |||||
| private JPanel mainPanel; | |||||
| private JLabel serPortLbl; | |||||
| private JComboBox serPortCboBox; | |||||
| private JButton serPortOpenBtn; | |||||
| private JButton serPortCloseBtn; | |||||
| private JButton setZeroAzBtn; | |||||
| private SwitchButton relaisPwrBtn; | |||||
| private SwitchButton camVelocityModeBtn; | |||||
| private SwitchButton camStepperPwrBtn; | |||||
| private JLabel relaisPwrLed; | |||||
| private JLabel camStepperPwrLed; | |||||
| private JButton logWindowBtn; | |||||
| private final LogWindow logWindow; | |||||
| private Set<IConnectionState> connectionStateListeners; | |||||
| private ActionListener reconnectActionListener; | |||||
| /** | |||||
| * Konstruktor. | |||||
| */ | |||||
| public MainPanel() { | |||||
| this.logWindow = new LogWindow(); | |||||
| this.connectionStateListeners = new HashSet<>(); | |||||
| this.reconnectActionListener = new ActionListener() { | |||||
| @Override | |||||
| public void actionPerformed(ActionEvent e) { | |||||
| JOptionPane.showMessageDialog(mainPanel, "Test", "Title", JOptionPane.INFORMATION_MESSAGE); | |||||
| } | |||||
| }; | |||||
| this.serPortOpenBtn.addActionListener(new ActionListener() { | |||||
| @Override | |||||
| public void actionPerformed(ActionEvent e) { | |||||
| connectionStateListeners.iterator().next().connectionStateChanged(new ConnectionStateInfo(ConnectionState.CONNECTING, "", "")); | |||||
| } | |||||
| }); | |||||
| serPortCloseBtn.addActionListener(new ActionListener() { | |||||
| @Override | |||||
| public void actionPerformed(ActionEvent e) { | |||||
| connectionStateListeners.iterator().next().connectionStateChanged(new ConnectionStateInfo(ConnectionState.CONNECTED, "COM4", "v1.2.0")); | |||||
| } | |||||
| }); | |||||
| setZeroAzBtn.addActionListener(new ActionListener() { | |||||
| @Override | |||||
| public void actionPerformed(ActionEvent e) { | |||||
| connectionStateListeners.iterator().next().connectionStateChanged(new ConnectionStateInfo(ConnectionState.TIMEOUT, "", "")); | |||||
| } | |||||
| }); | |||||
| logWindowBtn.addActionListener(new ActionListener() { | |||||
| @Override | |||||
| public void actionPerformed(ActionEvent e) { | |||||
| logWindow.setVisible(true); | |||||
| } | |||||
| }); | |||||
| } | |||||
| public void registerConnectionStateListener(IConnectionState connectionStateListener) { | |||||
| this.connectionStateListeners.add(connectionStateListener); | |||||
| } | |||||
| public void removeConnectionStateListener(IConnectionState connectionStateListener) { | |||||
| this.connectionStateListeners.remove(connectionStateListener); | |||||
| } | |||||
| public ActionListener getReconnectActionListener() { | |||||
| return reconnectActionListener; | |||||
| } | |||||
| { | |||||
| // GUI initializer generated by IntelliJ IDEA GUI Designer | |||||
| // >>> IMPORTANT!! <<< | |||||
| // DO NOT EDIT OR ADD ANY CODE HERE! | |||||
| $$$setupUI$$$(); | |||||
| } | |||||
| /** | |||||
| * Method generated by IntelliJ IDEA GUI Designer | |||||
| * >>> IMPORTANT!! <<< | |||||
| * DO NOT edit this method OR call it in your code! | |||||
| * | |||||
| * @noinspection ALL | |||||
| */ | |||||
| private void $$$setupUI$$$() { | |||||
| mainPanel = new JPanel(); | |||||
| mainPanel.setLayout(new GridBagLayout()); | |||||
| final JPanel spacer1 = new JPanel(); | |||||
| GridBagConstraints gbc; | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 7; | |||||
| gbc.gridy = 1; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| mainPanel.add(spacer1, gbc); | |||||
| serPortLbl = new JLabel(); | |||||
| Font serPortLblFont = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 14, serPortLbl.getFont()); | |||||
| if (serPortLblFont != null) serPortLbl.setFont(serPortLblFont); | |||||
| serPortLbl.setText("Serieller Port:"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.anchor = GridBagConstraints.NORTHWEST; | |||||
| gbc.insets = new Insets(18, 10, 10, 10); | |||||
| mainPanel.add(serPortLbl, gbc); | |||||
| final JPanel spacer2 = new JPanel(); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 6; | |||||
| gbc.weighty = 1.0; | |||||
| gbc.fill = GridBagConstraints.VERTICAL; | |||||
| mainPanel.add(spacer2, gbc); | |||||
| serPortCboBox = new JComboBox(); | |||||
| Font serPortCboBoxFont = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 14, serPortCboBox.getFont()); | |||||
| if (serPortCboBoxFont != null) serPortCboBox.setFont(serPortCboBoxFont); | |||||
| serPortCboBox.setMinimumSize(new Dimension(120, 32)); | |||||
| final DefaultComboBoxModel defaultComboBoxModel1 = new DefaultComboBoxModel(); | |||||
| defaultComboBoxModel1.addElement("COM4"); | |||||
| serPortCboBox.setModel(defaultComboBoxModel1); | |||||
| serPortCboBox.setPreferredSize(new Dimension(120, 32)); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 2; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.NORTHWEST; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(10, 0, 10, 10); | |||||
| mainPanel.add(serPortCboBox, gbc); | |||||
| serPortOpenBtn = new JButton(); | |||||
| serPortOpenBtn.setContentAreaFilled(true); | |||||
| Font serPortOpenBtnFont = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 14, serPortOpenBtn.getFont()); | |||||
| if (serPortOpenBtnFont != null) serPortOpenBtn.setFont(serPortOpenBtnFont); | |||||
| serPortOpenBtn.setHideActionText(false); | |||||
| serPortOpenBtn.setHorizontalTextPosition(0); | |||||
| serPortOpenBtn.setLabel("Öffnen"); | |||||
| serPortOpenBtn.setMinimumSize(new Dimension(130, 32)); | |||||
| serPortOpenBtn.setPreferredSize(new Dimension(130, 32)); | |||||
| serPortOpenBtn.setSelected(false); | |||||
| serPortOpenBtn.setText("Öffnen"); | |||||
| serPortOpenBtn.setVerticalAlignment(3); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 3; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.NORTH; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(10, 10, 10, 10); | |||||
| mainPanel.add(serPortOpenBtn, gbc); | |||||
| serPortCloseBtn = new JButton(); | |||||
| Font serPortCloseBtnFont = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 14, serPortCloseBtn.getFont()); | |||||
| if (serPortCloseBtnFont != null) serPortCloseBtn.setFont(serPortCloseBtnFont); | |||||
| serPortCloseBtn.setLabel("Schliessen"); | |||||
| serPortCloseBtn.setMinimumSize(new Dimension(130, 32)); | |||||
| serPortCloseBtn.setPreferredSize(new Dimension(130, 32)); | |||||
| serPortCloseBtn.setText("Schliessen"); | |||||
| serPortCloseBtn.setVerticalAlignment(3); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 4; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.NORTH; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(10, 10, 10, 10); | |||||
| mainPanel.add(serPortCloseBtn, gbc); | |||||
| final JLabel label1 = new JLabel(); | |||||
| Font label1Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label1.getFont()); | |||||
| if (label1Font != null) label1.setFont(label1Font); | |||||
| label1.setForeground(new Color(-15834670)); | |||||
| label1.setHorizontalAlignment(0); | |||||
| label1.setText("Relais Power Schalter"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 1; | |||||
| gbc.gridwidth = 3; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(10, 10, 10, 10); | |||||
| mainPanel.add(label1, gbc); | |||||
| final JLabel label2 = new JLabel(); | |||||
| Font label2Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label2.getFont()); | |||||
| if (label2Font != null) label2.setFont(label2Font); | |||||
| label2.setForeground(new Color(-15834670)); | |||||
| label2.setHorizontalAlignment(0); | |||||
| label2.setText("Drehwinkel WebCam"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 3; | |||||
| gbc.gridy = 1; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(10, 10, 10, 10); | |||||
| mainPanel.add(label2, gbc); | |||||
| final JLabel label3 = new JLabel(); | |||||
| Font label3Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label3.getFont()); | |||||
| if (label3Font != null) label3.setFont(label3Font); | |||||
| label3.setForeground(new Color(-15834670)); | |||||
| label3.setHorizontalAlignment(0); | |||||
| label3.setText("WebCam 0° Azimut"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 5; | |||||
| gbc.gridy = 1; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(10, 0, 10, 10); | |||||
| mainPanel.add(label3, gbc); | |||||
| final JPanel panel1 = new JPanel(); | |||||
| panel1.setLayout(new GridBagLayout()); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 2; | |||||
| gbc.gridwidth = 3; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| mainPanel.add(panel1, gbc); | |||||
| final JLabel label4 = new JLabel(); | |||||
| Font label4Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 20, label4.getFont()); | |||||
| if (label4Font != null) label4.setFont(label4Font); | |||||
| label4.setForeground(new Color(-65536)); | |||||
| label4.setText("AUS"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(0, 0, 0, 10); | |||||
| panel1.add(label4, gbc); | |||||
| final JLabel label5 = new JLabel(); | |||||
| Font label5Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 20, label5.getFont()); | |||||
| if (label5Font != null) label5.setFont(label5Font); | |||||
| label5.setForeground(new Color(-16738404)); | |||||
| label5.setText("EIN"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 2; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(0, 10, 0, 0); | |||||
| panel1.add(label5, gbc); | |||||
| relaisPwrBtn = new SwitchButton(); | |||||
| relaisPwrBtn.setBackground(new Color(-16738404)); | |||||
| relaisPwrBtn.setPreferredSize(new Dimension(80, 40)); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 0; | |||||
| panel1.add(relaisPwrBtn, gbc); | |||||
| final JLabel label6 = new JLabel(); | |||||
| Font label6Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label6.getFont()); | |||||
| if (label6Font != null) label6.setFont(label6Font); | |||||
| label6.setForeground(new Color(-15834670)); | |||||
| label6.setHorizontalAlignment(0); | |||||
| label6.setText("Relais Power Status"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 4; | |||||
| gbc.gridwidth = 3; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(10, 10, 10, 10); | |||||
| mainPanel.add(label6, gbc); | |||||
| final JPanel spacer3 = new JPanel(); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 3; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.fill = GridBagConstraints.VERTICAL; | |||||
| gbc.ipady = 80; | |||||
| mainPanel.add(spacer3, gbc); | |||||
| relaisPwrLed = new JLabel(); | |||||
| relaisPwrLed.setHorizontalAlignment(0); | |||||
| relaisPwrLed.setIcon(new ImageIcon(getClass().getResource("/blue_led_off.png"))); | |||||
| relaisPwrLed.setText(""); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 5; | |||||
| gbc.gridwidth = 3; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| mainPanel.add(relaisPwrLed, gbc); | |||||
| setZeroAzBtn = new JButton(); | |||||
| Font setZeroAzBtnFont = this.$$$getFont$$$("Bahnschrift", Font.PLAIN, 14, setZeroAzBtn.getFont()); | |||||
| if (setZeroAzBtnFont != null) setZeroAzBtn.setFont(setZeroAzBtnFont); | |||||
| setZeroAzBtn.setMaximumSize(new Dimension(130, 32)); | |||||
| setZeroAzBtn.setMinimumSize(new Dimension(130, 32)); | |||||
| setZeroAzBtn.setPreferredSize(new Dimension(130, 32)); | |||||
| setZeroAzBtn.setText("0° setzen"); | |||||
| setZeroAzBtn.setVerticalAlignment(3); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 5; | |||||
| gbc.gridy = 2; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.anchor = GridBagConstraints.NORTHWEST; | |||||
| mainPanel.add(setZeroAzBtn, gbc); | |||||
| final JPanel panel2 = new JPanel(); | |||||
| panel2.setLayout(new GridBagLayout()); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 5; | |||||
| gbc.gridy = 3; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.fill = GridBagConstraints.VERTICAL; | |||||
| mainPanel.add(panel2, gbc); | |||||
| final JLabel label7 = new JLabel(); | |||||
| Font label7Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label7.getFont()); | |||||
| if (label7Font != null) label7.setFont(label7Font); | |||||
| label7.setForeground(new Color(-65536)); | |||||
| label7.setText("SLOW"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 1; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(0, 0, 0, 10); | |||||
| panel2.add(label7, gbc); | |||||
| final JLabel label8 = new JLabel(); | |||||
| Font label8Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label8.getFont()); | |||||
| if (label8Font != null) label8.setFont(label8Font); | |||||
| label8.setForeground(new Color(-15834670)); | |||||
| label8.setHorizontalAlignment(0); | |||||
| label8.setText("WebCam Geschwindigkeit"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.gridwidth = 4; | |||||
| gbc.weightx = 1.0; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(10, 0, 10, 10); | |||||
| panel2.add(label8, gbc); | |||||
| camVelocityModeBtn = new SwitchButton(); | |||||
| camVelocityModeBtn.setBackground(new Color(-16738404)); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 1; | |||||
| panel2.add(camVelocityModeBtn, gbc); | |||||
| final JLabel label9 = new JLabel(); | |||||
| Font label9Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label9.getFont()); | |||||
| if (label9Font != null) label9.setFont(label9Font); | |||||
| label9.setForeground(new Color(-16738404)); | |||||
| label9.setText("FAST"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 2; | |||||
| gbc.gridy = 1; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(0, 10, 0, 0); | |||||
| panel2.add(label9, gbc); | |||||
| final JPanel spacer4 = new JPanel(); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 2; | |||||
| gbc.gridwidth = 4; | |||||
| gbc.weighty = 1.0; | |||||
| gbc.fill = GridBagConstraints.BOTH; | |||||
| panel2.add(spacer4, gbc); | |||||
| final JPanel panel3 = new JPanel(); | |||||
| panel3.setLayout(new GridBagLayout()); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 5; | |||||
| gbc.gridy = 4; | |||||
| gbc.gridwidth = 2; | |||||
| gbc.gridheight = 2; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.fill = GridBagConstraints.VERTICAL; | |||||
| mainPanel.add(panel3, gbc); | |||||
| final JLabel label10 = new JLabel(); | |||||
| Font label10Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label10.getFont()); | |||||
| if (label10Font != null) label10.setFont(label10Font); | |||||
| label10.setForeground(new Color(-65536)); | |||||
| label10.setText("AUS"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 1; | |||||
| gbc.anchor = GridBagConstraints.SOUTHWEST; | |||||
| gbc.insets = new Insets(0, 0, 12, 10); | |||||
| panel3.add(label10, gbc); | |||||
| final JLabel label11 = new JLabel(); | |||||
| Font label11Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label11.getFont()); | |||||
| if (label11Font != null) label11.setFont(label11Font); | |||||
| label11.setForeground(new Color(-16738404)); | |||||
| label11.setText("Ein"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 2; | |||||
| gbc.gridy = 1; | |||||
| gbc.anchor = GridBagConstraints.SOUTH; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(0, 10, 12, 0); | |||||
| panel3.add(label11, gbc); | |||||
| final JLabel label12 = new JLabel(); | |||||
| Font label12Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 16, label12.getFont()); | |||||
| if (label12Font != null) label12.setFont(label12Font); | |||||
| label12.setForeground(new Color(-15834670)); | |||||
| label12.setHorizontalAlignment(0); | |||||
| label12.setText("WebCam Stepper Power"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.gridwidth = 4; | |||||
| gbc.anchor = GridBagConstraints.WEST; | |||||
| gbc.insets = new Insets(10, 0, 10, 10); | |||||
| panel3.add(label12, gbc); | |||||
| final JPanel panel4 = new JPanel(); | |||||
| panel4.setLayout(new GridBagLayout()); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 3; | |||||
| gbc.gridy = 1; | |||||
| gbc.anchor = GridBagConstraints.EAST; | |||||
| gbc.fill = GridBagConstraints.VERTICAL; | |||||
| panel3.add(panel4, gbc); | |||||
| final JLabel label13 = new JLabel(); | |||||
| Font label13Font = this.$$$getFont$$$("Bahnschrift", Font.BOLD, 14, label13.getFont()); | |||||
| if (label13Font != null) label13.setFont(label13Font); | |||||
| label13.setForeground(new Color(-15834670)); | |||||
| label13.setHorizontalAlignment(0); | |||||
| label13.setText("Status"); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 0; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| gbc.insets = new Insets(0, 10, 5, 10); | |||||
| panel4.add(label13, gbc); | |||||
| camStepperPwrLed = new JLabel(); | |||||
| camStepperPwrLed.setHorizontalAlignment(0); | |||||
| camStepperPwrLed.setIcon(new ImageIcon(getClass().getResource("/blue_led_off.png"))); | |||||
| camStepperPwrLed.setText(""); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 0; | |||||
| gbc.gridy = 1; | |||||
| gbc.fill = GridBagConstraints.HORIZONTAL; | |||||
| panel4.add(camStepperPwrLed, gbc); | |||||
| camStepperPwrBtn = new SwitchButton(); | |||||
| camStepperPwrBtn.setBackground(new Color(-16738404)); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 1; | |||||
| gbc.gridy = 1; | |||||
| gbc.anchor = GridBagConstraints.SOUTH; | |||||
| gbc.insets = new Insets(0, 0, 10, 0); | |||||
| panel3.add(camStepperPwrBtn, gbc); | |||||
| final JLabel label14 = new JLabel(); | |||||
| label14.setIcon(new ImageIcon(getClass().getResource("/Arduino_Logo_small.png"))); | |||||
| label14.setText(""); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 5; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.EAST; | |||||
| gbc.insets = new Insets(10, 80, 20, 10); | |||||
| mainPanel.add(label14, gbc); | |||||
| logWindowBtn = new JButton(); | |||||
| logWindowBtn.setIcon(new ImageIcon(getClass().getResource("/log24.png"))); | |||||
| logWindowBtn.setMaximumSize(new Dimension(32, 32)); | |||||
| logWindowBtn.setMinimumSize(new Dimension(32, 32)); | |||||
| logWindowBtn.setPreferredSize(new Dimension(32, 32)); | |||||
| logWindowBtn.setText(""); | |||||
| gbc = new GridBagConstraints(); | |||||
| gbc.gridx = 5; | |||||
| gbc.gridy = 0; | |||||
| gbc.anchor = GridBagConstraints.NORTHWEST; | |||||
| gbc.insets = new Insets(10, 10, 10, 10); | |||||
| mainPanel.add(logWindowBtn, gbc); | |||||
| } | |||||
| /** | |||||
| * @noinspection ALL | |||||
| */ | |||||
| private Font $$$getFont$$$(String fontName, int style, int size, Font currentFont) { | |||||
| if (currentFont == null) return null; | |||||
| String resultName; | |||||
| if (fontName == null) { | |||||
| resultName = currentFont.getName(); | |||||
| } else { | |||||
| Font testFont = new Font(fontName, Font.PLAIN, 10); | |||||
| if (testFont.canDisplay('a') && testFont.canDisplay('1')) { | |||||
| resultName = fontName; | |||||
| } else { | |||||
| resultName = currentFont.getName(); | |||||
| } | |||||
| } | |||||
| Font font = new Font(resultName, style >= 0 ? style : currentFont.getStyle(), size >= 0 ? size : currentFont.getSize()); | |||||
| boolean isMac = System.getProperty("os.name", "").toLowerCase(Locale.ENGLISH).startsWith("mac"); | |||||
| Font fontWithFallback = isMac ? new Font(font.getFamily(), font.getStyle(), font.getSize()) : new StyleContext().getFont(font.getFamily(), font.getStyle(), font.getSize()); | |||||
| return fontWithFallback instanceof FontUIResource ? fontWithFallback : new FontUIResource(fontWithFallback); | |||||
| } | |||||
| /** | |||||
| * @noinspection ALL | |||||
| */ | |||||
| public JComponent $$$getRootComponent$$$() { | |||||
| return mainPanel; | |||||
| } | |||||
| } |
| package ch.spherICIT.main; | |||||
| public class Message { | |||||
| public static String CMD_SENDER_PC = "FSRemotePowerSwitch_PC"; | |||||
| public static String CMD_SENDER_AN = "FSRemotePowerSwitch_AN"; | |||||
| public static String CMD_VER = "Version"; | |||||
| public static String CMD_STATUS_RELAY = "Status_Relay"; | |||||
| public static String CMD_POWER_RELAY = "Power_Relay"; | |||||
| public static String CMD_STATUS_CAM = "Status_Cam"; | |||||
| public static String CMD_POWER_CAM = "Power_Cam"; | |||||
| public static String CMD_AZIMUT_CAM = "Azimut_Cam"; | |||||
| public static String CMD_ACT_AZIMUT_CAM = "Actual_Azimut_Cam"; | |||||
| public static String CMD_VELOCITY_CAM = "Velocity_Cam"; | |||||
| public static String CMD_ZERO_CAM = "Zero_Cam"; | |||||
| public static String CMD_VAL_ON = "On"; | |||||
| public static String CMD_VAL_OFF = "Off"; | |||||
| public static String CMD_VELOCITY_SLOW = "Slow"; | |||||
| public static String CMD_VELOCITY_FAST = "Fast"; | |||||
| private String sender; | |||||
| private String cmd; | |||||
| private String val; | |||||
| public Message() { | |||||
| this("", "", ""); | |||||
| } | |||||
| public Message(String sender, String cmd, String val) { | |||||
| this.sender = sender; | |||||
| this.cmd = cmd; | |||||
| this.val = val; | |||||
| } | |||||
| public String getSender() { | |||||
| return sender; | |||||
| } | |||||
| public void setSender(String sender) { | |||||
| this.sender = sender; | |||||
| } | |||||
| public String getCmd() { | |||||
| return cmd; | |||||
| } | |||||
| public void setCmd(String cmd) { | |||||
| this.cmd = cmd; | |||||
| } | |||||
| public String getVal() { | |||||
| return val; | |||||
| } | |||||
| public void setVal(String val) { | |||||
| this.val = val; | |||||
| } | |||||
| } |
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
| <svg | |||||
| height="32" | |||||
| viewBox="0 -960 1280 1280" | |||||
| width="32" | |||||
| version="1.1" | |||||
| id="svg4" | |||||
| sodipodi:docname="Application_Logo.svg" | |||||
| inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" | |||||
| inkscape:export-filename="Application_Logo.png" | |||||
| inkscape:export-xdpi="96" | |||||
| inkscape:export-ydpi="96" | |||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
| xmlns="http://www.w3.org/2000/svg" | |||||
| xmlns:svg="http://www.w3.org/2000/svg"> | |||||
| <defs | |||||
| id="defs8" /> | |||||
| <sodipodi:namedview | |||||
| id="namedview6" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:showpageshadow="2" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pagecheckerboard="0" | |||||
| inkscape:deskcolor="#d1d1d1" | |||||
| showgrid="false" | |||||
| inkscape:zoom="9.8333333" | |||||
| inkscape:cx="3.9661017" | |||||
| inkscape:cy="28.169492" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1009" | |||||
| inkscape:window-x="-8" | |||||
| inkscape:window-y="-8" | |||||
| inkscape:window-maximized="1" | |||||
| inkscape:current-layer="svg4" /> | |||||
| <path | |||||
| d="m 301.33283,-712 -74.66643,-74.66667 q 78.66642,-82.66666 184.66607,-128 Q 517.33213,-960 639.99843,-960 q 122.66622,0 228.66586,45.33333 105.9996,45.33334 184.66611,128 L 978.66398,-712 q -63.99981,-66.66667 -151.33283,-104 -87.33305,-37.33334 -187.33272,-37.33334 -99.99971,0 -187.33276,37.33334 -87.33304,37.33333 -151.33284,104 z m 149.33285,149.33333 -74.66643,-74.66667 Q 426.66576,-688 493.99887,-717.33333 q 67.33312,-29.33334 145.99956,-29.33334 78.66638,0 145.99946,29.33334 67.33314,29.33333 117.99973,79.99999 l -74.66652,74.66667 q -35.9998,-36 -84.66635,-56.66667 -48.66655,-20.66667 -104.66632,-20.66667 -55.99984,0 -104.66636,20.66667 -48.66651,20.66667 -84.66639,56.66667 z m 189.33275,882.66666 q -75.99978,0 -131.33293,-55.33334 -55.33317,-55.33333 -55.33317,-131.33333 v -429.33333 q 0,-76 55.33317,-131.33333 55.33315,-55.33334 131.33293,-55.33334 75.99974,0 131.33282,55.33334 55.33327,55.33333 55.33327,131.33333 v 429.33333 q 0,76 -55.33327,131.33333 -55.33308,55.33334 -131.33282,55.33334 z m 0,-506.66667 q 43.99984,0 75.33305,-31.33333 31.33322,-31.33333 31.33322,-75.33333 0,-44 -31.33322,-75.33334 -31.33321,-31.33333 -75.33305,-31.33333 -43.99989,0 -75.33311,31.33333 -31.33324,31.33334 -31.33324,75.33334 0,44 31.33324,75.33333 31.33322,31.33333 75.33311,31.33333 z" | |||||
| id="path2" | |||||
| style="fill:#00979c;fill-opacity:1;stroke-width:1.33334" /> | |||||
| </svg> |
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
| <svg | |||||
| width="50.000019" | |||||
| height="49.999962" | |||||
| version="1.1" | |||||
| id="svg33" | |||||
| sodipodi:docname="blue_led_on.svg" | |||||
| inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" | |||||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
| xmlns:xlink="http://www.w3.org/1999/xlink" | |||||
| xmlns="http://www.w3.org/2000/svg" | |||||
| xmlns:svg="http://www.w3.org/2000/svg"> | |||||
| <sodipodi:namedview | |||||
| id="namedview35" | |||||
| pagecolor="#ffffff" | |||||
| bordercolor="#666666" | |||||
| borderopacity="1.0" | |||||
| inkscape:showpageshadow="2" | |||||
| inkscape:pageopacity="0.0" | |||||
| inkscape:pagecheckerboard="0" | |||||
| inkscape:deskcolor="#d1d1d1" | |||||
| showgrid="false" | |||||
| inkscape:zoom="2.32" | |||||
| inkscape:cx="150.21552" | |||||
| inkscape:cy="43.534483" | |||||
| inkscape:window-width="1920" | |||||
| inkscape:window-height="1009" | |||||
| inkscape:window-x="-8" | |||||
| inkscape:window-y="-8" | |||||
| inkscape:window-maximized="1" | |||||
| inkscape:current-layer="svg33" /> | |||||
| <title | |||||
| id="title2">blue LED on</title> | |||||
| <defs | |||||
| id="defs21"> | |||||
| <linearGradient | |||||
| y2="12.376289" | |||||
| y1="22.301244" | |||||
| xlink:href="#linearGradient6506" | |||||
| x2="16.491376" | |||||
| x1="16.598271" | |||||
| id="linearGradient6650" | |||||
| gradientTransform="matrix(1.0871068,0,0,0.91987283,-1.1e-4,0.26091)" | |||||
| gradientUnits="userSpaceOnUse" /> | |||||
| <linearGradient | |||||
| y2="38.709305" | |||||
| y1="6.8783388" | |||||
| xlink:href="#linearGradient5756" | |||||
| x2="29.401097" | |||||
| x1="26.323115" | |||||
| id="linearGradient6646" | |||||
| gradientTransform="matrix(1.0000045,0,0,1.0000045,-1.1e-4,0.26091)" | |||||
| gradientUnits="userSpaceOnUse" /> | |||||
| <linearGradient | |||||
| y2="49.739081" | |||||
| y1="0.70058971" | |||||
| xlink:href="#linearGradient5742" | |||||
| x2="25.024606" | |||||
| x1="24.809105" | |||||
| id="linearGradient6644" | |||||
| gradientUnits="userSpaceOnUse" | |||||
| gradientTransform="translate(-1.1e-4,0.26091)" /> | |||||
| <linearGradient | |||||
| id="linearGradient6506"> | |||||
| <stop | |||||
| stop-color="#ffffff" | |||||
| stop-opacity="0" | |||||
| offset="0" | |||||
| id="stop6508" /> | |||||
| <stop | |||||
| stop-color="#ffffff" | |||||
| stop-opacity="0.87451" | |||||
| offset="1" | |||||
| id="stop6510" /> | |||||
| </linearGradient> | |||||
| <linearGradient | |||||
| id="linearGradient5756"> | |||||
| <stop | |||||
| stop-color="#828282" | |||||
| offset="0" | |||||
| id="stop5758" /> | |||||
| <stop | |||||
| stop-color="#929292" | |||||
| stop-opacity="0.35294" | |||||
| offset="1" | |||||
| id="stop5760" /> | |||||
| </linearGradient> | |||||
| <linearGradient | |||||
| id="linearGradient5742"> | |||||
| <stop | |||||
| stop-color="#adadad" | |||||
| offset="0" | |||||
| id="stop5744" /> | |||||
| <stop | |||||
| stop-color="#f0f0f0" | |||||
| offset="1" | |||||
| id="stop5746" /> | |||||
| </linearGradient> | |||||
| <linearGradient | |||||
| y2="26.681922" | |||||
| x2="29.802152" | |||||
| y1="42.801127" | |||||
| x1="43.061791" | |||||
| id="svg_1" | |||||
| gradientTransform="matrix(1.0000042,0,0,1.0000042,-1.1e-4,0.26091)" | |||||
| gradientUnits="userSpaceOnUse"> | |||||
| <stop | |||||
| offset="0" | |||||
| stop-opacity="0.98438" | |||||
| stop-color="#1608A0" | |||||
| id="stop16" /> | |||||
| <stop | |||||
| offset="0.98449999" | |||||
| stop-opacity="0.98047" | |||||
| stop-color="#1A03FF" | |||||
| id="stop18" | |||||
| style="stop-color:#048bff;stop-opacity:0.98046994;" /> | |||||
| </linearGradient> | |||||
| </defs> | |||||
| <path | |||||
| fill="url(#linearGradient6644)" | |||||
| stroke-width="0.8" | |||||
| stroke-linecap="round" | |||||
| stroke-linejoin="round" | |||||
| stroke-miterlimit="4" | |||||
| id="path6596" | |||||
| d="m 50.00002,24.999981 c 0,13.80003 -11.200008,24.999981 -25.00004,24.999981 C 11.200021,49.999962 0,38.800011 0,24.999981 0,11.19996 11.20001,0 24.99998,0 38.800012,0 50.00002,11.19995 50.00002,24.999981 Z" | |||||
| style="fill:url(#linearGradient6644)" /> | |||||
| <path | |||||
| fill="url(#linearGradient6646)" | |||||
| stroke-width="0.8" | |||||
| stroke-linecap="round" | |||||
| stroke-linejoin="round" | |||||
| stroke-miterlimit="4" | |||||
| id="path6598" | |||||
| d="m 45.172822,24.994381 c 0,11.13689 -9.038754,20.175579 -20.175642,20.175579 -11.136889,0 -20.17564,-9.038689 -20.17564,-20.175579 0,-11.136891 9.03875,-20.175341 20.17564,-20.175341 11.136889,0 20.175642,9.03845 20.175642,20.175341 z" | |||||
| style="fill:url(#linearGradient6646)" /> | |||||
| <path | |||||
| fill="url(#svg_1)" | |||||
| stroke-width="0.8" | |||||
| stroke-linecap="round" | |||||
| stroke-linejoin="round" | |||||
| stroke-miterlimit="4" | |||||
| id="path6600" | |||||
| d="m 43.06186,24.99963 c 0,9.97031 -8.091568,18.062229 -18.06188,18.062229 -9.970309,0 -18.06217,-8.09193 -18.06217,-18.062229 0,-9.96995 8.09187,-18.06152 18.06217,-18.06152 9.970312,0 18.06188,8.09157 18.06188,18.06152 z" | |||||
| style="fill:url(#svg_1)" /> | |||||
| <path | |||||
| fill="url(#linearGradient6650)" | |||||
| stroke-width="0.8" | |||||
| stroke-linecap="round" | |||||
| stroke-linejoin="round" | |||||
| stroke-miterlimit="4" | |||||
| id="path6602" | |||||
| d="m 22.228989,11.40021 c 1.161501,1.7006 -0.1481,4.6185 -2.923199,6.513999 -2.774801,1.895201 -5.969501,2.053701 -7.131001,0.353201 -1.161201,-1.7001 0.148499,-4.618401 2.9234,-6.5136 2.7751,-1.89548 5.969701,-2.05364 7.130799,-0.3536 v 0 z" | |||||
| style="fill:url(#linearGradient6650)" /> | |||||
| </svg> |