X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FOptsAndParamsPage.java;h=5df0174346dfce4df4175891de6472eb9188cc6b;hb=0e2054d29bc49351f000d478659dc3c4371b251c;hp=e4782a02d8f2e6712253df4dab5ac2b62bd68cfe;hpb=5dfd1bdf67e6e0c916d22e67d498c0e956917c21;p=jalview.git diff --git a/src/jalview/gui/OptsAndParamsPage.java b/src/jalview/gui/OptsAndParamsPage.java index e4782a0..5df0174 100644 --- a/src/jalview/gui/OptsAndParamsPage.java +++ b/src/jalview/gui/OptsAndParamsPage.java @@ -1,5 +1,24 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1) + * Copyright (C) 2014 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. + * + * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.gui; +import jalview.util.MessageManager; import jalview.ws.params.ArgumentI; import jalview.ws.params.OptionI; import jalview.ws.params.ParameterI; @@ -92,7 +111,7 @@ public class OptsAndParamsPage enabled.setToolTipText("" + JvSwingUtils - .wrapTooltip(((desc == null) ? "see further details by right-clicking" + .wrapTooltip(((desc == null || desc.trim().length()==0) ? "see further details by right-clicking" : desc) + "
") + ""); @@ -100,7 +119,7 @@ public class OptsAndParamsPage } else { - if (desc != null) + if (desc != null && desc.trim().length()>0) { enabled.setToolTipText("" + JvSwingUtils.wrapTooltip(opt.getDescription()) @@ -108,14 +127,14 @@ public class OptsAndParamsPage } } add(enabled, BorderLayout.NORTH); + for (Object str : opt.getPossibleValues()) + { + val.addItem((String) str); + } + val.setSelectedItem((String) opt.getValue()); if (opt.getPossibleValues().size() > 1) { setLayout(new GridLayout(1, 2)); - for (Object str : opt.getPossibleValues()) - { - val.addItem((String) str); - } - val.setSelectedItem((String) opt.getValue()); val.addActionListener(this); add(val, BorderLayout.SOUTH); } @@ -152,7 +171,8 @@ public class OptsAndParamsPage } else { - notmod &= initVal == null; + notmod &= (initVal != null) ? initVal.equals(val.getSelectedItem()) + : val.getSelectedItem() != initVal; } poparent.argSetModified(this, !notmod); } @@ -164,11 +184,24 @@ public class OptsAndParamsPage return null; } OptionI opt = option.copy(); - + if (opt.getPossibleValues() != null + && opt.getPossibleValues().size() == 1) + { + // Hack to make sure the default value for an enabled option with only + // one value is actually returned + opt.setValue(opt.getPossibleValues().get(0)); + } if (val.getSelectedItem() != null) { opt.setValue((String) val.getSelectedItem()); } + else + { + if (option.getValue() != null) + { + opt.setValue(option.getValue()); + } + } return opt; } @@ -204,10 +237,11 @@ public class OptsAndParamsPage } - public void resetToDefault() + + public void resetToDefault(boolean setDefaultParams) { enabled.setSelected(false); - if (option.isRequired()) + if (option.isRequired() || (setDefaultParams && option.getValue()!=null)) { // Apply default value selectOption(option, option.getValue()); @@ -224,10 +258,10 @@ public class OptsAndParamsPage } else { - initVal = (initEnabled) ? option.getValue() : null; + initVal = (initEnabled) ? (String) val.getSelectedItem() : null; } } - + } public class ParamBox extends JPanel implements ChangeListener, @@ -284,7 +318,7 @@ public class OptsAndParamsPage choice = true; } } - + if (!compact) { makeExpanderParam(parm); @@ -298,9 +332,9 @@ public class OptsAndParamsPage private void makeCompactParam(ParameterI parm) { - setLayout(new MigLayout("","[][grow]")); + setLayout(new MigLayout("", "[][grow]")); - String ttipText=null; + String ttipText = null; controlPanel.setLayout(new BorderLayout()); @@ -309,14 +343,16 @@ public class OptsAndParamsPage { // Only create description boxes if there actually is a description. ttipText = ("" - + JvSwingUtils - .wrapTooltip(parm.getDescription()+(finfo!=null ?"
Right click for further information.":"")) - + ""); + + JvSwingUtils + .wrapTooltip(parm.getDescription() + + (finfo != null ? "
Right click for further information." + : "")) + ""); } - - JvSwingUtils.mgAddtoLayout(this, ttipText, new JLabel(parm.getName()),controlPanel, ""); + + JvSwingUtils.mgAddtoLayout(this, ttipText, + new JLabel(parm.getName()), controlPanel, ""); updateControls(parm); validate(); } @@ -549,21 +585,24 @@ public class OptsAndParamsPage valueField.addActionListener(this); valueField.addKeyListener(new KeyListener() { - + @Override public void keyTyped(KeyEvent e) { } - + @Override public void keyReleased(KeyEvent e) { - if (valueField.getText().trim().length()>0) + if (e.isActionKey()) + { + if (valueField.getText().trim().length() > 0) { - actionPerformed(null); + actionPerformed(null); } + } } - + @Override public void keyPressed(KeyEvent e) { @@ -634,11 +673,13 @@ public class OptsAndParamsPage { } ; + // update value field to reflect any bound checking we performed. + valueField.setText("" + iVal); if (validator.getMin() != null && validator.getMax() != null) { slider.getModel().setRangeProperties(iVal, 1, validator.getMin().intValue(), - validator.getMax().intValue(), true); + validator.getMax().intValue()+1, true); } else { @@ -652,6 +693,7 @@ public class OptsAndParamsPage fVal = 0f; try { + valueField.setText(valueField.getText().trim()); fVal = Float.valueOf(valueField.getText()); if (validator.getMin() != null && validator.getMin().floatValue() > fVal) @@ -659,6 +701,8 @@ public class OptsAndParamsPage fVal = validator.getMin().floatValue(); // TODO: provide visual indication that hard limit was reached for // this parameter + // update value field to reflect any bound checking we performed. + valueField.setText("" + fVal); } if (validator.getMax() != null && validator.getMax().floatValue() < fVal) @@ -666,6 +710,8 @@ public class OptsAndParamsPage fVal = validator.getMax().floatValue(); // TODO: provide visual indication that hard limit was reached for // this parameter + // update value field to reflect any bound checking we performed. + valueField.setText("" + fVal); } } catch (Exception e) { @@ -673,9 +719,9 @@ public class OptsAndParamsPage ; if (validator.getMin() != null && validator.getMax() != null) { - slider.getModel().setRangeProperties((int) fVal * 1000, 1, - (int) validator.getMin().floatValue() * 1000, - (int) validator.getMax().floatValue() * 1000, true); + slider.getModel().setRangeProperties((int) (fVal * 1000f), 1, + (int) (validator.getMin().floatValue() * 1000f), + 1+(int) (validator.getMax().floatValue() * 1000f), true); } else { @@ -711,12 +757,14 @@ public class OptsAndParamsPage public OptsAndParamsPage(OptsParametersContainerI paramContainer) { - this(paramContainer,false); + this(paramContainer, false); } - public OptsAndParamsPage(OptsParametersContainerI paramContainer, boolean compact) + + public OptsAndParamsPage(OptsParametersContainerI paramContainer, + boolean compact) { poparent = paramContainer; - this.compact=compact; + this.compact = compact; } public static void showUrlPopUp(JComponent invoker, final String finfo, @@ -724,7 +772,7 @@ public class OptsAndParamsPage { JPopupMenu mnu = new JPopupMenu(); - JMenuItem mitem = new JMenuItem("View " + finfo); + JMenuItem mitem = new JMenuItem(MessageManager.formatMessage("label.view_params", new String[]{finfo})); mitem.addActionListener(new ActionListener() { @@ -741,9 +789,9 @@ public class OptsAndParamsPage URL linkImageURL = getClass().getResource("/images/link.gif"); - Map optSet = new Hashtable(); + Map optSet = new java.util.LinkedHashMap(); - Map paramSet = new Hashtable(); + Map paramSet = new java.util.LinkedHashMap(); public Map getOptSet() {