+package jalview.ws.slivkaws;
+
+import jalview.ws.params.ArgumentI;
+import jalview.ws.params.WsParamSetI;
+import jalview.ws.params.simple.BooleanOption;
+import jalview.ws.params.simple.DoubleParameter;
+import jalview.ws.params.simple.IntegerParameter;
+import jalview.ws.params.simple.RadioChoiceParameter;
+import jalview.ws.params.simple.StringParameter;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import uk.ac.dundee.compbio.slivkaclient.BooleanField;
+import uk.ac.dundee.compbio.slivkaclient.ChoiceField;
+import uk.ac.dundee.compbio.slivkaclient.DecimalField;
+import uk.ac.dundee.compbio.slivkaclient.Form;
+import uk.ac.dundee.compbio.slivkaclient.FormField;
+import uk.ac.dundee.compbio.slivkaclient.IntegerField;
+import uk.ac.dundee.compbio.slivkaclient.Service;
+import uk.ac.dundee.compbio.slivkaclient.TextField;
+
+
+
+public class SlivkaParamSet implements WsParamSetI
+{
+ private Service service;
+ private List<ArgumentI> args = new ArrayList<>();
+
+ SlivkaParamSet(Service service) throws IOException {
+ this.service = service;
+ Form form = service.getForm();
+ for (FormField field : form.getFields())
+ {
+ ArgumentI arg;
+ switch (field.getType()) {
+ case BOOLEAN:
+ BooleanField boolField = (BooleanField) field;
+ arg = new BooleanOption(
+ field.getName(), field.getDescription(), field.isRequired(), boolField.getDefault(),
+ boolField.getDefault(), null
+ );
+ break;
+ case TEXT:
+ TextField textField = (TextField) field;
+ arg = new StringParameter(
+ field.getName(), field.getDescription(), field.isRequired(), textField.getDefault(),
+ textField.getDefault()
+ );
+ break;
+ case INTEGER:
+ IntegerField intField = (IntegerField) field;
+ arg = new IntegerParameter(
+ field.getName(), field.getDescription(), field.isRequired(), intField.getDefault(),
+ intField.getMin(), intField.getMax()
+ );
+ break;
+ case DECIMAL:
+ DecimalField doubleField = (DecimalField) field;
+ arg = new DoubleParameter(
+ field.getName(), field.getDescription(), field.isRequired(), doubleField.getDefault(),
+ doubleField.getMin(), doubleField.getMax()
+ );
+ break;
+ case CHOICE:
+ ChoiceField choiceField = (ChoiceField) field;
+ arg = new RadioChoiceParameter(
+ field.getName(), field.getDescription(), new ArrayList<>(choiceField.getChoices()), choiceField.getDefault()
+ );
+ break;
+ case FILE:
+ default:
+ continue;
+ }
+ args.add(arg);
+ }
+ }
+
+ @Override
+ public String getName()
+ {
+ return "Default";
+ }
+
+ @Override
+ public String getDescription()
+ {
+ return "";
+ }
+
+ @Override
+ public String[] getApplicableUrls()
+ {
+ return new String[] { service.getURL().toString() };
+ }
+
+ @Override
+ public String getSourceFile()
+ {
+ return null;
+ }
+
+ @Override
+ public void setSourceFile(String newfile)
+ {
+ }
+
+ @Override
+ public boolean isModifiable()
+ {
+ return true;
+ }
+
+ @Override
+ public List<ArgumentI> getArguments()
+ {
+ return args;
+ }
+
+ @Override
+ public void setArguments(List<ArgumentI> args)
+ {
+ throw new RuntimeException();
+ }
+
+}