X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FOptsAndParamsPage.java;h=eb55994f3d1e9afd1ed8c7483e51135930500bf2;hb=87ea83af3e209a8c3a4b19f9530a9c05b4541148;hp=cca9cee88c844663ac8c35e7cd7c28629b55968d;hpb=797df64fa2a0a30773d0f48f5494d4155e5a8be3;p=jalview.git diff --git a/src/jalview/gui/OptsAndParamsPage.java b/src/jalview/gui/OptsAndParamsPage.java index cca9cee..eb55994 100644 --- a/src/jalview/gui/OptsAndParamsPage.java +++ b/src/jalview/gui/OptsAndParamsPage.java @@ -1,20 +1,20 @@ -/******************************************************************************* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle - * +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) + * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * * 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 . - *******************************************************************************/ + */ package jalview.gui; import jalview.ws.params.ArgumentI; @@ -109,7 +109,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) + "
") + ""); @@ -117,7 +117,7 @@ public class OptsAndParamsPage } else { - if (desc != null) + if (desc != null && desc.trim().length()>0) { enabled.setToolTipText("" + JvSwingUtils.wrapTooltip(opt.getDescription()) @@ -125,14 +125,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); } @@ -169,7 +169,8 @@ public class OptsAndParamsPage } else { - notmod &= initVal == null; + notmod &= (initVal != null) ? initVal.equals(val.getSelectedItem()) + : val.getSelectedItem() != initVal; } poparent.argSetModified(this, !notmod); } @@ -181,11 +182,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; } @@ -221,10 +235,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()); @@ -241,10 +256,10 @@ public class OptsAndParamsPage } else { - initVal = (initEnabled) ? option.getValue() : null; + initVal = (initEnabled) ? (String) val.getSelectedItem() : null; } } - + } public class ParamBox extends JPanel implements ChangeListener, @@ -301,7 +316,7 @@ public class OptsAndParamsPage choice = true; } } - + if (!compact) { makeExpanderParam(parm); @@ -315,9 +330,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()); @@ -326,14 +341,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(); } @@ -566,21 +583,21 @@ 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 (valueField.getText().trim().length() > 0) + { actionPerformed(null); - } + } } - + @Override public void keyPressed(KeyEvent e) { @@ -651,6 +668,8 @@ 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, @@ -669,6 +688,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) @@ -676,6 +696,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) @@ -683,6 +705,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) { @@ -728,12 +752,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, @@ -758,9 +784,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() {