X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fworkers%2FAlignCalcManager.java;h=9a3fc8df707c7759e5df06ba35b750c76e069558;hb=942cc6dcee175123aefd418a040d7fc6c7e8f6c5;hp=addb372bd9234a6127ba7dde80803b58163db1e4;hpb=4aae950e66ed30fb4ac50dcbae4257bfda2518fc;p=jalview.git diff --git a/src/jalview/workers/AlignCalcManager.java b/src/jalview/workers/AlignCalcManager.java index addb372..9a3fc8d 100644 --- a/src/jalview/workers/AlignCalcManager.java +++ b/src/jalview/workers/AlignCalcManager.java @@ -22,6 +22,7 @@ package jalview.workers; import jalview.api.AlignCalcManagerI; import jalview.api.AlignCalcWorkerI; +import jalview.bin.Jalview; import jalview.datamodel.AlignmentAnnotation; import java.util.ArrayList; @@ -34,6 +35,10 @@ import java.util.Set; public class AlignCalcManager implements AlignCalcManagerI { + public static final String STARTED = "started"; + + public static final String FINISHED = "finished"; + /* * list of registered workers */ @@ -68,13 +73,13 @@ public class AlignCalcManager implements AlignCalcManagerI { restartable = Collections .synchronizedList(new ArrayList()); - blackList = Collections - .synchronizedList(new ArrayList>()); + blackList = Collections.synchronizedList( + new ArrayList>()); inProgress = Collections .synchronizedList(new ArrayList()); - updating = Collections - .synchronizedMap(new Hashtable, List>()); - canUpdate = new HashSet(); + updating = Collections.synchronizedMap( + new Hashtable, List>()); + canUpdate = new HashSet<>(); } @Override @@ -82,13 +87,12 @@ public class AlignCalcManager implements AlignCalcManagerI { synchronized (updating) { + Jalview.getInstance().notifyWorker(worker, STARTED); List upd = updating.get(worker.getClass()); if (upd == null) { - updating.put( - worker.getClass(), - upd = Collections - .synchronizedList(new ArrayList())); + updating.put(worker.getClass(), upd = Collections + .synchronizedList(new ArrayList())); } synchronized (upd) { @@ -146,6 +150,7 @@ public class AlignCalcManager implements AlignCalcManagerI { synchronized (inProgress) { + Jalview.getInstance().notifyWorker(worker, FINISHED); // System.err.println("Worker " + worker + " marked as complete."); inProgress.remove(worker); List upd = updating.get(worker.getClass()); @@ -235,7 +240,8 @@ public class AlignCalcManager implements AlignCalcManagerI } @Override - public boolean workingInvolvedWith(AlignmentAnnotation alignmentAnnotation) + public boolean workingInvolvedWith( + AlignmentAnnotation alignmentAnnotation) { synchronized (inProgress) { @@ -286,7 +292,7 @@ public class AlignCalcManager implements AlignCalcManagerI public List getRegisteredWorkersOfClass( Class workerClass) { - List workingClass = new ArrayList(); + List workingClass = new ArrayList<>(); synchronized (canUpdate) { for (AlignCalcWorkerI worker : canUpdate) @@ -313,8 +319,8 @@ public class AlignCalcManager implements AlignCalcManagerI public void removeRegisteredWorkersOfClass( Class typeToRemove) { - List removable = new ArrayList(); - Set toremovannot = new HashSet(); + List removable = new ArrayList<>(); + Set toremovannot = new HashSet<>(); synchronized (restartable) { for (AlignCalcWorkerI worker : restartable) @@ -364,7 +370,7 @@ public class AlignCalcManager implements AlignCalcManagerI * first just find those to remove (to avoid * ConcurrentModificationException) */ - List toRemove = new ArrayList(); + List toRemove = new ArrayList<>(); for (AlignCalcWorkerI worker : restartable) { if (worker.involves(ann))