1 package jalview.ws.api;
3 import jalview.bin.Cache;
4 import jalview.bin.Console;
5 import jalview.gui.AlignFrame;
6 import jalview.ws.jws2.MsaWSClient;
7 import jalview.ws.jws2.SequenceAnnotationWSClient;
8 import jalview.ws.params.ParamManager;
10 import javax.swing.JMenu;
12 public abstract class ServiceWithParameters extends UIinfo
15 protected jalview.ws.uimodel.AlignAnalysisUIText aaui;
17 public ServiceWithParameters(String serviceType, String action,
18 String name, String description, String hosturl)
20 super(serviceType, action, name, description, hosturl);
23 public abstract void initParamStore(ParamManager userParameterStore);
25 public jalview.ws.uimodel.AlignAnalysisUIText getAlignAnalysisUI()
30 public void setAlignAnalysisUI(
31 jalview.ws.uimodel.AlignAnalysisUIText aaui)
36 public boolean isInteractiveUpdate()
38 return aaui != null && aaui.isAA();
40 // config flags for SeqAnnotationServiceCalcWorker
42 public boolean isProteinService()
44 return aaui == null ? true : aaui.isPr();
47 public boolean isNucleotideService()
49 return aaui == null ? false : aaui.isNa();
52 public boolean isNeedsAlignedSequences()
54 return aaui == null ? false : aaui.isNeedsAlignedSeqs();
57 public boolean isAlignmentAnalysis()
59 return aaui == null ? false : aaui.isAA();
62 public boolean isFilterSymbols()
64 return aaui != null ? aaui.isFilterSymbols() : true;
67 public int getMinimumInputSequences()
69 return aaui != null ? aaui.getMinimumSequences() : 1;
72 public String getNameURI()
74 return "java:" + getName();
77 public String getUri()
79 // TODO verify that service parameter sets in projects are consistent with
81 // this is only valid for Jaba 1.0 - this formula might have to change!
83 + (getHostURL().lastIndexOf("/") == (getHostURL().length() - 1)
89 protected enum ServiceClient
91 MSAWSCLIENT, SEQUENCEANNOTATIONWSCLIENT;
94 protected ServiceClient style = null;
96 public void attachWSMenuEntry(JMenu atpoint, AlignFrame alignFrame)
101 new MsaWSClient().attachWSMenuEntry(atpoint, this, alignFrame);
103 case SEQUENCEANNOTATIONWSCLIENT:
104 new SequenceAnnotationWSClient().attachWSMenuEntry(atpoint, this,
108 Console.warn("Implementation error ? Service " + getName()
109 + " has Unknown service style " + style);