From 7339d3385ca6d6f3011d4523f349e696965cfde7 Mon Sep 17 00:00:00 2001 From: Obsidiam Date: Sun, 13 Aug 2017 19:26:49 +0200 Subject: [PATCH] Added support for more than one command. --- pom.xml | 10 -- src/main/java/abstracts/LocalEnvironment.java | 4 +- .../java/com/neology/net/ActiveIpChecker.java | 82 ---------------- src/main/java/com/neology/net/Closed.java | 24 ++++- .../java/com/neology/net/NetController.java | 21 +++- src/main/java/com/neology/net/Transport.java | 10 +- .../com/neology/todosaver/FXMLController.java | 95 +++++++++++-------- src/main/resources/fxml/Scene.fxml | 40 +++----- 8 files changed, 114 insertions(+), 172 deletions(-) delete mode 100644 src/main/java/com/neology/net/ActiveIpChecker.java diff --git a/pom.xml b/pom.xml index 3ab3e86..fe32d14 100644 --- a/pom.xml +++ b/pom.xml @@ -115,20 +115,10 @@ xml-apis 2.0.2 - - org.xerial - sqlite-jdbc - 3.8.11.2 - commons-io commons-io 2.5 - - mysql - mysql-connector-java - 5.1.41 - diff --git a/src/main/java/abstracts/LocalEnvironment.java b/src/main/java/abstracts/LocalEnvironment.java index c74d5d4..340d72e 100644 --- a/src/main/java/abstracts/LocalEnvironment.java +++ b/src/main/java/abstracts/LocalEnvironment.java @@ -10,6 +10,7 @@ import enums.Local; import java.io.File; import java.io.IOException; +import java.net.Socket; import java.nio.file.Paths; import java.util.logging.Level; import java.util.logging.Logger; @@ -21,9 +22,6 @@ * @author Obsidiam */ public abstract class LocalEnvironment { - private NetController NET = new NetController(); - - public String getLocalVar(Local l) throws NullPointerException{ String var = null; XMLController xml = new XMLController(); diff --git a/src/main/java/com/neology/net/ActiveIpChecker.java b/src/main/java/com/neology/net/ActiveIpChecker.java deleted file mode 100644 index 16b6c26..0000000 --- a/src/main/java/com/neology/net/ActiveIpChecker.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package com.neology.net; - -import abstracts.LocalEnvironment; -import enums.Local; -import java.util.Arrays; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.net.SocketException; -import java.net.UnknownHostException; -import java.util.concurrent.CopyOnWriteArrayList; - -/** - * - * @author Obsidiam - * @deprecated - */ - -public class ActiveIpChecker extends Thread implements Runnable{ - - private Thread inside = null; - private CopyOnWriteArrayList out = new CopyOnWriteArrayList<>(); - private boolean IS_CONNECTED = false; - - private NetController net = new NetController(); - - LocalEnvironment local = new LocalEnvironment(){ - @Override - public String preparePath(String path) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - }; - - @Override - public void start(){ - if(inside == null){ - inside = new Thread(this,"AIPC"); - inside.setDaemon(true); - inside.start(); - } - } - - @Override - public void run(){ - try { - this.out = net.prepareActiveIpsList(updateIpInformation()); - //System.out.println(out.size()); - - System.out.println("Ips checked!"); - IS_CONNECTED = true; - - } catch (Exception ex) { - Logger.getLogger(ActiveIpChecker.class.getName()).log(Level.SEVERE, null, ex); - } - } - - public boolean getConnectionState(){ - return IS_CONNECTED; - } - - private CopyOnWriteArrayList updateIpInformation() throws NullPointerException, UnknownHostException, SocketException, Exception { - - CopyOnWriteArrayList temp = new CopyOnWriteArrayList<>(); - List list; - - list = Arrays.asList(net.getIpPool(local.getLocalVar(Local.SUBNET))); - list.forEach(ip ->{ - try { - temp.add(ip); - } catch (Exception ex) { - Logger.getLogger(ActiveIpChecker.class.getName()).log(Level.SEVERE, null, ex); - } - }); - return temp; - } -} - diff --git a/src/main/java/com/neology/net/Closed.java b/src/main/java/com/neology/net/Closed.java index 10b611d..4e76f0b 100644 --- a/src/main/java/com/neology/net/Closed.java +++ b/src/main/java/com/neology/net/Closed.java @@ -5,6 +5,11 @@ */ package com.neology.net; +import com.neology.exceptions.TransportException; +import java.io.IOException; +import java.util.logging.Level; +import java.util.logging.Logger; + /** * * @author obsidiam @@ -12,21 +17,32 @@ public class Closed extends TransportState{ @Override public void closeConnection(Transport t) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + try { + if(t.isConnected()){ + t.close(); + } + } catch (IOException ex) { + Logger.getLogger(Closed.class.getName()).log(Level.SEVERE, null, ex); + } + } @Override public void haltConnection(Transport t) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + try { + t.close(); + } catch (IOException ex) { + Logger.getLogger(Closed.class.getName()).log(Level.SEVERE, null, ex); + } } @Override public boolean wasConnected(Transport t) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return t.wasConnected(); } @Override public boolean isConnected(Transport t) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return t.isConnected(); } } diff --git a/src/main/java/com/neology/net/NetController.java b/src/main/java/com/neology/net/NetController.java index a179f85..0e46682 100644 --- a/src/main/java/com/neology/net/NetController.java +++ b/src/main/java/com/neology/net/NetController.java @@ -7,13 +7,19 @@ import com.neology.interfaces.Reachable; import com.neology.xml.XMLController; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; import java.net.InetAddress; +import java.net.Socket; import java.net.SocketException; import java.net.UnknownHostException; import java.util.concurrent.CopyOnWriteArrayList; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import javax.xml.parsers.ParserConfigurationException; import org.apache.commons.net.util.SubnetUtils; import org.xml.sax.SAXException; @@ -23,6 +29,11 @@ * @author Obsidiam */ public class NetController implements Reachable{ + private volatile Socket S; + + public NetController(Socket s){ + this.S = s; + } public String[] getIpPool(String subnet) throws SocketException{ SubnetUtils utils = new SubnetUtils(subnet); @@ -30,6 +41,12 @@ public String[] getIpPool(String subnet) throws SocketException{ return utils.getInfo().getAllAddresses(); } + public String getIp() throws UnknownHostException, IOException{ + + return S.getLocalAddress().getHostAddress(); + } + + @Deprecated public String[] prepareIpsPool() throws NullPointerException, UnknownHostException, ParserConfigurationException, SAXException, IOException{ XMLController xml = new XMLController(); String subnet = xml.parseInitFile().get(0).toString(); @@ -40,7 +57,7 @@ public String[] prepareIpsPool() throws NullPointerException, UnknownHostExcepti System.arraycopy(pool, 0, actual, 0, pool.length); return actual; } - + @Deprecated public CopyOnWriteArrayList prepareActiveIpsList(CopyOnWriteArrayList pool){ CopyOnWriteArrayList actv_pool = new CopyOnWriteArrayList<>(); @@ -60,7 +77,7 @@ public CopyOnWriteArrayList prepareActiveIpsList(CopyOnWriteArrayList po @Override public boolean isReachable(String ip) throws Exception { try { - if(InetAddress.getByName(ip).isReachable(10)){ + if(InetAddress.getByName(ip).isReachable(500)){ return true; } } catch (IOException ex) { diff --git a/src/main/java/com/neology/net/Transport.java b/src/main/java/com/neology/net/Transport.java index d0c9180..67373f9 100644 --- a/src/main/java/com/neology/net/Transport.java +++ b/src/main/java/com/neology/net/Transport.java @@ -31,7 +31,7 @@ import java.nio.charset.Charset; /** - * @author dime + * @author dime,obsidiam */ public class Transport { public final static Charset ISO_8859_2 = Charset.forName("ISO-8859-2"); @@ -41,7 +41,7 @@ public class Transport { InputStream origIs; OutputStream origOs; Socket s; - private boolean WAS_CONNECTED ,IS_CONNECTED = false; + private boolean WAS_CONNECTED = false; private BaudrateMeter baudrateMeter; private String IP; @@ -80,6 +80,12 @@ void release() { WAS_CONNECTED = true; } + public void close() throws IOException{ + release(); + s.close(); + IP = ""; + } + public byte readByte() throws TransportException { try { if (baudrateMeter != null) baudrateMeter.count(1); diff --git a/src/main/java/com/neology/todosaver/FXMLController.java b/src/main/java/com/neology/todosaver/FXMLController.java index 6d30de7..9e0ecb6 100644 --- a/src/main/java/com/neology/todosaver/FXMLController.java +++ b/src/main/java/com/neology/todosaver/FXMLController.java @@ -4,6 +4,7 @@ import com.neology.exceptions.TransportException; import com.neology.interfaces.Viewable; import com.neology.net.BaudrateMeter; +import com.neology.net.Closed; import com.neology.net.Connection; import com.neology.net.Established; import com.neology.net.NetController; @@ -19,6 +20,8 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; @@ -28,7 +31,6 @@ import java.util.Arrays; import java.util.HashMap; import java.util.ResourceBundle; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import java.util.logging.Level; @@ -38,8 +40,10 @@ import javafx.collections.ObservableList; import javafx.concurrent.Service; import javafx.concurrent.Task; +import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.Initializable; +import javafx.geometry.Pos; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; @@ -50,6 +54,7 @@ import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.image.ImageView; +import javafx.scene.text.TextAlignment; import javafx.stage.Stage; import javafx.util.Callback; import javax.imageio.ImageIO; @@ -57,21 +62,14 @@ import org.xml.sax.SAXException; public class FXMLController extends LocalEnvironment implements Initializable,Viewable { - - @FXML - private Label VER; - @FXML - private ListView MAIN_VIEW; - @FXML - private TextArea NOTE_VIEW; @FXML private TextField LOGIN; @FXML private PasswordField PASS; @FXML - private Button LOGIN_BUTTON,SETTINGS,ABOUT,CONNECT,DISCONNECT,LOG_OUT_BUTTON,REFRESH; + private Button LOGIN_BUTTON,SETTINGS,ABOUT,CONNECT,DISCONNECT,LOG_OUT_BUTTON; @FXML - private volatile ListView VIEWER_PANEL; + private volatile ListView VIEWER_PANEL,INFO_VIEW; String ACTUAL_NAME; private LocalEnvironment TMP_DIR = new LocalEnvironment() { @Override @@ -81,16 +79,15 @@ public String preparePath(String path) { }; - static ServerSocket ss; - static Socket s; - static String msgout; + static ServerSocket ss = null; + static Socket s = null; + NetController n = null; private static volatile int PORT; protected ArrayList INIT; protected boolean IS_LOGGED_IN = false; protected String LOGGED_IN = ""; protected boolean IS_CONNECTED = false; private int INDEX = 0; - //static ConcurrentHashMap TRANSPORTERS = new ConcurrentHashMap<>(); private HashMap IMAGES = new HashMap<>(); private HashMap THREADS = new HashMap<>(); @@ -98,6 +95,8 @@ public String preparePath(String path) { ObservableList - - - - - - - - - - - - - - - - - - - - - - - + +
+ + + + + +
+ + + +