JAL-3066 Sequence annotation services.
[jalview.git] / src / jalview / ws / jws2 / JabaWsParamTest.java
1 package jalview.ws.jws2;
2
3 import jalview.gui.WsJobParameters;
4 import jalview.util.MessageManager;
5 import jalview.ws.jws2.jabaws2.Jws2Instance;
6
7 import java.awt.BorderLayout;
8 import java.awt.event.WindowEvent;
9 import java.awt.event.WindowListener;
10 import java.util.Iterator;
11 import java.util.List;
12 import java.util.Vector;
13
14 import javax.swing.JFrame;
15 import javax.swing.JPanel;
16
17 import compbio.metadata.Option;
18 import compbio.metadata.Parameter;
19 import compbio.metadata.Preset;
20 import compbio.metadata.PresetManager;
21
22 public class JabaWsParamTest
23 {
24
25   /**
26    * testing method - grab a service and parameter set and show the window
27    * 
28    * @param args
29    */
30   public static void main(String[] args)
31   {
32     jalview.ws.jws2.Jws2Discoverer disc = jalview.ws.jws2.Jws2Discoverer
33             .getDiscoverer();
34     int p = 0;
35     if (args.length > 0)
36     {
37       Vector<String> services = new Vector<>();
38       services.addElement(args[p++]);
39       Jws2Discoverer.getDiscoverer().setServiceUrls(services);
40     }
41     try
42     {
43       disc.run();
44     } catch (Exception e)
45     {
46       System.err.println("Aborting. Problem discovering services.");
47       e.printStackTrace();
48       return;
49     }
50     Jws2Instance lastserv = null;
51     for (Jws2Instance service : disc.getServices())
52     {
53       lastserv = service;
54       if (p >= args.length || service.getName().equalsIgnoreCase(args[p]))
55       {
56         if (lastserv != null)
57         {
58           List<Preset> prl = null;
59           Preset pr = null;
60           if (++p < args.length)
61           {
62             PresetManager prman = lastserv.getPresets();
63             if (prman != null)
64             {
65               pr = prman.getPresetByName(args[p]);
66               if (pr == null)
67               {
68                 // just grab the last preset.
69                 prl = prman.getPresets();
70               }
71             }
72           }
73           else
74           {
75             PresetManager prman = lastserv.getPresets();
76             if (prman != null)
77             {
78               prl = prman.getPresets();
79             }
80           }
81           Iterator<Preset> en = (prl == null) ? null : prl.iterator();
82           while (en != null && en.hasNext())
83           {
84             if (en != null)
85             {
86               if (!en.hasNext())
87               {
88                 en = prl.iterator();
89               }
90               pr = en.next();
91             }
92             {
93               System.out.println("Testing opts dupes for "
94                       + lastserv.getUri() + " : " + lastserv.getActionText()
95                       + ":" + pr.getName());
96               List<Option> rg = lastserv.getRunnerConfig().getOptions();
97               for (Option o : rg)
98               {
99                 try
100                 {
101                   Option cpy = jalview.ws.jws2.ParameterUtils.copyOption(o);
102                 } catch (Exception e)
103                 {
104                   System.err.println("Failed to copy " + o.getName());
105                   e.printStackTrace();
106                 } catch (Error e)
107                 {
108                   System.err.println("Failed to copy " + o.getName());
109                   e.printStackTrace();
110                 }
111               }
112             }
113             {
114               System.out.println("Testing param dupes:");
115               List<Parameter> rg = lastserv.getRunnerConfig()
116                       .getParameters();
117               for (Parameter o : rg)
118               {
119                 try
120                 {
121                   Parameter cpy = jalview.ws.jws2.ParameterUtils
122                           .copyParameter(o);
123                 } catch (Exception e)
124                 {
125                   System.err.println("Failed to copy " + o.getName());
126                   e.printStackTrace();
127                 } catch (Error e)
128                 {
129                   System.err.println("Failed to copy " + o.getName());
130                   e.printStackTrace();
131                 }
132               }
133             }
134             {
135               System.out.println("Testing param write:");
136               List<String> writeparam = null, readparam = null;
137               try
138               {
139                 writeparam = jalview.ws.jws2.ParameterUtils
140                         .writeParameterSet(
141                                 pr.getArguments(lastserv.getRunnerConfig()),
142                                 " ");
143                 System.out.println("Testing param read :");
144                 List<Option> pset = jalview.ws.jws2.ParameterUtils
145                         .processParameters(writeparam,
146                                 lastserv.getRunnerConfig(), " ");
147                 readparam = jalview.ws.jws2.ParameterUtils
148                         .writeParameterSet(pset, " ");
149                 Iterator<String> o = pr.getOptions().iterator(),
150                         s = writeparam.iterator(), t = readparam.iterator();
151                 boolean failed = false;
152                 while (s.hasNext() && t.hasNext())
153                 {
154                   String on = o.next(), sn = s.next(), st = t.next();
155                   if (!sn.equals(st))
156                   {
157                     System.out.println(
158                             "Original was " + on + " Phase 1 wrote " + sn
159                                     + "\tPhase 2 wrote " + st);
160                     failed = true;
161                   }
162                 }
163                 if (failed)
164                 {
165                   System.out.println(
166                           "Original parameters:\n" + pr.getOptions());
167                   System.out.println(
168                           "Wrote parameters in first set:\n" + writeparam);
169                   System.out.println(
170                           "Wrote parameters in second set:\n" + readparam);
171
172                 }
173               } catch (Exception e)
174               {
175                 e.printStackTrace();
176               }
177             }
178             WsJobParameters pgui = new WsJobParameters(null, lastserv,
179                     new JabaPreset(lastserv, pr), null);
180             JFrame jf = new JFrame(MessageManager
181                     .formatMessage("label.ws_parameters_for", new String[]
182                     { lastserv.getActionText() }));
183             JPanel cont = new JPanel(new BorderLayout());
184             pgui.validate();
185             cont.setPreferredSize(pgui.getPreferredSize());
186             cont.add(pgui, BorderLayout.CENTER);
187             jf.setLayout(new BorderLayout());
188             jf.add(cont, BorderLayout.CENTER);
189             jf.validate();
190             final Thread thr = Thread.currentThread();
191             jf.addWindowListener(new WindowListener()
192             {
193
194               @Override
195               public void windowActivated(WindowEvent e)
196               {
197                 // TODO Auto-generated method stub
198
199               }
200
201               @Override
202               public void windowClosed(WindowEvent e)
203               {
204               }
205
206               @Override
207               public void windowClosing(WindowEvent e)
208               {
209                 thr.interrupt();
210
211               }
212
213               @Override
214               public void windowDeactivated(WindowEvent e)
215               {
216                 // TODO Auto-generated method stub
217
218               }
219
220               @Override
221               public void windowDeiconified(WindowEvent e)
222               {
223                 // TODO Auto-generated method stub
224
225               }
226
227               @Override
228               public void windowIconified(WindowEvent e)
229               {
230                 // TODO Auto-generated method stub
231
232               }
233
234               @Override
235               public void windowOpened(WindowEvent e)
236               {
237                 // TODO Auto-generated method stub
238
239               }
240
241             });
242             jf.setVisible(true);
243             boolean inter = false;
244             while (!inter)
245             {
246               try
247               {
248                 Thread.sleep(10000);
249               } catch (Exception e)
250               {
251                 inter = true;
252               }
253               ;
254             }
255             jf.dispose();
256           }
257         }
258       }
259     }
260   }
261
262 }