removed propertychangelistener so that no java.desktop module dependency required in non-gui version

This commit is contained in:
knaccc
2019-01-31 11:39:00 +00:00
parent 368d0f8a15
commit 2c7cc2f9f9
5 changed files with 19 additions and 18 deletions
@@ -11,7 +11,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../import/javafx-sdk-11.0.2/lib/javafx-swt.jar!/" />
<root url="jar://$MODULE_DIR$/../import/javafx-sdks/linux/javafx-sdk-11.0.2/lib/javafx-swt.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -20,7 +20,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../import/javafx-sdk-11.0.2/lib/javafx.base.jar!/" />
<root url="jar://$MODULE_DIR$/../import/javafx-sdks/linux/javafx-sdk-11.0.2/lib/javafx.base.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -29,7 +29,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../import/javafx-sdk-11.0.2/lib/javafx.controls.jar!/" />
<root url="jar://$MODULE_DIR$/../import/javafx-sdks/linux/javafx-sdk-11.0.2/lib/javafx.controls.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -38,7 +38,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../import/javafx-sdk-11.0.2/lib/javafx.fxml.jar!/" />
<root url="jar://$MODULE_DIR$/../import/javafx-sdks/linux/javafx-sdk-11.0.2/lib/javafx.fxml.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -47,7 +47,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../import/javafx-sdk-11.0.2/lib/javafx.graphics.jar!/" />
<root url="jar://$MODULE_DIR$/../import/javafx-sdks/linux/javafx-sdk-11.0.2/lib/javafx.graphics.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -56,7 +56,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../import/javafx-sdk-11.0.2/lib/javafx.media.jar!/" />
<root url="jar://$MODULE_DIR$/../import/javafx-sdks/linux/javafx-sdk-11.0.2/lib/javafx.media.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -65,7 +65,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../import/javafx-sdk-11.0.2/lib/javafx.swing.jar!/" />
<root url="jar://$MODULE_DIR$/../import/javafx-sdks/linux/javafx-sdk-11.0.2/lib/javafx.swing.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -74,7 +74,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../import/javafx-sdk-11.0.2/lib/javafx.web.jar!/" />
<root url="jar://$MODULE_DIR$/../import/javafx-sdks/linux/javafx-sdk-11.0.2/lib/javafx.web.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -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<Tunnel>) event.getNewValue());
tunnelTableList.addAll(tunnels);
});
}).start();
@@ -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;
}
@@ -0,0 +1,5 @@
package org.getmonero.i2p.zero;
public interface ChangeListener<T> {
public void onChange(T newValue);
}
@@ -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<Tunnel> tunnels = new ArrayList<>();
private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
private List<ChangeListener<List<Tunnel>>> 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<List<Tunnel>> 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) {