X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FWsJobParameters.java;h=c1a925d1ca57249c3f2ea72deb21ed98f991ab9c;hb=e016e819d1f9d851aa28a273414b4432c2137858;hp=0ddb9ffbbc4b8fa610ea44cf9801c1d0d3c9e538;hpb=c794c5033adeee182b03a5ea92c0a7495a29661f;p=jalview.git diff --git a/src/jalview/gui/WsJobParameters.java b/src/jalview/gui/WsJobParameters.java index 0ddb9ff..c1a925d 100644 --- a/src/jalview/gui/WsJobParameters.java +++ b/src/jalview/gui/WsJobParameters.java @@ -48,14 +48,18 @@ import java.awt.event.ItemListener; import java.util.Hashtable; 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; import javax.swing.JDialog; +import javax.swing.JFrame; 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; @@ -93,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. */ @@ -123,13 +130,22 @@ 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; UIinfo service; @@ -195,18 +211,16 @@ public class WsJobParameters extends JPanel implements ItemListener, * * @return */ - public boolean showRunDialog() + public CompletionStage showRunDialog() { - - frame = new JDialog(Desktop.instance, true); + 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), @@ -226,9 +240,9 @@ public class WsJobParameters extends JPanel implements ItemListener, } }); + frame.setVisible(true); - - return startJob; + return completionStage; } private void jbInit() @@ -252,75 +266,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( @@ -415,20 +375,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) { @@ -446,7 +406,7 @@ public class WsJobParameters extends JPanel implements ItemListener, paramStore.deletePreset(lastParmSet2); } - protected void delete_actionPerformed() + protected void delete_actionPerformed(ActionEvent e) { if (isUserPreset) { @@ -457,7 +417,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) @@ -476,22 +436,24 @@ 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 paramSet, List jobArgset) @@ -1038,13 +1000,13 @@ public class WsJobParameters extends JPanel implements ItemListener, */ protected void updateWebServiceMenus() { - if (Desktop.instance == null) + if (Desktop.getInstance() == null) { return; } for (AlignFrame alignFrame : Desktop.getAlignFrames()) { - alignFrame.BuildWebServiceMenu(); + alignFrame.buildWebServicesMenu(); } }