X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FOptsAndParamsPage.java;h=d2f04a19e67751aae87e39e9726e8402cf2738f0;hb=d3a2fdc864b586b5c604335dd715ec215b679197;hp=106c3b77face2ee9d87720474194a750cf4e6083;hpb=a45774ee31d9f35d4eff46d54d7deab719afb092;p=jalview.git diff --git a/src/jalview/gui/OptsAndParamsPage.java b/src/jalview/gui/OptsAndParamsPage.java index 106c3b7..d2f04a1 100644 --- a/src/jalview/gui/OptsAndParamsPage.java +++ b/src/jalview/gui/OptsAndParamsPage.java @@ -1,22 +1,26 @@ -/******************************************************************************* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle - * +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) + * 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. - * + * 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; +import jalview.util.MessageManager; import jalview.ws.params.ArgumentI; import jalview.ws.params.OptionI; import jalview.ws.params.ParameterI; @@ -107,32 +111,32 @@ public class OptsAndParamsPage { hasLink = true; - enabled.setToolTipText("" - + JvSwingUtils - .wrapTooltip(((desc == null) ? "see further details by right-clicking" + enabled.setToolTipText( + JvSwingUtils + .wrapTooltip(true, ((desc == null || desc.trim().length() == 0) ? MessageManager.getString("label.opt_and_params_further_details ") : desc) + "
") - + ""); + ); enabled.addMouseListener(this); } else { - if (desc != null) + if (desc != null && desc.trim().length() > 0) { - enabled.setToolTipText("" - + JvSwingUtils.wrapTooltip(opt.getDescription()) - + ""); + enabled.setToolTipText( + JvSwingUtils.wrapTooltip(true, opt.getDescription()) + ); } } 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 +173,8 @@ public class OptsAndParamsPage } else { - notmod &= initVal == null; + notmod &= (initVal != null) ? initVal.equals(val.getSelectedItem()) + : val.getSelectedItem() != initVal; } poparent.argSetModified(this, !notmod); } @@ -181,11 +186,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 +239,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,7 +260,7 @@ public class OptsAndParamsPage } else { - initVal = (initEnabled) ? option.getValue() : null; + initVal = (initEnabled) ? (String) val.getSelectedItem() : null; } } @@ -301,7 +320,7 @@ public class OptsAndParamsPage choice = true; } } - + if (!compact) { makeExpanderParam(parm); @@ -315,9 +334,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()); @@ -325,15 +344,16 @@ public class OptsAndParamsPage && parm.getDescription().trim().length() > 0) { // Only create description boxes if there actually is a description. - ttipText = ("" - + JvSwingUtils - .wrapTooltip(parm.getDescription()+(finfo!=null ?"
Right click for further information.":"")) - + ""); - } - - JvSwingUtils.mgAddtoLayout(this, ttipText, new JLabel(parm.getName()),controlPanel, ""); + ttipText = (JvSwingUtils + .wrapTooltip(true, parm.getDescription() + + (finfo != null ? "
"+MessageManager.getString("label.opt_and_params_further_detail") + : ""))); + } + + JvSwingUtils.mgAddtoLayout(this, ttipText, + new JLabel(parm.getName()), controlPanel, ""); updateControls(parm); validate(); } @@ -370,20 +390,12 @@ public class OptsAndParamsPage // Only create description boxes if there actually is a description. if (finfo != null) { - showDesc.setToolTipText("" - + JvSwingUtils - .wrapTooltip("Click to show brief description
Right click for further information.") - + ""); + showDesc.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.formatMessage("label.opt_and_params_show_brief_desc_image_link", new String[]{linkImageURL.toExternalForm()}))); showDesc.addMouseListener(this); } else { - showDesc.setToolTipText("" - + JvSwingUtils - .wrapTooltip("Click to show brief description.") - + ""); + showDesc.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.getString("label.opt_and_params_show_brief_desc"))); } showDesc.addActionListener(new ActionListener() { @@ -566,21 +578,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) { @@ -651,11 +666,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 { @@ -669,6 +686,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 +694,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 +703,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) { @@ -690,9 +712,10 @@ 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 { @@ -728,12 +751,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, @@ -741,7 +766,9 @@ 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() { @@ -758,9 +785,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() { @@ -827,7 +854,7 @@ public class OptsAndParamsPage } else { - throw new Error("Invalid value " + string + " for option " + option); + throw new Error(MessageManager.formatMessage("error.invalid_value_for_option", new String[]{string,option.getName()})); } }