Skip to content

Commit e6269cf

Browse files
committed
Test of Node.
1 parent ce983a0 commit e6269cf

36 files changed

+2448
-387
lines changed

plc4j/tools/app/app-libs/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
<configuration>
3636
<publicPackages>
3737
<package>org.apache.plc4x.java.api.*</package>
38+
<package>org.openide.util.lookup.*</package>
3839
</publicPackages>
3940
</configuration>
4041
</plugin>
@@ -270,5 +271,10 @@
270271
<artifactId>org-openide-nodes</artifactId>
271272
<version>RELEASE160</version>
272273
</dependency>
274+
<dependency>
275+
<groupId>org.netbeans.api</groupId>
276+
<artifactId>org-openide-util-lookup</artifactId>
277+
<version>RELEASE160</version>
278+
</dependency>
273279
</dependencies>
274280
</project>

plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/DeviceDBRecord.java renamed to plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/DeviceRecord.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@
1818
*/
1919
package org.apache.plc4x.app.api;
2020

21+
import java.beans.PropertyChangeListener;
2122
import java.time.Instant;
2223
import java.time.Instant;
2324
import java.util.Collection;
2425
import java.util.Map;
26+
import java.util.Optional;
2527
import java.util.UUID;
28+
import org.openide.util.Lookup;
2629

2730

28-
public interface DeviceDBRecord {
31+
public interface DeviceRecord extends Lookup.Provider {
2932

3033
public void setDeviceName(String name);
3134
String getDeviceName();
@@ -49,8 +52,17 @@ public interface DeviceDBRecord {
4952
public String getPropertie(String id);
5053
public Map<String, String> getProperties();
5154

52-
public Collection<TagGroupDBRecord> getTagGroups();
55+
public void addTagGroup(TagGroupRecord tagg);
56+
public Collection<TagGroupRecord> getTagGroups();
57+
public Optional<TagGroupRecord> getTagGroup(TagGroupRecord tagg);
58+
public Optional<TagGroupRecord> getTagGroup(UUID uuid);
59+
public Optional<TagGroupRecord> getTagGroup(String name);
60+
public void removeTagGroup(TagGroupRecord device);
5361

62+
63+
public void addPropertyChangeListener(PropertyChangeListener listener);
64+
public void removePropertyChangeListener(PropertyChangeListener listener);
65+
5466
public int getTransmits();
5567
public int getReceives();
5668
public int getErrors();

plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/DriverDBRecord.java renamed to plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/DriverRecord.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,19 @@
1818
*/
1919
package org.apache.plc4x.app.api;
2020

21+
import java.beans.PropertyChangeListener;
2122
import java.time.Instant;
2223
import java.time.Instant;
2324
import java.util.Collection;
2425
import java.util.HashMap;
2526
import java.util.List;
27+
import java.util.Optional;
2628
import java.util.UUID;
2729
import org.apache.plc4x.java.api.PlcDriver;
30+
import org.openide.util.Lookup;
2831

2932

30-
public interface DriverDBRecord {
33+
public interface DriverRecord extends Lookup.Provider {
3134

3235
// Configuration section
3336

@@ -43,10 +46,20 @@ public interface DriverDBRecord {
4346
public PlcDriver getPlcDriver();
4447

4548
public void setEnable(Boolean enable);
46-
public Boolean getEnable();
49+
public Boolean getEnable();
4750

48-
public HashMap<UUID, DeviceDBRecord> getMapDevices();
49-
public Collection<DeviceDBRecord> getDevices();
51+
public void addDevice(DeviceRecord device);
52+
public Collection<DeviceRecord> getDevices();
53+
public Optional<DeviceRecord> getDevice(DeviceRecord uuid);
54+
public Optional<DeviceRecord> getDevice(UUID uuid);
55+
public Optional<DeviceRecord> getDevice(String name);
56+
public void removeDevice(DeviceRecord device);
57+
58+
public void addPropertyChangeListener(PropertyChangeListener listener);
59+
public void removePropertyChangeListener(PropertyChangeListener listener);
60+
61+
public HashMap<UUID, DeviceRecord> getMapDevices();
62+
5063

5164
public int getTransmits();
5265
public int getReceives();

plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/MasterDB.java

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,42 @@
1818
*/
1919
package org.apache.plc4x.app.api;
2020

21+
import java.beans.PropertyChangeListener;
2122
import java.util.List;
22-
import org.apache.plc4x.java.api.PlcDriver;
23+
import java.util.Optional;
24+
import java.util.UUID;
2325

2426

2527
public interface MasterDB {
28+
29+
public void addDriver(DriverRecord driver);
30+
public Optional<DriverRecord> getDriver(UUID uuid);
31+
public void removeDriver(UUID uuid);
2632

27-
public List<String> getDriverCodes();
28-
public List<String> getDriverNames();
33+
public void addDevice(UUID driver, DeviceRecord device);
34+
public Optional<DeviceRecord> getDevice(UUID uuid);
35+
public void removeDevice(DeviceRecord device);
36+
37+
public void addTagGroup(UUID device, TagGroupRecord taggroup);
38+
public Optional<TagGroupRecord> getTagGroup(UUID uuid);
39+
public void removeTagGroup(TagGroupRecord taggroup);
40+
41+
public void addTag(UUID taggroup, TagRecord tag);
42+
public Optional<TagRecord> getTag(UUID uuid);
43+
public void removeTag(UUID uuid);
2944

30-
public DriverDBRecord getDriverByCode(String code);
31-
public DriverDBRecord getDriverByName(String name);
45+
public DriverRecord getDriverByCode(String code);
46+
public DriverRecord getDriverByName(String name);
3247

48+
public DeviceRecord createDeviceDBRecord();
49+
public TagGroupRecord createTagGroupDBRecord();
50+
public TagRecord createTagDBRecord();
51+
52+
public void addPropertyChangeListener(PropertyChangeListener listener);
53+
public void removePropertyChangeListener(PropertyChangeListener listener);
54+
55+
public List<String> getDriverCodes();
56+
public List<String> getDriverNames();
3357

3458
public int getNumberOfDrivers();
3559
public int getNumberOfDevice();
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@
1919
package org.apache.plc4x.app.api;
2020

2121

22-
public enum Plc4xDialogParametersEnum {
22+
public enum Plc4xPropertyEnum {
23+
24+
//Commons fields in dialogs
25+
NAME,
26+
DESCRIPTION,
27+
SCANTIME,
28+
ENABLE,
29+
DISABLE_OUTPUT,
2330

2431
//Serial connection parameters
2532
SERIAL_PORT,

plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/TagGroupDBRecord.java renamed to plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/TagGroupRecord.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,15 @@
1818
*/
1919
package org.apache.plc4x.app.api;
2020

21+
import java.beans.PropertyChangeListener;
2122
import java.time.Instant;
2223
import java.util.Collection;
24+
import java.util.Optional;
2325
import java.util.UUID;
26+
import org.openide.util.Lookup;
2427

2528

26-
public interface TagGroupDBRecord {
29+
public interface TagGroupRecord extends Lookup.Provider {
2730

2831

2932
public void setTagGroupName(String name);
@@ -41,8 +44,16 @@ public interface TagGroupDBRecord {
4144
public void setEnable(Boolean enable);
4245
public Boolean getEnable();
4346

44-
public Collection<TagDBRecord> getTags();
47+
public void addTag(TagRecord tag);
48+
public Collection<TagRecord> getTags();
49+
public Optional<TagRecord> getTag(TagRecord tag);
50+
public Optional<TagRecord> getTag(UUID uuid);
51+
public Optional<TagRecord> getTag(String name);
52+
public void removeTag(TagRecord tag);
4553

54+
public void addPropertyChangeListener(PropertyChangeListener listener);
55+
public void removePropertyChangeListener(PropertyChangeListener listener);
56+
4657
public int getJitter();
4758

4859
public int getTransmits();

plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/TagDBRecord.java renamed to plc4j/tools/app/app-libs/src/main/java/org/apache/plc4x/app/api/TagRecord.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@
1818
*/
1919
package org.apache.plc4x.app.api;
2020

21+
import java.beans.PropertyChangeListener;
2122
import java.time.Instant;
2223
import java.util.UUID;
2324

2425

25-
public interface TagDBRecord {
26+
public interface TagRecord {
2627

2728
public void setTagName(String name);
2829
String getTagName();
@@ -42,6 +43,9 @@ public interface TagDBRecord {
4243
public void setDisableOutput(Boolean disableOutput);
4344
public Boolean getDisableOutput();
4445

46+
public void addPropertyChangeListener(PropertyChangeListener listener);
47+
public void removePropertyChangeListener(PropertyChangeListener listener);
48+
4549
public int getTransmits();
4650
public int getReceives();
4751
public int getErrors();

plc4j/tools/app/app-modbus/src/main/java/org/apache/plc4x/app/modbus/core/Plc4xModbusAsciiDialog.java

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,30 @@
2121
import java.io.IOException;
2222
import java.util.UUID;
2323
import javax.swing.JDialog;
24-
import org.apache.plc4x.app.api.DeviceDBRecord;
25-
import org.apache.plc4x.app.api.DriverDBRecord;
24+
import org.apache.plc4x.app.api.MasterDB;
2625
import org.apache.plc4x.app.api.Plc4xDialog;
27-
import org.apache.plc4x.app.api.Plc4xDialogParametersEnum;
26+
import org.apache.plc4x.app.api.Plc4xPropertyEnum;
2827
import org.openide.cookies.InstanceCookie;
29-
import org.openide.nodes.AbstractNode;
3028
import org.openide.nodes.BeanNode;
3129
import org.openide.nodes.Node;
3230
import org.openide.util.Exceptions;
31+
import org.openide.util.Lookup;
3332
import org.openide.util.lookup.ServiceProvider;
33+
import org.apache.plc4x.app.api.DeviceRecord;
34+
import org.apache.plc4x.app.api.DriverRecord;
3435

35-
@ServiceProvider(service=JDialog.class, path="Plc4xDriver/modbus-ascii")
36+
@ServiceProvider(service=Plc4xDialog.class, path="Plc4xDriver/modbus-ascii")
3637
public class Plc4xModbusAsciiDialog extends JDialog implements Plc4xDialog {
3738

39+
private final String DRIVER_CODE = "modbus-ascii";
40+
private final MasterDB db = Lookup.getDefault().lookup(MasterDB.class);
41+
3842
public BeanNode node;
39-
private DriverDBRecord driverrecord = null;
40-
private DeviceDBRecord devicerecord = null;
43+
private DriverRecord driverrecord = null;
44+
private DeviceRecord devicerecord = null;
4145
private UUID uuid;
4246

43-
private Plc4xDialogParametersEnum parameters;
47+
private Plc4xPropertyEnum parameters;
4448

4549
public Plc4xModbusAsciiDialog() {
4650
super(new javax.swing.JFrame(), true);
@@ -362,23 +366,28 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
362366
}// </editor-fold>//GEN-END:initComponents
363367

364368
private void brOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_brOkActionPerformed
365-
// TODO add your handling code here:
366-
/*
367-
final InstanceCookie cookie = node.getLookup().lookup(InstanceCookie.class);
368-
final DeviceDBRecord dbr = (DeviceDBRecord) cookie.instanceCreate();
369-
node.setValue(parameters.SERIAL_PORT.name(), (String) cbSerialPort.getSelectedItem());
370-
node.setValue(parameters.BAUD_RATE.name(), (String) cbBaudRate.getSelectedItem());
371-
node.setValue(parameters.DATA_BITS.name(), (String) cbBaudRate.getSelectedItem());
372-
node.setValue(parameters.PARITY.name(), (String) cbParity.getSelectedItem());
373-
node.setValue(parameters.STOP_BITS.name(), (String) cbStopBits.getSelectedItem());
374-
node.setValue(parameters.TIMEOUT.name(), (String) cbTimeOut.getSelectedItem());
375-
*/
376-
if ((driverrecord != null) && (devicerecord != null)) {
377-
378-
devicerecord.setDeviceName(tfDeviceName.getText());
379-
devicerecord.setUUID(UUID.fromString(tfUUID.getText()));
380-
driverrecord.getMapDevices().put(devicerecord.getUUID(), devicerecord);
381-
}
369+
370+
driverrecord = db.getDriverByCode(DRIVER_CODE);
371+
devicerecord = db.createDeviceDBRecord();
372+
373+
final DeviceRecord dbdevice = driverrecord.getDevice(tfDeviceName.getText().trim());
374+
375+
if ((driverrecord != null) && (devicerecord != null) && (dbdevice == null)) {
376+
377+
devicerecord.setDeviceName(tfDeviceName.getText().trim());
378+
devicerecord.setDeviceName(tfDeviceName.getText().trim());
379+
devicerecord.setUUID(UUID.fromString(tfUUID.getText()));
380+
381+
devicerecord.getProperties().put(parameters.SERIAL_PORT.name(), (String) cbSerialPort.getSelectedItem());
382+
devicerecord.getProperties().put(parameters.BAUD_RATE.name(), (String) cbBaudRate.getSelectedItem());
383+
devicerecord.getProperties().put(parameters.DATA_BITS.name(), (String) cbBaudRate.getSelectedItem());
384+
devicerecord.getProperties().put(parameters.PARITY.name(), (String) cbParity.getSelectedItem());
385+
devicerecord.getProperties().put(parameters.STOP_BITS.name(), (String) cbStopBits.getSelectedItem());
386+
devicerecord.getProperties().put(parameters.TIMEOUT.name(), (String) tfTimeOut.getText());
387+
388+
driverrecord.addDevice(devicerecord);
389+
390+
}
382391

383392
this.setVisible(false);
384393
}//GEN-LAST:event_brOkActionPerformed
@@ -487,7 +496,7 @@ public void setNode(Node node) {
487496
final InstanceCookie cookie = node.getLookup().lookup(InstanceCookie.class);
488497
driverrecord = null;
489498
try {
490-
driverrecord = (DriverDBRecord) cookie.instanceCreate();
499+
driverrecord = (DriverRecord) cookie.instanceCreate();
491500
initfields();
492501
} catch (IOException | ClassNotFoundException ex) {
493502
Exceptions.printStackTrace(ex);
@@ -496,7 +505,9 @@ public void setNode(Node node) {
496505

497506
private void initfields() {
498507
if (driverrecord != null) {
499-
devicerecord = (DeviceDBRecord) node.getValue("DEVICE");
508+
509+
devicerecord = (DeviceRecord) node.getValue("DEVICE");
510+
500511
tfDeviceProtocol.setText(driverrecord.getProtocolCode());
501512

502513
tfDeviceName.setText("");
@@ -509,7 +520,7 @@ private void initfields() {
509520
//Default no S88 node selected
510521
tfS88UUID.setText("");
511522

512-
523+
//Default to 3 seconds delay
513524
tfTimeOut.setText("3");
514525

515526
}

0 commit comments

Comments
 (0)