X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJws2ClientFactory.java;h=8a4f9fb3778aed0a5ede3047cd9d71d2b1baee4e;hb=ab58313e7bb31264ddb2715a1c548cdc789d7fa6;hp=99edbeca42422c29d24c9f48fd6f5391052aa22d;hpb=ba2c0286e9a47af8ffd46057f91a22df0d4850ea;p=jalview.git diff --git a/src/jalview/ws/jws2/Jws2ClientFactory.java b/src/jalview/ws/jws2/Jws2ClientFactory.java index 99edbec..8a4f9fb 100644 --- a/src/jalview/ws/jws2/Jws2ClientFactory.java +++ b/src/jalview/ws/jws2/Jws2ClientFactory.java @@ -1,13 +1,16 @@ package jalview.ws.jws2; +import jalview.api.AlignCalcManagerI2; import jalview.api.AlignCalcWorkerI; import jalview.bin.Cache; +import jalview.bin.Console; import jalview.gui.AlignFrame; 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; import java.awt.event.ActionEvent; @@ -25,8 +28,7 @@ public class Jws2ClientFactory static boolean registerAAConWSInstance(final JMenu wsmenu, final ServiceWithParameters service, final AlignFrame alignFrame) { - Jws2Instance jaba_service = (Jws2Instance) service; - final AlignAnalysisUIText aaui = jaba_service.getAlignAnalysisUI(); // null + final AlignAnalysisUIText aaui = service.getAlignAnalysisUI(); // null // ; // // AlignAnalysisUIText.aaConGUI.get(service.serviceType.toString()); if (aaui == null) @@ -50,24 +52,28 @@ public class Jws2ClientFactory // is there an aaCon worker already present - if so, set it to use the // given service handle { - List aaconClient = alignFrame.getViewport() - .getCalcManager() - .getRegisteredWorkersOfClass(aaui.getClient()); - if (aaconClient != null && aaconClient.size() > 0) + AlignCalcManagerI2 mger = alignFrame.getViewport() + .getCalcManager(); + if (mger != null) { - SeqAnnotationServiceCalcWorker worker = (SeqAnnotationServiceCalcWorker) aaconClient - .get(0); - if (!worker.service.getHostURL().equals(service.getHostURL())) + List aaconClient = mger + .getWorkersOfClass(aaui.getClient()); + if (aaconClient != null && aaconClient.size() > 0) { - // javax.swing.SwingUtilities.invokeLater(new Runnable() + SeqAnnotationServiceCalcWorker worker = (SeqAnnotationServiceCalcWorker) aaconClient + .get(0); + if (!worker.service.getHostURL().equals(service.getHostURL())) { - // @Override - // public void run() + // javax.swing.SwingUtilities.invokeLater(new Runnable() { - removeCurrentAAConWorkerFor(aaui, alignFrame); - buildCurrentAAConWorkerFor(aaui, alignFrame, jaba_service); - } - } // ); + // @Override + // public void run() + { + removeCurrentAAConWorkerFor(aaui, alignFrame); + buildCurrentAAConWorkerFor(aaui, alignFrame, service); + } + } // ); + } } } } @@ -86,18 +92,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 + .getWorkersOfClass(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); } }); @@ -137,12 +148,13 @@ public class Jws2ClientFactory return; } List aaconClient = alignFrame.getViewport() - .getCalcManager().getRegisteredWorkersOfClass( - SeqAnnotationServiceCalcWorker.class); + .getCalcManager() + .getWorkersOfClass(SeqAnnotationServiceCalcWorker.class); boolean serviceEnabled = false; if (aaconClient != null) { + // NB code duplicatino again! for (AlignCalcWorkerI _worker : aaconClient) { SeqAnnotationServiceCalcWorker worker = (SeqAnnotationServiceCalcWorker) _worker; @@ -185,7 +197,7 @@ public class Jws2ClientFactory * AACon server to use What parameters to use */ // could actually do a class search for this too - AAConSettings fave = (AAConSettings) alignFrame.getViewport() + AutoCalcSetting fave = alignFrame.getViewport() .getCalcIdSettingsFor(aaui.getCalcId()); if (fave == null) { @@ -203,13 +215,13 @@ public class Jws2ClientFactory private static void buildCurrentAAConWorkerFor( final AlignAnalysisUIText aaui, AlignFrame alignFrame, - Jws2Instance service) + ServiceWithParameters service) { /* * preferred settings Whether AACon is automatically recalculated Which * AACon server to use What parameters to use */ - AAConSettings fave = (AAConSettings) alignFrame.getViewport() + AutoCalcSetting fave = alignFrame.getViewport() .getCalcIdSettingsFor(aaui.getCalcId()); if (fave == null) { @@ -220,7 +232,7 @@ public class Jws2ClientFactory if (service != null && !fave.getService().getHostURL() .equals(service.getHostURL())) { - Cache.log.debug("Changing AACon service to " + service.getHostURL() + Console.debug("Changing AACon service to " + service.getHostURL() + " from " + fave.getService().getHostURL()); fave.setService(service); } @@ -228,30 +240,31 @@ public class Jws2ClientFactory new SequenceAnnotationWSClient(fave, alignFrame, false); } - private static AAConSettings createDefaultAAConSettings( + private static AutoCalcSetting createDefaultAAConSettings( AlignAnalysisUIText aaui) { return createDefaultAAConSettings(aaui, null); } - private static AAConSettings createDefaultAAConSettings( - AlignAnalysisUIText aaui, Jws2Instance service) + private static AutoCalcSetting createDefaultAAConSettings( + AlignAnalysisUIText aaui, ServiceWithParameters service) { if (service != null) { - if (!service.getServiceType() - .equals(compbio.ws.client.Services.AAConWS.toString())) - { - Cache.log.warn( - "Ignoring invalid preferred service for AACon calculations (service type was " - + service.getServiceType() + ")"); - service = null; - } - else + // if (!service.getServiceType() + // .equals(compbio.ws.client.Services.AAConWS.toString())) + // { + // Console.warn( + // "Ignoring invalid preferred service for AACon calculations (service + // type was " + // + service.getServiceType() + ")"); + // service = null; + // } + // else { // check service is actually in the list of currently avaialable // services - if (!Jws2Discoverer.getDiscoverer().getServices().contains(service)) + if (!PreferredServiceRegistry.getRegistry().contains(service)) { // it isn't .. service = null; @@ -261,7 +274,7 @@ public class Jws2ClientFactory if (service == null) { // get the default service for AACon - service = Jws2Discoverer.getDiscoverer().getPreferredServiceFor(null, + service = PreferredServiceRegistry.getRegistry().getPreferredServiceFor(null, aaui.getServiceType()); } if (service == null) @@ -271,13 +284,15 @@ 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, AlignFrame alignFrame) { alignFrame.getViewport().getCalcManager() - .removeRegisteredWorkersOfClass(aaui.getClient()); + .removeWorkersOfClass(aaui.getClient()); } -} \ No newline at end of file +}