abstracted GUI to use jalview.ws.params objects (JAL-591, JAL-633)
[jalview.git] / src / jalview / ws / jws2 / JabaPreset.java
diff --git a/src/jalview/ws/jws2/JabaPreset.java b/src/jalview/ws/jws2/JabaPreset.java
new file mode 100644 (file)
index 0000000..1f8517e
--- /dev/null
@@ -0,0 +1,65 @@
+package jalview.ws.jws2;
+
+import jalview.ws.jws2.Jws2Discoverer.Jws2Instance;
+import jalview.ws.params.ArgumentI;
+import jalview.ws.params.WsParamSetI;
+
+import java.util.List;
+
+import compbio.metadata.Preset;
+
+public class JabaPreset implements WsParamSetI {
+  Preset p=null;
+  Jws2Instance service;
+  public JabaPreset(Jws2Instance svc, Preset preset) {
+    service=svc;
+    p=preset;
+  }
+  @Override
+  public String getName()
+  {
+    return p.getName();
+  }
+  @Override
+  public String getDescription()
+  {
+    return p.getDescription();
+  }
+  @Override
+  public String[] getApplicableUrls()
+  {
+    return new String[] { service.getHost()};
+  }
+  @Override
+  public String getSourceFile()
+  {
+    return null;
+  }
+  @Override
+  public boolean isModifiable()
+  {
+    return false;
+  }
+  @Override
+  public void setSourceFile(String newfile)
+  {
+    throw new Error("Cannot set source file for "+getClass());
+  }
+  @Override
+  public List<ArgumentI> getArguments()
+  {
+    try {
+    return JabaParamStore.getJwsArgsfromJaba(p.getArguments(service.getRunnerConfig()));
+    }
+    catch (Exception e)
+    {
+      e.printStackTrace();
+      throw new Error("Probable mismatch between service instance and preset!");
+    }
+  }
+  @Override
+  public void setArguments(List<ArgumentI> args)
+  {
+    throw new Error("Cannot set Parameters for a Jaba Web service's preset");      
+  }
+}
\ No newline at end of file