Set the initial value of the choice field to the default value.
[jalview.git] / src / jalview / ws / slivkaws / SlivkaParamSet.java
1 package jalview.ws.slivkaws;
2
3 import jalview.ws.params.ArgumentI;
4 import jalview.ws.params.WsParamSetI;
5 import jalview.ws.params.simple.BooleanOption;
6 import jalview.ws.params.simple.DoubleParameter;
7 import jalview.ws.params.simple.IntegerParameter;
8 import jalview.ws.params.simple.StringParameter;
9
10 import java.io.IOException;
11 import java.util.ArrayList;
12 import java.util.List;
13
14 import uk.ac.dundee.compbio.slivkaclient.BooleanField;
15 import uk.ac.dundee.compbio.slivkaclient.ChoiceField;
16 import uk.ac.dundee.compbio.slivkaclient.DecimalField;
17 import uk.ac.dundee.compbio.slivkaclient.FormField;
18 import uk.ac.dundee.compbio.slivkaclient.IntegerField;
19 import uk.ac.dundee.compbio.slivkaclient.SlivkaForm;
20 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
21 import uk.ac.dundee.compbio.slivkaclient.TextField;
22
23
24
25 public class SlivkaParamSet implements WsParamSetI
26 {
27   private SlivkaService service;
28   private List<ArgumentI> args = new ArrayList<>();
29
30   SlivkaParamSet(SlivkaService service) throws IOException {
31     this.service = service;
32     SlivkaForm form = service.getForm();
33     for (FormField field : form.getFields())
34     {
35       ArgumentI arg;
36       switch (field.getType()) {
37       case BOOLEAN:
38         BooleanField boolField = (BooleanField) field;
39         arg = new BooleanOption(
40             field.getName(), field.getDescription(), field.isRequired(),
41             boolField.getDefault(), boolField.getDefault(), null
42         );
43         break;
44       case TEXT:
45         TextField textField = (TextField) field;
46         arg = new StringParameter(
47             field.getName(), field.getDescription(), field.isRequired(),
48             textField.getDefault(), textField.getDefault()
49         );
50         break;
51       case INTEGER:
52         IntegerField intField = (IntegerField) field;
53         arg = new IntegerParameter(
54             field.getName(), field.getDescription(), field.isRequired(),
55             intField.getDefault(), intField.getMin(), intField.getMax()
56         );
57         break;
58       case DECIMAL:
59         DecimalField doubleField = (DecimalField) field;
60         arg = new DoubleParameter(
61             field.getName(), field.getDescription(), field.isRequired(),
62             doubleField.getDefault(), doubleField.getMin(),
63             doubleField.getMax()
64         );
65         break;
66       case CHOICE:
67         ChoiceField choiceField = (ChoiceField) field;
68         List<String> choices = new ArrayList<>(choiceField.getChoices());
69         arg = new StringParameter(field.getName(), field.getDescription(),
70             field.isRequired(), choiceField.getDefault(), choiceField.getDefault(),
71             choices, choices
72         );
73         break;
74       case FILE:
75       default:
76         continue;
77       }
78       args.add(arg);
79     }
80   }
81
82   @Override
83   public String getName()
84   {
85     return "Default";
86   }
87
88   @Override
89   public String getDescription()
90   {
91     return "";
92   }
93
94   @Override
95   public String[] getApplicableUrls()
96   {
97     return new String[] { service.getURL().toString() };
98   }
99
100   @Override
101   public String getSourceFile()
102   {
103     return null;
104   }
105
106   @Override
107   public void setSourceFile(String newfile)
108   {
109   }
110
111   @Override
112   public boolean isModifiable()
113   {
114     return true;
115   }
116
117   @Override
118   public List<ArgumentI> getArguments()
119   {
120     return args;
121   }
122
123   @Override
124   public void setArguments(List<ArgumentI> args)
125   {
126     throw new RuntimeException();
127   }
128
129 }