*/
package jalview.gui;
+import jalview.bin.Console;
import jalview.gui.OptsAndParamsPage.OptionBox;
import jalview.gui.OptsAndParamsPage.ParamBox;
import jalview.util.MessageManager;
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;
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;
// TODO ABSRACT FROM JABAWS CLASSES
+ // completion stage representing whether start was clicked
+ private final CompletableFuture<Boolean> completionStage = new CompletableFuture<>();
+
/**
* manager for options and parameters.
*/
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;
jbInit();
this.paramStore = store;
this.service = null;
- init(preset, args);
+ initForService(preset, args);
validate();
}
WsParamSetI preset, List<ArgumentI> jobArgset)
{
super();
-
// parameters dialog in 'expanded' format (help text boxes)
opanp = new OptsAndParamsPage(this, false);
-
jbInit();
this.paramStore = paramStorei;
if (paramStore == null && service != null)
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<Boolean> showRunDialog()
{
- frame = new JDialog(Desktop.getInstance(), 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() }));
}
- frame.setTitle(MessageManager.formatMessage("label.edit_params_for",
- new String[]
- { service.getActionText() }));
Rectangle deskr = Desktop.getInstance().getBounds();
Dimension pref = this.getPreferredSize();
frame.setBounds(
}
});
+
frame.setVisible(true);
- return startJob;
+ return completionStage;
}
private void jbInit()
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(
paramPane.getViewport().setView(jp);
paramPane.setBorder(null);
setLayout(new BorderLayout());
-
JPanel jobPanel = new JPanel();
jobPanel.setPreferredSize(null);
jobPanel.setLayout(new BorderLayout());
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)
{
paramStore.deletePreset(lastParmSet2);
}
- protected void delete_actionPerformed()
+ protected void delete_actionPerformed(ActionEvent e)
{
if (isUserPreset)
{
updateWebServiceMenus();
}
- protected void create_actionPerformed()
+ protected void create_actionPerformed(ActionEvent e)
{
String curname = ((String) setName.getSelectedItem()).trim();
if (curname.length() > 0)
}
}
- 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<ArgumentI> jobArgset)
exnames.put(SVC_DEF, SVC_DEF);
servicePresets.put(SVC_DEF, SVC_DEF);
}
-
// String curname = (p == null ? "" : p.getName());
for (WsParamSetI pr : paramStore.getPresets())
{
}
}
settingDialog = false;
+
}
private void updateTable(WsParamSetI p, List<ArgumentI> jobArgset)
return modifiedElements.size() > 0;
}
+
/**
* reset gui and modification state settings
*/
paramPane.revalidate();
revalidate();
}
+
+
public boolean isServiceDefaults()
{
return (!isModified()
return opanp.getCurrentSettings();
}
+
/*
* Hashtable<String, Object[]> editedParams = new Hashtable<String,
* Object[]>();
&& e.getStateChange() == ItemEvent.SELECTED)
{
final String setname = (String) setName.getSelectedItem();
- // System.out.println("Item state changed for " + setname
- // + " (handling ? " + !settingDialog + ")");
+ if (Console.isDebugEnabled())
+ {
+ Console.debug("Item state changed for " + setname + " (handling ? "
+ + !settingDialog + ")");
+ }
if (settingDialog)
{
// ignore event