Added state column to tunnels table

pull/4/head
knaccc 5 years ago
parent 0670469330
commit 3e75fa165e

@ -41,6 +41,7 @@ public class Controller {
@FXML private Button tunnelRemoveButton; @FXML private Button tunnelRemoveButton;
@FXML private TableView<Tunnel> tunnelsTableView; @FXML private TableView<Tunnel> tunnelsTableView;
@FXML private TableColumn typeCol; @FXML private TableColumn typeCol;
@FXML private TableColumn stateCol;
@FXML private TableColumn hostCol; @FXML private TableColumn hostCol;
@FXML private TableColumn portCol; @FXML private TableColumn portCol;
@FXML private TableColumn i2PCol; @FXML private TableColumn i2PCol;
@ -64,11 +65,12 @@ public class Controller {
@FXML private void initialize() { @FXML private void initialize() {
typeCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("type")); typeCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("type"));
stateCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("state"));
hostCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("host")); hostCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("host"));
portCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("port")); portCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("port"));
i2PCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("I2P")); i2PCol.setCellValueFactory(new PropertyValueFactory<Tunnel,String>("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)); i2PCol.prefWidthProperty().bind(tunnelsTableView.widthProperty().subtract(usedWidth).subtract(2));
tunnelsTableView.setItems(tunnelTableList); tunnelsTableView.setItems(tunnelTableList);

@ -2,7 +2,6 @@ package org.getmonero.i2p.zero.gui;
import java.awt.Taskbar; import java.awt.Taskbar;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.util.List;
import javafx.application.Application; import javafx.application.Application;
import javafx.fxml.FXMLLoader; import javafx.fxml.FXMLLoader;

@ -83,6 +83,7 @@
<TableView fx:id="tunnelsTableView" prefHeight="139.0" prefWidth="318.0"> <TableView fx:id="tunnelsTableView" prefHeight="139.0" prefWidth="318.0">
<columns> <columns>
<TableColumn fx:id="typeCol" prefWidth="93.0" text="Type" /> <TableColumn fx:id="typeCol" prefWidth="93.0" text="Type" />
<TableColumn fx:id="stateCol" prefWidth="93.0" text="State" />
<TableColumn fx:id="hostCol" prefWidth="186.0" text="Host" /> <TableColumn fx:id="hostCol" prefWidth="186.0" text="Host" />
<TableColumn fx:id="portCol" minWidth="0.0" prefWidth="70.0" text="Port" /> <TableColumn fx:id="portCol" minWidth="0.0" prefWidth="70.0" text="Port" />
<TableColumn fx:id="i2PCol" prefWidth="280.0" text="I2P address" /> <TableColumn fx:id="i2PCol" prefWidth="280.0" text="I2P address" />

@ -43,6 +43,7 @@ public class TunnelControl implements Runnable {
public String getHost(); public String getHost();
public String getPort(); public String getPort();
public String getI2P(); public String getI2P();
public String getState();
public void destroy(); public void destroy();
} }
@ -59,6 +60,7 @@ public class TunnelControl implements Runnable {
} }
public void destroy() { public void destroy() {
new Thread(()->{ 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); tunnel.runClose(new String[]{"forced", "all"}, tunnel);
}).start(); }).start();
} }
@ -67,6 +69,7 @@ public class TunnelControl implements Runnable {
@Override public String getHost() { return "localhost"; } @Override public String getHost() { return "localhost"; }
@Override public String getPort() { return port+""; } @Override public String getPort() { return port+""; }
@Override public String getI2P() { return dest; } @Override public String getI2P() { return dest; }
@Override public String getState() { return tunnel==null ? "opening..." : "open"; }
} }
public static class ServerTunnel implements Tunnel { public static class ServerTunnel implements Tunnel {
public String dest; public String dest;
@ -92,6 +95,7 @@ public class TunnelControl implements Runnable {
} }
public void destroy() { public void destroy() {
new Thread(()->{ 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); tunnel.runClose(new String[]{"forced", "all"}, tunnel);
}).start(); }).start();
} }
@ -99,6 +103,7 @@ public class TunnelControl implements Runnable {
@Override public String getHost() { return host; } @Override public String getHost() { return host; }
@Override public String getPort() { return port+""; } @Override public String getPort() { return port+""; }
@Override public String getI2P() { return dest; } @Override public String getI2P() { return dest; }
@Override public String getState() { return tunnel==null ? "opening..." : "open"; }
} }
public static class SocksTunnel implements Tunnel { public static class SocksTunnel implements Tunnel {
@ -112,6 +117,7 @@ public class TunnelControl implements Runnable {
} }
public void destroy() { public void destroy() {
new Thread(()->{ 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); tunnel.runClose(new String[]{"forced", "all"}, tunnel);
}).start(); }).start();
} }
@ -119,6 +125,7 @@ public class TunnelControl implements Runnable {
@Override public String getHost() { return "localhost"; } @Override public String getHost() { return "localhost"; }
@Override public String getPort() { return port+""; } @Override public String getPort() { return port+""; }
@Override public String getI2P() { return "n/a"; } @Override public String getI2P() { return "n/a"; }
@Override public String getState() { return tunnel==null ? "opening..." : "open"; }
} }
public List<Tunnel> getTunnels() { public List<Tunnel> getTunnels() {

Loading…
Cancel
Save