1 package jalview.ws2.operations;
3 import java.util.ArrayList;
4 import java.util.Collections;
6 import java.util.concurrent.CompletionStage;
8 import javax.swing.JCheckBoxMenuItem;
9 import javax.swing.JMenu;
10 import javax.swing.JMenuItem;
11 import javax.swing.event.MenuEvent;
12 import javax.swing.event.MenuListener;
14 import jalview.api.AlignCalcManagerI2;
15 import jalview.api.AlignmentViewPanel;
16 import jalview.datamodel.AlignmentAnnotation;
17 import jalview.gui.AlignFrame;
18 import jalview.gui.AlignViewport;
19 import jalview.gui.WsJobParameters;
20 import jalview.io.FeaturesFile;
21 import jalview.util.Format;
22 import jalview.util.MessageManager;
23 import jalview.ws.params.ArgumentI;
24 import jalview.ws.params.ParamDatastoreI;
25 import jalview.ws.params.WsParamSetI;
26 import jalview.ws2.MenuEntryProviderI;
27 import jalview.ws2.ResultSupplier;
28 import jalview.ws2.PollingTaskExecutor;
29 import jalview.ws2.WebServiceI;
30 import jalview.ws2.gui.AnnotationMenuBuilder;
37 public class AnnotationOperation implements Operation
39 final WebServiceI service;
41 final String typeName;
43 final ResultSupplier<List<AlignmentAnnotation>> annotationSupplier;
45 final ResultSupplier<FeaturesFile> featuresSupplier;
47 boolean alignmentAnalysis = false;
49 boolean interactive = false;
51 private boolean isProtOperation = true;
53 private boolean isNucOperation = true;
56 * Is it fine to get rid of AlignAnalysisUIText?
59 public AnnotationOperation(WebServiceI service,
60 ResultSupplier<List<AlignmentAnnotation>> annotSupplier,
61 ResultSupplier<FeaturesFile> featSupplier, String operationName)
63 this.service = service;
64 this.annotationSupplier = annotSupplier;
65 this.featuresSupplier = featSupplier;
66 this.typeName = operationName;
70 public String getName()
72 return service.getName();
76 public String getDescription()
78 return service.getDescription();
82 public String getTypeName()
88 public String getHostName()
90 return service.getHostName();
94 public boolean hasParameters()
96 return service.hasParameters();
100 public ParamDatastoreI getParamStore()
102 return service.getParamStore();
106 public int getMinSequences()
112 public int getMaxSequences()
114 return Integer.MAX_VALUE;
118 public boolean canSubmitGaps()
124 public boolean isProteinOperation()
126 return isProtOperation;
129 public void setProteinOperation(boolean value)
131 isProtOperation = value;
135 public boolean isNucleotideOperation()
137 return isNucOperation;
140 public void setNucleotideOperation(boolean value)
142 isNucOperation = value;
146 public boolean isInteractive()
151 public void setInteractive(boolean value)
153 this.interactive = value;
157 public boolean isAlignmentAnalysis()
159 return alignmentAnalysis;
162 public void setAlignmentAnalysis(boolean value)
164 this.alignmentAnalysis = value;
168 public boolean getFilterNonStandardSymbols()
174 public boolean getNeedsAlignedSequences()
180 public MenuEntryProviderI getMenuBuilder()
182 return new AnnotationMenuBuilder(this);