JAL-2844 removed resetting line drawing to keep line on screen
[jalview.git] / forester / java / src / org / forester / archaeopteryx / tools / ProcessPool.java
index 0c4ed99..c9426d5 100644 (file)
@@ -21,7 +21,7 @@
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\r
 //\r
 // Contact: phylosoft @ gmail . com\r
-// WWW: www.phylosoft.org/forester\r
+// WWW: https://sites.google.com/site/cmzmasek/home/software/forester\r
 \r
 package org.forester.archaeopteryx.tools;\r
 \r
@@ -30,7 +30,16 @@ import java.util.List;
 \r
 public class ProcessPool {\r
 \r
-    final static private ArrayList<ProcessRunning> _processes = new ArrayList<ProcessRunning>();\r
+    private final static boolean            DEBUG = true;\r
+    private final ArrayList<ProcessRunning> _processes;\r
+\r
+    private ProcessPool() {\r
+        _processes = new ArrayList<ProcessRunning>();\r
+    }\r
+\r
+    public static ProcessPool createInstance() {\r
+        return new ProcessPool();\r
+    }\r
 \r
     public synchronized ProcessRunning getProcessByIndex( final int i ) {\r
         return getProcesses().get( i );\r
@@ -40,7 +49,7 @@ public class ProcessPool {
         return getProcesses().size();\r
     }\r
 \r
-    public synchronized ProcessRunning getProcessById( final int id ) {\r
+    public synchronized ProcessRunning getProcessById( final long id ) {\r
         for( final ProcessRunning p : getProcesses() ) {\r
             if ( p.getId() == id ) {\r
                 return p;\r
@@ -49,29 +58,37 @@ public class ProcessPool {
         return null;\r
     }\r
 \r
-    public synchronized int addProcess( final String name ) {\r
+    public synchronized long addProcess( final String name ) {\r
         final ProcessRunning p = ProcessRunning.createInstance( name );\r
-        final int id = p.getId();\r
+        final long id = p.getId();\r
         if ( getProcessById( id ) != null ) {\r
-            throw new IllegalStateException( "process with id " + id + "already exists" );\r
+            throw new IllegalStateException( " process with id " + id + "already exists" );\r
         }\r
         getProcesses().add( p );\r
+        if ( DEBUG ) {\r
+            System.out.println( " pp: added: " + p );\r
+        }\r
         return id;\r
     }\r
 \r
-    public synchronized boolean removeProcess( final int id ) {\r
+    public synchronized boolean removeProcess( final long id ) {\r
         final int i = getProcessIndexById( id );\r
         if ( i >= 0 ) {\r
+            if ( DEBUG ) {\r
+                final ProcessRunning p = getProcessById( id );\r
+                System.out.println( " pp: removing: " + p );\r
+            }\r
             getProcesses().remove( i );\r
             return true;\r
         }\r
         return false;\r
     }\r
 \r
-    private synchronized int getProcessIndexById( final int id ) {\r
-        final ProcessRunning p = getProcessById( id );\r
-        if ( p != null ) {\r
-            return p.getId();\r
+    private synchronized int getProcessIndexById( final long id ) {\r
+        for( int i = 0; i < size(); ++i ) {\r
+            if ( getProcesses().get( i ).getId() == id ) {\r
+                return i;\r
+            }\r
         }\r
         return -1;\r
     }\r