X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FOptsAndParamsPage.java;h=d2f04a19e67751aae87e39e9726e8402cf2738f0;hb=2799bb913bbda0455b0f5f43737da678794e1961;hp=e4782a02d8f2e6712253df4dab5ac2b62bd68cfe;hpb=5dfd1bdf67e6e0c916d22e67d498c0e956917c21;p=jalview.git
diff --git a/src/jalview/gui/OptsAndParamsPage.java b/src/jalview/gui/OptsAndParamsPage.java
index e4782a0..d2f04a1 100644
--- a/src/jalview/gui/OptsAndParamsPage.java
+++ b/src/jalview/gui/OptsAndParamsPage.java
@@ -1,5 +1,26 @@
+/*
+ * 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.
+ *
+ * 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;
@@ -90,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);
}
@@ -152,7 +173,8 @@ public class OptsAndParamsPage
}
else
{
- notmod &= initVal == null;
+ notmod &= (initVal != null) ? initVal.equals(val.getSelectedItem())
+ : val.getSelectedItem() != initVal;
}
poparent.argSetModified(this, !notmod);
}
@@ -164,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;
}
@@ -204,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());
@@ -224,7 +260,7 @@ public class OptsAndParamsPage
}
else
{
- initVal = (initEnabled) ? option.getValue() : null;
+ initVal = (initEnabled) ? (String) val.getSelectedItem() : null;
}
}
@@ -284,7 +320,7 @@ public class OptsAndParamsPage
choice = true;
}
}
-
+
if (!compact)
{
makeExpanderParam(parm);
@@ -298,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());
@@ -308,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();
}
@@ -353,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()
{
@@ -549,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)
{
@@ -634,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
{
@@ -652,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)
@@ -659,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)
@@ -666,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)
{
@@ -673,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
{
@@ -711,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,
@@ -724,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()
{
@@ -741,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()
{
@@ -810,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()}));
}
}