From 2c7cc2f9f9ddb73a40b317a6a51fe3f757c60db9 Mon Sep 17 00:00:00 2001 From: knaccc Date: Thu, 31 Jan 2019 11:39:00 +0000 Subject: [PATCH] removed propertychangelistener so that no java.desktop module dependency required in non-gui version --- .../org.getmonero.i2p.zero.gui.iml | 16 ++++++++-------- .../org/getmonero/i2p/zero/gui/Controller.java | 4 ++-- org.getmonero.i2p.zero/src/module-info.java | 1 - .../org/getmonero/i2p/zero/ChangeListener.java | 5 +++++ .../org/getmonero/i2p/zero/TunnelControl.java | 11 ++++------- 5 files changed, 19 insertions(+), 18 deletions(-) create mode 100644 org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/ChangeListener.java diff --git a/org.getmonero.i2p.zero.gui/org.getmonero.i2p.zero.gui.iml b/org.getmonero.i2p.zero.gui/org.getmonero.i2p.zero.gui.iml index b1306c9..a42f527 100644 --- a/org.getmonero.i2p.zero.gui/org.getmonero.i2p.zero.gui.iml +++ b/org.getmonero.i2p.zero.gui/org.getmonero.i2p.zero.gui.iml @@ -11,7 +11,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -74,7 +74,7 @@ - + diff --git a/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/Controller.java b/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/Controller.java index 9472d00..e428e5e 100644 --- a/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/Controller.java +++ b/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/Controller.java @@ -153,9 +153,9 @@ public class Controller { try { Thread.sleep(100); } catch (InterruptedException e) {} } var tunnelList = getRouterWrapper().getTunnelControl().getTunnelList(); - tunnelList.addPropertyChangeListener(event->{ + tunnelList.addChangeListener(tunnels->{ tunnelTableList.clear(); - tunnelTableList.addAll((List) event.getNewValue()); + tunnelTableList.addAll(tunnels); }); }).start(); diff --git a/org.getmonero.i2p.zero/src/module-info.java b/org.getmonero.i2p.zero/src/module-info.java index 9f0905a..04f69f2 100644 --- a/org.getmonero.i2p.zero/src/module-info.java +++ b/org.getmonero.i2p.zero/src/module-info.java @@ -6,6 +6,5 @@ module org.getmonero.i2p.zero { requires sam; requires i2ptunnel; requires jdk.crypto.ec; - requires java.desktop; exports org.getmonero.i2p.zero; } \ No newline at end of file diff --git a/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/ChangeListener.java b/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/ChangeListener.java new file mode 100644 index 0000000..06a5f27 --- /dev/null +++ b/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/ChangeListener.java @@ -0,0 +1,5 @@ +package org.getmonero.i2p.zero; + +public interface ChangeListener { + public void onChange(T newValue); +} diff --git a/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/TunnelControl.java b/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/TunnelControl.java index 2246764..122d80e 100644 --- a/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/TunnelControl.java +++ b/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/TunnelControl.java @@ -14,9 +14,6 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; import java.io.*; import java.math.BigInteger; import java.net.InetAddress; @@ -42,18 +39,18 @@ public class TunnelControl implements Runnable { private File tunnelControlConfigDir; private File tunnelControlTempDir; private List tunnels = new ArrayList<>(); - private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + private List>> changeListeners = new ArrayList<>(); public TunnelList(File tunnelControlConfigDir, File tunnelControlTempDir) { this.tunnelControlConfigDir = tunnelControlConfigDir; this.tunnelControlTempDir = tunnelControlTempDir; } - public void addPropertyChangeListener(PropertyChangeListener listener) { - pcs.addPropertyChangeListener(listener); + public void addChangeListener(ChangeListener> listener) { + changeListeners.add(listener); } private void fireChangeEvent() { - pcs.firePropertyChange(new PropertyChangeEvent(this, "list", null, tunnels)); + for(var listener : changeListeners) listener.onChange(tunnels); } public void addTunnel(Tunnel t) {