X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2Fjabaws2%2FJws2InstanceFactory.java;h=1983ff5205b1ca0c435e240db4bbe3ebefd823e9;hb=6200addf078b7f7ace90597dc056dafc7fc602c1;hp=59077136b85069b4670216cb50fc564059bd3550;hpb=49180b19348856c044a3a427f371480ed3fef459;p=jalview.git diff --git a/src/jalview/ws/jws2/jabaws2/Jws2InstanceFactory.java b/src/jalview/ws/jws2/jabaws2/Jws2InstanceFactory.java index 5907713..1983ff5 100644 --- a/src/jalview/ws/jws2/jabaws2/Jws2InstanceFactory.java +++ b/src/jalview/ws/jws2/jabaws2/Jws2InstanceFactory.java @@ -1,33 +1,89 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.ws.jws2.jabaws2; -import java.util.HashMap; - -import compbio.data.msa.JABAService; - +import jalview.bin.ApplicationSingletonProvider; +import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI; import jalview.ws.jws2.AAConClient; import jalview.ws.jws2.RNAalifoldClient; import jalview.ws.uimodel.AlignAnalysisUIText; -public class Jws2InstanceFactory +import java.util.HashMap; +import java.util.HashSet; + +import compbio.data.msa.JABAService; + +public class Jws2InstanceFactory implements ApplicationSingletonI { - private static HashMap aaConGUI; + + private Jws2InstanceFactory() + { + // private singleton + } + + private static Jws2InstanceFactory getInstance() + { + return (Jws2InstanceFactory) ApplicationSingletonProvider + .getInstance(Jws2InstanceFactory.class); + } + + private HashMap aaConGUI; + + private HashSet ignoreGUI; + private static String category_rewrite(String cat_name) { - return (cat_name != null && cat_name.equals("Prediction")) ? "Secondary Structure Prediction" : cat_name; + return (cat_name != null && cat_name.equals("Prediction")) + ? "Secondary Structure Prediction" + : cat_name; } - private static void init() + + private void init() { if (aaConGUI == null) { - aaConGUI = new HashMap(); + aaConGUI = new HashMap<>(); aaConGUI.put(compbio.ws.client.Services.AAConWS.toString(), AAConClient.getAlignAnalysisUITest()); aaConGUI.put(compbio.ws.client.Services.RNAalifoldWS.toString(), RNAalifoldClient.getAlignAnalysisUITest()); + // ignore list for JABAWS services not supported in jalview ... + ignoreGUI = new HashSet<>(); } } /** + * exclusion list to avoid creating GUI elements for services we don't fully + * support + * + * @param serviceType + * @return + */ + public static boolean ignoreService(String serviceType) + { + getInstance().init(); + return (getInstance().ignoreGUI.contains(serviceType.toString())); + } + + /** * construct a service instance and configure it with any additional * properties needed so Jalview can access it correctly * @@ -42,11 +98,10 @@ public class Jws2InstanceFactory String serviceType, String name, String description, JABAService service) { - init(); - Jws2Instance svc = new Jws2Instance(jwsservers, serviceType, category_rewrite(name), - description, service); - - svc.aaui = aaConGUI.get(serviceType.toString()); + getInstance().init(); + Jws2Instance svc = new Jws2Instance(jwsservers, serviceType, + category_rewrite(name), description, service); + svc.aaui = getInstance().aaConGUI.get(serviceType.toString()); return svc; }