X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FWsJobParameters.java;h=bf97b6a8a09b308c294344093886b8d6828ea5a7;hb=499fbdac5e7260dcfd51456e0b7eb1dd7ff613b5;hp=f3f1ba8c443a77f985772cbbb163f16d9bb857f8;hpb=2f4f1d8fb6878271b64f327bc58c895f458137af;p=jalview.git diff --git a/src/jalview/gui/WsJobParameters.java b/src/jalview/gui/WsJobParameters.java index f3f1ba8..bf97b6a 100644 --- a/src/jalview/gui/WsJobParameters.java +++ b/src/jalview/gui/WsJobParameters.java @@ -1,19 +1,21 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.gui; @@ -59,7 +61,6 @@ import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; -import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; @@ -68,14 +69,13 @@ import javax.swing.border.TitledBorder; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import net.miginfocom.swing.MigLayout; - import compbio.metadata.Argument; import compbio.metadata.Option; import compbio.metadata.Parameter; import compbio.metadata.Preset; import compbio.metadata.PresetManager; import compbio.metadata.RunnerConfig; +import net.miginfocom.swing.MigLayout; /** * job parameter editing/browsing dialog box. User can browse existing settings @@ -95,6 +95,10 @@ import compbio.metadata.RunnerConfig; public class WsJobParameters extends JPanel implements ItemListener, ActionListener, DocumentListener, OptsParametersContainerI { + private static final int PREFERRED_WIDTH = 540; + + private static final int DEFAULT_HEIGHT = 640; + URL linkImageURL = getClass().getResource("/images/link.gif"); private static final String SVC_DEF = "Defaults"; // this is the null @@ -158,46 +162,57 @@ public class WsJobParameters extends JPanel implements ItemListener, this(service, null); } + public WsJobParameters(ParamDatastoreI store, WsParamSetI preset, + List args) + { + super(); + jbInit(); + this.paramStore = store; + this.service = null; + // argSetModified(false); + // populate parameter table + init(preset, args); + // display in new JFrame attached to parent. + validate(); + } + public WsJobParameters(Jws2Instance service, WsParamSetI preset) { - this(null, service, preset, null); + this(service, preset, null); } /** * - * @param desktop - * - if null, create new JFrame outside of desktop * @param service * @param preset */ - public WsJobParameters(JFrame parent, Jws2Instance service, + public WsJobParameters(Jws2Instance service, WsParamSetI preset, List jobArgset) { - this(parent, null, service, preset, jobArgset); + this(null, service, preset, jobArgset); } /** * - * @param parent * @param paramStorei * @param service * @param preset * @param jobArgset */ - public WsJobParameters(JFrame parent, ParamDatastoreI paramStorei, - Jws2Instance service, WsParamSetI preset, List jobArgset) + public WsJobParameters(ParamDatastoreI paramStorei, Jws2Instance service, + WsParamSetI preset, List jobArgset) { super(); jbInit(); this.paramStore = paramStorei; - if (paramStore == null) + if (paramStore == null && service != null) { paramStore = service.getParamStore(); } this.service = service; // argSetModified(false); // populate parameter table - initForService(service, preset, jobArgset); + initForService(preset, jobArgset); // display in new JFrame attached to parent. validate(); } @@ -215,14 +230,19 @@ public class WsJobParameters extends JPanel implements ItemListener, { frame = new JDialog(Desktop.instance, true); + if (service != null) + { + frame.setTitle(MessageManager.formatMessage("label.edit_params_for", + new String[] + { service.getActionText() })); + } - frame.setTitle("Edit parameters for " + service.getActionText()); Rectangle deskr = Desktop.instance.getBounds(); Dimension pref = this.getPreferredSize(); - frame.setBounds(new Rectangle( - (int) (deskr.getCenterX() - pref.width / 2), (int) (deskr - .getCenterY() - pref.height / 2), pref.width, - pref.height)); + frame.setBounds( + new Rectangle((int) (deskr.getCenterX() - pref.width / 2), + (int) (deskr.getCenterY() - pref.height / 2), + pref.width, pref.height)); frame.setContentPane(this); // should perhaps recover defaults from user prefs. @@ -230,6 +250,7 @@ public class WsJobParameters extends JPanel implements ItemListener, frame.validate(); javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { // jobPanel.setDividerLocation(0.25); @@ -263,64 +284,80 @@ public class WsJobParameters extends JPanel implements ItemListener, } }); - updatepref = JvSwingUtils.makeButton("Update", - "Update this existing user parameter set.", + updatepref = JvSwingUtils.makeButton( + MessageManager.getString("action.update"), + MessageManager.getString("label.update_user_parameter_set"), new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { update_actionPerformed(e); } }); - deletepref = JvSwingUtils.makeButton("Delete", - "Delete the currently selected user parameter set.", + deletepref = JvSwingUtils.makeButton( + MessageManager.getString("action.delete"), + MessageManager.getString("label.delete_user_parameter_set"), new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { delete_actionPerformed(e); } }); - createpref = JvSwingUtils.makeButton("Create", - "Create a new parameter set with the current settings.", + createpref = JvSwingUtils.makeButton( + MessageManager.getString("action.create"), + MessageManager.getString("label.create_user_parameter_set"), new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { create_actionPerformed(e); } }); - revertpref = JvSwingUtils.makeButton("Revert", - "Undo all changes to the current parameter set", + revertpref = JvSwingUtils.makeButton( + MessageManager.getString("action.revert"), + MessageManager + .getString("label.revert_changes_user_parameter_set"), new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { revert_actionPerformed(e); } }); - startjob = JvSwingUtils.makeButton("Start Job", - "Start Job with current settings.", new ActionListener() + 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(e); } }); - canceljob = JvSwingUtils.makeButton("Cancel Job", - "Close this dialog and cancel job.", new ActionListener() + 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(e); } }); - setDetails.setBorder(new TitledBorder("Details")); + setDetails.setBorder( + new TitledBorder(MessageManager.getString("label.details"))); setDetails.setLayout(new BorderLayout()); setDescr.setColumns(40); setDescr.setWrapStyleWord(true); @@ -328,9 +365,9 @@ public class WsJobParameters extends JPanel implements ItemListener, setDescr.setBackground(getBackground()); setDescr.setEditable(true); setDescr.getDocument().addDocumentListener(this); - setDescr.setToolTipText("Click to edit the notes for this parameter set."); + setDescr.setToolTipText( + MessageManager.getString("label.edit_notes_parameter_set")); JScrollPane setDescrView = new JScrollPane(); - // setDescrView.setPreferredSize(new Dimension(350, 200)); setDescrView.getViewport().setView(setDescr); setName.setEditable(true); setName.addItemListener(this); @@ -339,7 +376,8 @@ public class WsJobParameters extends JPanel implements ItemListener, GridBagLayout gbl = new GridBagLayout(); SetNamePanel.setLayout(gbl); - JLabel setNameLabel = new JLabel(MessageManager.getString("label.current_parameter_set_name")); + JLabel setNameLabel = new JLabel( + MessageManager.getString("label.current_parameter_set_name")); setNameLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10)); setNameInfo.add(setNameLabel); @@ -378,12 +416,14 @@ public class WsJobParameters extends JPanel implements ItemListener, // paramPane.setPreferredSize(new Dimension(360, 400)); // paramPane.setPreferredSize(null); - jobOptions.setBorder(new TitledBorder("Options")); + jobOptions.setBorder( + new TitledBorder(MessageManager.getString("label.options"))); jobOptions.setOpaque(true); - paramList.setBorder(new TitledBorder("Parameters")); + paramList.setBorder( + new TitledBorder(MessageManager.getString("label.parameters"))); paramList.setOpaque(true); - JPanel bjo = new JPanel(new BorderLayout()), bjp = new JPanel( - new BorderLayout()); + JPanel bjo = new JPanel(new BorderLayout()); + JPanel bjp = new JPanel(new BorderLayout()); bjo.add(jobOptions, BorderLayout.CENTER); bjp.add(paramList, BorderLayout.CENTER); bjp.setOpaque(true); @@ -411,6 +451,11 @@ public class WsJobParameters extends JPanel implements ItemListener, JPanel dialogpanel = new JPanel(); dialogpanel.add(startjob); 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)); add(dialogpanel, BorderLayout.SOUTH); validate(); } @@ -418,7 +463,7 @@ public class WsJobParameters extends JPanel implements ItemListener, protected void revert_actionPerformed(ActionEvent e) { reInitDialog(lastParmSet); - + updateWebServiceMenus(); } protected void update_actionPerformed(ActionEvent e) @@ -447,6 +492,7 @@ public class WsJobParameters extends JPanel implements ItemListener, _deleteUserPreset(lastParmSet); } reInitDialog(null); // service default + updateWebServiceMenus(); } protected void create_actionPerformed(ActionEvent e) @@ -457,7 +503,9 @@ public class WsJobParameters extends JPanel implements ItemListener, _storeCurrentPreset(curname); lastParmSet = curname; isUserPreset = true; + reInitDialog(curname); initArgSetModified(); + updateWebServiceMenus(); } else { @@ -496,23 +544,28 @@ public class WsJobParameters extends JPanel implements ItemListener, */ boolean settingDialog = false; - void initForService(Jws2Instance service, WsParamSetI jabap, - List jabajobArgset) + void initForService(WsParamSetI jabap, List jabajobArgset) { WsParamSetI p = null; List jobArgset = null; settingDialog = true; { // instantiate the abstract proxy for Jaba objects - jobArgset = jabajobArgset == null ? null : JabaParamStore - .getJwsArgsfromJaba(jabajobArgset); + jobArgset = jabajobArgset == null ? null + : JabaParamStore.getJwsArgsfromJaba(jabajobArgset); p = jabap; // (jabap != null) ? paramStore.getPreset(jabap.getName()) : // null; } + init(p, jobArgset); + + } + + void init(WsParamSetI p, List jobArgset) + { Hashtable exnames = new Hashtable(); for (int i = 0, iSize = setName.getItemCount(); i < iSize; i++) { - exnames.put((String) setName.getItemAt(i), setName.getItemAt(i)); + exnames.put(setName.getItemAt(i), setName.getItemAt(i)); } servicePresets = new Hashtable(); // Add the default entry - if not present already. @@ -562,23 +615,21 @@ public class WsJobParameters extends JPanel implements ItemListener, } } settingDialog = false; - } - @SuppressWarnings("unchecked") private void updateTable(WsParamSetI p, List jobArgset) { - boolean setDefaultParams=false; + boolean setDefaultParams = false; if (lastParmSet == null) { isUserPreset = false; // First call - so provide Service default settings setName.setSelectedItem(lastSetName = SVC_DEF); } - if (p==null && SVC_DEF.equals(""+setName.getSelectedItem())) + if (p == null && SVC_DEF.equals("" + setName.getSelectedItem())) { // indicate that service defaults should be set if available - setDefaultParams=true; + setDefaultParams = true; } // populate table from default parameter set. List args = paramStore.getServiceParameters(); @@ -586,9 +637,9 @@ public class WsJobParameters extends JPanel implements ItemListener, // split to params and required arguments { int cw = 0; - boolean optset=false; + boolean optset = false; for (ArgumentI myarg : args) - { + { // Ideally, Argument would implement isRequired ! if (myarg instanceof ParameterI) { @@ -687,7 +738,8 @@ public class WsJobParameters extends JPanel implements ItemListener, private void updateButtonDisplay() { - boolean _update = false, _create = false, _delete = false, _revert = false; + boolean _update = false, _create = false, _delete = false, + _revert = false; if (modifiedElements.size() > 0) { // set modified @@ -713,6 +765,7 @@ public class WsJobParameters extends JPanel implements ItemListener, validate(); } + @Override public void argSetModified(Object modifiedElement, boolean b) { if (settingDialog) @@ -757,8 +810,8 @@ public class WsJobParameters extends JPanel implements ItemListener, boolean stn = settingDialog; boolean renamed = false; settingDialog = true; - String nm = (curSetName != null ? curSetName : (String) setName - .getSelectedItem()); + String nm = (curSetName != null ? curSetName + : (String) setName.getSelectedItem()); // check if the name is reserved - if it is, rename it. if (isServicePreset(nm)) { @@ -804,29 +857,26 @@ public class WsJobParameters extends JPanel implements ItemListener, settingDialog = stn; } + @Override public void refreshParamLayout() { // optsAndparams.setPreferredSize(null); FlowLayout fl = new FlowLayout(FlowLayout.LEFT); int sep = fl.getVgap(); boolean fh = true; - int os = 0, s = jobOptions.getBorder().getBorderInsets(jobOptions).bottom + int s = jobOptions.getBorder().getBorderInsets(jobOptions).bottom + jobOptions.getBorder().getBorderInsets(jobOptions).top - + 2 - * sep; - /** - * final height for viewport - */ - int finalh = s; + + 2 * sep; + int panewidth = paramPane.getViewport().getSize().width - 120 - jobOptions.getBorder().getBorderInsets(jobOptions).left + jobOptions.getBorder().getBorderInsets(jobOptions).right; - int w = 2 - * fl.getHgap() - + (MAX_OPTWIDTH > OptsAndParamsPage.PARAM_WIDTH ? MAX_OPTWIDTH - : OptsAndParamsPage.PARAM_WIDTH); - int hgap = fl.getHgap(), cw = hgap; + // int w = 2 * fl.getHgap() + // + (MAX_OPTWIDTH > OptsAndParamsPage.PARAM_WIDTH ? MAX_OPTWIDTH + // : OptsAndParamsPage.PARAM_WIDTH); + int hgap = fl.getHgap(); + int cw = hgap; if (opanp.getOptSet().size() > 0) { @@ -851,7 +901,7 @@ public class WsJobParameters extends JPanel implements ItemListener, } if (fh) { - finalh += pbox.getSize().height + fl.getVgap(); + // finalh += pbox.getSize().height + fl.getVgap(); fh = false; } } @@ -889,7 +939,7 @@ public class WsJobParameters extends JPanel implements ItemListener, } if (fh) { - finalh += pbox.getSize().height + fl.getVgap(); + // finalh += pbox.getSize().height + fl.getVgap(); fh = false; } @@ -933,9 +983,9 @@ public class WsJobParameters extends JPanel implements ItemListener, int p = 0; if (args.length > 0) { - Vector services = new Vector(); + Vector services = new Vector<>(); services.addElement(args[p++]); - Jws2Discoverer.setServiceUrls(services); + Jws2Discoverer.getDiscoverer().setServiceUrls(services); } try { @@ -990,8 +1040,8 @@ public class WsJobParameters extends JPanel implements ItemListener, } { System.out.println("Testing opts dupes for " - + lastserv.getUri() + " : " - + lastserv.getActionText() + ":" + pr.getName()); + + lastserv.getUri() + " : " + lastserv.getActionText() + + ":" + pr.getName()); List