From 3e75fa165eecef35323d7bb8d022ca3070deb74f Mon Sep 17 00:00:00 2001 From: knaccc Date: Mon, 28 Jan 2019 22:37:59 +0000 Subject: [PATCH] Added state column to tunnels table --- .../src/org/getmonero/i2p/zero/gui/Controller.java | 4 +++- .../src/org/getmonero/i2p/zero/gui/Gui.java | 1 - .../src/org/getmonero/i2p/zero/gui/gui.fxml | 1 + .../src/org/getmonero/i2p/zero/TunnelControl.java | 7 +++++++ 4 files changed, 11 insertions(+), 2 deletions(-) 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 3b4b19f..df7ddb3 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 @@ -41,6 +41,7 @@ public class Controller { @FXML private Button tunnelRemoveButton; @FXML private TableView tunnelsTableView; @FXML private TableColumn typeCol; + @FXML private TableColumn stateCol; @FXML private TableColumn hostCol; @FXML private TableColumn portCol; @FXML private TableColumn i2PCol; @@ -64,11 +65,12 @@ public class Controller { @FXML private void initialize() { typeCol.setCellValueFactory(new PropertyValueFactory("type")); + stateCol.setCellValueFactory(new PropertyValueFactory("state")); hostCol.setCellValueFactory(new PropertyValueFactory("host")); portCol.setCellValueFactory(new PropertyValueFactory("port")); i2PCol.setCellValueFactory(new PropertyValueFactory("I2P")); - DoubleBinding usedWidth = typeCol.widthProperty().add(hostCol.widthProperty()).add(portCol.widthProperty()); + DoubleBinding usedWidth = typeCol.widthProperty().add(stateCol.widthProperty()).add(hostCol.widthProperty()).add(portCol.widthProperty()); i2PCol.prefWidthProperty().bind(tunnelsTableView.widthProperty().subtract(usedWidth).subtract(2)); tunnelsTableView.setItems(tunnelTableList); diff --git a/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/Gui.java b/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/Gui.java index bd8035c..389d4b0 100644 --- a/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/Gui.java +++ b/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/Gui.java @@ -2,7 +2,6 @@ package org.getmonero.i2p.zero.gui; import java.awt.Taskbar; import java.awt.image.BufferedImage; -import java.util.List; import javafx.application.Application; import javafx.fxml.FXMLLoader; diff --git a/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/gui.fxml b/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/gui.fxml index 1d9264b..554ad37 100644 --- a/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/gui.fxml +++ b/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/gui.fxml @@ -83,6 +83,7 @@ + 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 4288779..be97ecd 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 @@ -43,6 +43,7 @@ public class TunnelControl implements Runnable { public String getHost(); public String getPort(); public String getI2P(); + public String getState(); public void destroy(); } @@ -59,6 +60,7 @@ public class TunnelControl implements Runnable { } public void destroy() { new Thread(()->{ + while(tunnel==null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } // wait for tunnel to be established before closing it tunnel.runClose(new String[]{"forced", "all"}, tunnel); }).start(); } @@ -67,6 +69,7 @@ public class TunnelControl implements Runnable { @Override public String getHost() { return "localhost"; } @Override public String getPort() { return port+""; } @Override public String getI2P() { return dest; } + @Override public String getState() { return tunnel==null ? "opening..." : "open"; } } public static class ServerTunnel implements Tunnel { public String dest; @@ -92,6 +95,7 @@ public class TunnelControl implements Runnable { } public void destroy() { new Thread(()->{ + while(tunnel==null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } // wait for tunnel to be established before closing it tunnel.runClose(new String[]{"forced", "all"}, tunnel); }).start(); } @@ -99,6 +103,7 @@ public class TunnelControl implements Runnable { @Override public String getHost() { return host; } @Override public String getPort() { return port+""; } @Override public String getI2P() { return dest; } + @Override public String getState() { return tunnel==null ? "opening..." : "open"; } } public static class SocksTunnel implements Tunnel { @@ -112,6 +117,7 @@ public class TunnelControl implements Runnable { } public void destroy() { new Thread(()->{ + while(tunnel==null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } // wait for tunnel to be established before closing it tunnel.runClose(new String[]{"forced", "all"}, tunnel); }).start(); } @@ -119,6 +125,7 @@ public class TunnelControl implements Runnable { @Override public String getHost() { return "localhost"; } @Override public String getPort() { return port+""; } @Override public String getI2P() { return "n/a"; } + @Override public String getState() { return tunnel==null ? "opening..." : "open"; } } public List getTunnels() {