--- /dev/null
+package jalview.ws.gui;
+
+import static org.junit.Assert.assertTrue;
+import jalview.gui.WsJobParameters;
+import jalview.ws.jws2.JabaPreset;
+import jalview.ws.jws2.Jws2Discoverer;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+
+import java.awt.BorderLayout;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+import org.junit.Test;
+
+import compbio.metadata.Option;
+import compbio.metadata.Parameter;
+import compbio.metadata.Preset;
+import compbio.metadata.PresetManager;
+
+public class Jws2ParamView
+{
+ /**
+ * test servers
+ */
+ public static String[] serviceUrls = new String[]
+ { "http://localhost:8080/jabaws" };
+
+ /**
+ * which services to test
+ */
+ public static List<String> serviceTests = new ArrayList<String>();
+
+ /**
+ * which presets to test for services
+ */
+ public static List<String> presetTests = new ArrayList<String>();
+ static
+ {
+ serviceTests.add("AAConWS".toLowerCase());
+ }
+
+ @Test
+ public void testJws2Gui()
+ {
+ jalview.ws.jws2.Jws2Discoverer disc = jalview.ws.jws2.Jws2Discoverer
+ .getDiscoverer();
+ int p = 0;
+ String svcurls="";
+ Vector<String> services = new Vector<String>();
+ for (String url : serviceUrls)
+ {
+ svcurls+=url+"; ";
+ services.add(url);
+ }
+ ;
+ Jws2Discoverer.setServiceUrls(services);
+
+ try
+ {
+ disc.run();
+ } catch (Exception e)
+ {
+ System.err.println("Aborting. Problem discovering services. Tried "+svcurls);
+ e.printStackTrace();
+ return;
+ }
+ assertTrue("Failed to discover any services at ",
+ disc.getServices().size() > 0);
+ Jws2Instance lastserv = null;
+ Iterator<String> presetEnum = presetTests.iterator();
+ for (Jws2Instance service : disc.getServices())
+ {
+ lastserv = service;
+ if (serviceTests.size() == 0
+ || serviceTests.contains(service.serviceType.toLowerCase()))
+ {
+ if (lastserv != null)
+ {
+ List<Preset> prl = null;
+ Preset pr = null;
+ if (presetEnum.hasNext())
+ {
+ PresetManager prman = lastserv.getPresets();
+ if (prman != null)
+ {
+ pr = prman.getPresetByName(presetEnum.next());
+ if (pr == null)
+ {
+ // just grab the last preset.
+ prl = prman.getPresets();
+ }
+ }
+ }
+ else
+ {
+ PresetManager prman = lastserv.getPresets();
+ if (prman != null)
+ {
+ prl = prman.getPresets();
+ }
+ }
+ Iterator<Preset> en = (prl == null) ? null : prl.iterator();
+ while (en != null && en.hasNext())
+ {
+ if (en != null)
+ {
+ if (!en.hasNext())
+ {
+ en = prl.iterator();
+ }
+ pr = en.next();
+ }
+ {
+ System.out.println("Testing opts dupes for "
+ + lastserv.getUri() + " : "
+ + lastserv.getActionText() + ":" + pr.getName());
+ List<Option> rg = lastserv.getRunnerConfig().getOptions();
+ for (Option o : rg)
+ {
+ try
+ {
+ Option cpy = jalview.ws.jws2.ParameterUtils.copyOption(o);
+ } catch (Exception e)
+ {
+ System.err.println("Failed to copy " + o.getName());
+ e.printStackTrace();
+ } catch (Error e)
+ {
+ System.err.println("Failed to copy " + o.getName());
+ e.printStackTrace();
+ }
+ }
+ }
+ {
+ System.out.println("Testing param dupes:");
+ List<Parameter> rg = lastserv.getRunnerConfig()
+ .getParameters();
+ for (Parameter o : rg)
+ {
+ try
+ {
+ Parameter cpy = jalview.ws.jws2.ParameterUtils
+ .copyParameter(o);
+ } catch (Exception e)
+ {
+ System.err.println("Failed to copy " + o.getName());
+ e.printStackTrace();
+ } catch (Error e)
+ {
+ System.err.println("Failed to copy " + o.getName());
+ e.printStackTrace();
+ }
+ }
+ }
+ {
+ System.out.println("Testing param write:");
+ List<String> writeparam = null, readparam = null;
+ try
+ {
+ writeparam = jalview.ws.jws2.ParameterUtils
+ .writeParameterSet(
+ pr.getArguments(lastserv.getRunnerConfig()),
+ " ");
+ System.out.println("Testing param read :");
+ List<Option> pset = jalview.ws.jws2.ParameterUtils
+ .processParameters(writeparam,
+ lastserv.getRunnerConfig(), " ");
+ readparam = jalview.ws.jws2.ParameterUtils
+ .writeParameterSet(pset, " ");
+ Iterator<String> o = pr.getOptions().iterator(), s = writeparam
+ .iterator(), t = readparam.iterator();
+ boolean failed = false;
+ while (s.hasNext() && t.hasNext())
+ {
+ String on = o.next(), sn = s.next(), st = t.next();
+ if (!sn.equals(st))
+ {
+ System.out.println("Original was " + on
+ + " Phase 1 wrote " + sn + "\tPhase 2 wrote "
+ + st);
+ failed = true;
+ }
+ }
+ if (failed)
+ {
+ System.out.println("Original parameters:\n"
+ + pr.getOptions());
+ System.out.println("Wrote parameters in first set:\n"
+ + writeparam);
+ System.out.println("Wrote parameters in second set:\n"
+ + readparam);
+
+ }
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ WsJobParameters pgui = new WsJobParameters(lastserv,
+ new JabaPreset(lastserv, pr));
+ JFrame jf = new JFrame("Parameters for "
+ + lastserv.getActionText());
+ JPanel cont = new JPanel(new BorderLayout());
+ pgui.validate();
+ cont.setPreferredSize(pgui.getPreferredSize());
+ cont.add(pgui, BorderLayout.CENTER);
+ jf.setLayout(new BorderLayout());
+ jf.add(cont, BorderLayout.CENTER);
+ jf.validate();
+ final Thread thr = Thread.currentThread();
+ jf.addWindowListener(new WindowListener()
+ {
+
+ public void windowActivated(WindowEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void windowClosed(WindowEvent e)
+ {
+ }
+
+ public void windowClosing(WindowEvent e)
+ {
+ thr.interrupt();
+
+ }
+
+ public void windowDeactivated(WindowEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void windowDeiconified(WindowEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void windowIconified(WindowEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void windowOpened(WindowEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ });
+ jf.setVisible(true);
+ boolean inter = false;
+ while (!inter)
+ {
+ try
+ {
+ Thread.sleep(10000);
+ } catch (Exception e)
+ {
+ inter = true;
+ }
+ ;
+ }
+ jf.dispose();
+ }
+ }
+ }
+ }
+ }
+}