X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FWsJobParameters.java;h=42f2ddb5cf0440ab268522e94af8e55ae208e68d;hb=747167089ecf8d6afc70d417f5a20352e029bd95;hp=70e39b4046fce2cce7679801732659efc51121b9;hpb=8e3058ad282e731b0846576a8efbcd8f922d0c69;p=jalview.git diff --git a/src/jalview/gui/WsJobParameters.java b/src/jalview/gui/WsJobParameters.java index 70e39b4..42f2ddb 100644 --- a/src/jalview/gui/WsJobParameters.java +++ b/src/jalview/gui/WsJobParameters.java @@ -20,19 +20,16 @@ */ package jalview.gui; +import jalview.bin.Console; import jalview.gui.OptsAndParamsPage.OptionBox; import jalview.gui.OptsAndParamsPage.ParamBox; import jalview.util.MessageManager; -import jalview.ws.jws2.JabaParamStore; -import jalview.ws.jws2.JabaPreset; -import jalview.ws.jws2.Jws2Discoverer; -import jalview.ws.jws2.jabaws2.Jws2Instance; +import jalview.ws.api.UIinfo; import jalview.ws.params.ArgumentI; import jalview.ws.params.OptionI; import jalview.ws.params.ParamDatastoreI; import jalview.ws.params.ParameterI; import jalview.ws.params.WsParamSetI; - import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; @@ -48,12 +45,11 @@ import java.awt.event.HierarchyBoundsListener; import java.awt.event.HierarchyEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; import java.util.Hashtable; -import java.util.Iterator; import java.util.List; import java.util.Vector; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; import javax.swing.JButton; import javax.swing.JComboBox; @@ -63,15 +59,11 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; +import javax.swing.WindowConstants; import javax.swing.border.TitledBorder; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import compbio.metadata.Argument; -import compbio.metadata.Option; -import compbio.metadata.Parameter; -import compbio.metadata.Preset; -import compbio.metadata.PresetManager; import net.miginfocom.swing.MigLayout; /** @@ -105,6 +97,9 @@ public class WsJobParameters extends JPanel implements ItemListener, // TODO ABSRACT FROM JABAWS CLASSES + // completion stage representing whether start was clicked + private final CompletableFuture completionStage = new CompletableFuture<>(); + /** * manager for options and parameters. */ @@ -135,15 +130,24 @@ public class WsJobParameters extends JPanel implements ItemListener, JTextArea setDescr = new JTextArea(); JScrollPane paramPane = new JScrollPane(); + + JButton startjob = JvSwingUtils.makeButton( + MessageManager.getString("action.start_job"), + MessageManager.getString("label.start_job_current_settings"), + this::startjob_actionPerformed); + JButton canceljob = JvSwingUtils.makeButton( + MessageManager.getString("action.cancel_job"), + MessageManager.getString("label.cancel_job_close_dialog"), + this::canceljob_actionPerformed); ParamDatastoreI paramStore; // set true when 'Start Job' is clicked boolean startJob = false; - JDialog frame = null; + JFrame frame = null; - Jws2Instance service; + UIinfo service; /* * list of service presets in the gui @@ -169,7 +173,7 @@ public class WsJobParameters extends JPanel implements ItemListener, jbInit(); this.paramStore = store; this.service = null; - init(preset, args); + initForService(preset, args); validate(); } @@ -182,14 +186,12 @@ public class WsJobParameters extends JPanel implements ItemListener, * @param preset * @param jobArgset */ - public WsJobParameters(ParamDatastoreI paramStorei, Jws2Instance service, - WsParamSetI preset, List jobArgset) + public WsJobParameters(ParamDatastoreI paramStorei, UIinfo service, + WsParamSetI preset, List jobArgset) { super(); - // parameters dialog in 'expanded' format (help text boxes) opanp = new OptsAndParamsPage(this, false); - jbInit(); this.paramStore = paramStorei; if (paramStore == null && service != null) @@ -201,24 +203,25 @@ public class WsJobParameters extends JPanel implements ItemListener, validate(); } + /** * Shows a modal dialog containing the parameters and Start or Cancel options. * Answers true if the job is started, false if cancelled. * * @return */ - public boolean showRunDialog() + public CompletionStage showRunDialog() { - frame = new JDialog(Desktop.instance, true); + // Should JFrame hahve a parent of getDesktop ? + frame = new JFrame(); + frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); if (service != null) { frame.setTitle(MessageManager.formatMessage("label.edit_params_for", - new String[] - { service.getActionText() })); + new String[] { service.getActionText() })); } - - Rectangle deskr = Desktop.instance.getBounds(); + Rectangle deskr = Desktop.getInstance().getBounds(); Dimension pref = this.getPreferredSize(); frame.setBounds( new Rectangle((int) (deskr.getCenterX() - pref.width / 2), @@ -238,9 +241,10 @@ public class WsJobParameters extends JPanel implements ItemListener, } }); + frame.setVisible(true); - return startJob; + return completionStage; } private void jbInit() @@ -264,75 +268,21 @@ public class WsJobParameters extends JPanel implements ItemListener, updatepref = JvSwingUtils.makeButton( MessageManager.getString("action.update"), MessageManager.getString("label.update_user_parameter_set"), - new ActionListener() - { - - @Override - public void actionPerformed(ActionEvent e) - { - update_actionPerformed(); - } - }); + this::update_actionPerformed); deletepref = JvSwingUtils.makeButton( MessageManager.getString("action.delete"), MessageManager.getString("label.delete_user_parameter_set"), - new ActionListener() - { - - @Override - public void actionPerformed(ActionEvent e) - { - delete_actionPerformed(); - } - }); + this::delete_actionPerformed); createpref = JvSwingUtils.makeButton( MessageManager.getString("action.create"), MessageManager.getString("label.create_user_parameter_set"), - new ActionListener() - { - - @Override - public void actionPerformed(ActionEvent e) - { - create_actionPerformed(); - } - }); + this::create_actionPerformed); revertpref = JvSwingUtils.makeButton( MessageManager.getString("action.revert"), MessageManager .getString("label.revert_changes_user_parameter_set"), - new ActionListener() - { + this::revert_actionPerformed); - @Override - public void actionPerformed(ActionEvent e) - { - revert_actionPerformed(); - } - }); - - JButton startjob = JvSwingUtils.makeButton( - MessageManager.getString("action.start_job"), - MessageManager.getString("label.start_job_current_settings"), - new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - startjob_actionPerformed(); - } - }); - JButton canceljob = JvSwingUtils.makeButton( - MessageManager.getString("action.cancel_job"), - MessageManager.getString("label.cancel_job_close_dialog"), - new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - canceljob_actionPerformed(); - } - }); JPanel setDetails = new JPanel(); setDetails.setBorder( @@ -411,7 +361,6 @@ public class WsJobParameters extends JPanel implements ItemListener, paramPane.getViewport().setView(jp); paramPane.setBorder(null); setLayout(new BorderLayout()); - JPanel jobPanel = new JPanel(); jobPanel.setPreferredSize(null); jobPanel.setLayout(new BorderLayout()); @@ -427,20 +376,20 @@ public class WsJobParameters extends JPanel implements ItemListener, dialogpanel.add(canceljob); // JAL-1580: setMaximumSize() doesn't work, so just size for the worst case: // check for null is for JUnit usage - final int windowHeight = Desktop.instance == null ? DEFAULT_HEIGHT - : Desktop.instance.getHeight(); - // setPreferredSize(new Dimension(PREFERRED_WIDTH, windowHeight)); + final int windowHeight = Desktop.getInstance() == null ? DEFAULT_HEIGHT + : Desktop.getInstance().getHeight(); + setPreferredSize(new Dimension(540, windowHeight)); add(dialogpanel, BorderLayout.SOUTH); validate(); } - protected void revert_actionPerformed() + protected void revert_actionPerformed(ActionEvent e) { reInitDialog(lastParmSet); updateWebServiceMenus(); } - protected void update_actionPerformed() + protected void update_actionPerformed(ActionEvent e) { if (isUserPreset) { @@ -458,7 +407,7 @@ public class WsJobParameters extends JPanel implements ItemListener, paramStore.deletePreset(lastParmSet2); } - protected void delete_actionPerformed() + protected void delete_actionPerformed(ActionEvent e) { if (isUserPreset) { @@ -469,7 +418,7 @@ public class WsJobParameters extends JPanel implements ItemListener, updateWebServiceMenus(); } - protected void create_actionPerformed() + protected void create_actionPerformed(ActionEvent e) { String curname = ((String) setName.getSelectedItem()).trim(); if (curname.length() > 0) @@ -488,37 +437,31 @@ public class WsJobParameters extends JPanel implements ItemListener, } } - protected void canceljob_actionPerformed() + protected void canceljob_actionPerformed(ActionEvent e) { startJob = false; if (frame != null) { frame.setVisible(false); } + completionStage.complete(false); } - protected void startjob_actionPerformed() + protected void startjob_actionPerformed(ActionEvent e) { startJob = true; if (frame != null) { frame.setVisible(false); } + completionStage.complete(true); } - void initForService(WsParamSetI jabap, List jabajobArgset) + void initForService(WsParamSetI paramSet, List jobArgset) { - WsParamSetI p = null; - List jobArgset = null; settingDialog = true; - { // instantiate the abstract proxy for Jaba objects - jobArgset = jabajobArgset == null ? null - : JabaParamStore.getJwsArgsfromJaba(jabajobArgset); - p = jabap; // (jabap != null) ? paramStore.getPreset(jabap.getName()) : - // null; - } - init(p, jobArgset); + init(paramSet, jobArgset); } @@ -537,7 +480,6 @@ public class WsJobParameters extends JPanel implements ItemListener, exnames.put(SVC_DEF, SVC_DEF); servicePresets.put(SVC_DEF, SVC_DEF); } - // String curname = (p == null ? "" : p.getName()); for (WsParamSetI pr : paramStore.getPresets()) { @@ -578,6 +520,7 @@ public class WsJobParameters extends JPanel implements ItemListener, } } settingDialog = false; + } private void updateTable(WsParamSetI p, List jobArgset) @@ -687,6 +630,7 @@ public class WsJobParameters extends JPanel implements ItemListener, return modifiedElements.size() > 0; } + /** * reset gui and modification state settings */ @@ -927,242 +871,6 @@ public class WsJobParameters extends JPanel implements ItemListener, revalidate(); } - /** - * testing method - grab a service and parameter set and show the window - * - * @param args - */ - public static void main(String[] args) - { - jalview.ws.jws2.Jws2Discoverer disc = jalview.ws.jws2.Jws2Discoverer - .getDiscoverer(); - int p = 0; - if (args.length > 0) - { - Vector services = new Vector<>(); - services.addElement(args[p++]); - Jws2Discoverer.getDiscoverer().setServiceUrls(services); - } - try - { - disc.run(); - } catch (Exception e) - { - System.err.println("Aborting. Problem discovering services."); - e.printStackTrace(); - return; - } - Jws2Instance lastserv = null; - for (Jws2Instance service : disc.getServices()) - { - lastserv = service; - if (p >= args.length || service.getName().equalsIgnoreCase(args[p])) - { - if (lastserv != null) - { - List prl = null; - Preset pr = null; - if (++p < args.length) - { - PresetManager prman = lastserv.getPresets(); - if (prman != null) - { - pr = prman.getPresetByName(args[p]); - if (pr == null) - { - // just grab the last preset. - prl = prman.getPresets(); - } - } - } - else - { - PresetManager prman = lastserv.getPresets(); - if (prman != null) - { - prl = prman.getPresets(); - } - } - Iterator 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