X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJws2ClientFactory.java;fp=src%2Fjalview%2Fws%2Fjws2%2FJws2ClientFactory.java;h=6445cd57179819b2136338d8c314dce2364bcd6c;hb=61632514caf99d7897843f8bb3e4378aa715d040;hp=c724c45fd0b592c8a824a35637d73980ef871d32;hpb=daa1765ab2101480a724b92a3f3e7dee662ba943;p=jalview.git diff --git a/src/jalview/ws/jws2/Jws2ClientFactory.java b/src/jalview/ws/jws2/Jws2ClientFactory.java index c724c45..6445cd5 100644 --- a/src/jalview/ws/jws2/Jws2ClientFactory.java +++ b/src/jalview/ws/jws2/Jws2ClientFactory.java @@ -7,6 +7,7 @@ import jalview.gui.JvSwingUtils; import jalview.util.MessageManager; import jalview.ws.api.ServiceWithParameters; import jalview.ws.jws2.dm.AAConSettings; +import jalview.ws.jws2.jabaws2.Jws2Instance; import jalview.ws.params.AutoCalcSetting; import jalview.ws.uimodel.AlignAnalysisUIText; @@ -85,18 +86,23 @@ public class Jws2ClientFactory @Override public void actionPerformed(ActionEvent arg0) { + List aaconClient = alignFrame.getViewport() - .getCalcManager() - .getRegisteredWorkersOfClass(aaui.getClient()); - if (aaconClient != null && aaconClient.size() > 0) - { - removeCurrentAAConWorkerFor(aaui, alignFrame); - } - else + .getCalcManager().getRegisteredWorkersOfClass( + SeqAnnotationServiceCalcWorker.class); + if (aaconClient != null) { - buildCurrentAAConWorkerFor(aaui, alignFrame); - + for (AlignCalcWorkerI worker : aaconClient) + { + if (((SeqAnnotationServiceCalcWorker) worker).getService() + .getClass().equals(aaui.getClient())) + { + removeCurrentAAConWorkerFor(aaui, alignFrame); + return; + } + } } + buildCurrentAAConWorkerFor(aaui, alignFrame); } }); @@ -142,6 +148,7 @@ public class Jws2ClientFactory boolean serviceEnabled = false; if (aaconClient != null) { + // NB code duplicatino again! for (AlignCalcWorkerI _worker : aaconClient) { SeqAnnotationServiceCalcWorker worker = (SeqAnnotationServiceCalcWorker) _worker; @@ -271,7 +278,9 @@ public class Jws2ClientFactory throw new Error( MessageManager.getString("error.no_aacon_service_found")); } - return new AAConSettings(true, service, null, null); + return service instanceof Jws2Instance + ? new AAConSettings(true, service, null, null) + : new AutoCalcSetting(service, null, null, true); } private static void removeCurrentAAConWorkerFor(AlignAnalysisUIText aaui,