diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/gui/configurator')
11 files changed, 56 insertions, 38 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractParameterConfigurator.java index 2ce3bb08..977af410 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractParameterConfigurator.java @@ -48,7 +48,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter; * * @param <T> parameter type */ -public abstract class AbstractParameterConfigurator<T extends Parameter<?, ?>> implements ParameterConfigurator { +public abstract class AbstractParameterConfigurator<T extends Parameter<?>> implements ParameterConfigurator { /** * The parameter to configure */ @@ -109,7 +109,7 @@ public abstract class AbstractParameterConfigurator<T extends Parameter<?, ?>> i } @Override - public void addParameter(Object owner, Parameter<?, ?> param, TrackParameters track) { + public void addParameter(Object owner, Parameter<?> param, TrackParameters track) { LoggingUtil.warning(this.getClass() + " does not support sub-parameters!"); } diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractSingleParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractSingleParameterConfigurator.java index 1d90f869..6d30ce25 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractSingleParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractSingleParameterConfigurator.java @@ -30,9 +30,25 @@ import javax.swing.JLabel; import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter; -public abstract class AbstractSingleParameterConfigurator<T extends Parameter<?, ?>> extends AbstractParameterConfigurator<T> { +/** + * Base class for MiniGUI input helpers + * + * @author Erich Schubert + * + * @param <T> Parameter type + */ +public abstract class AbstractSingleParameterConfigurator<T extends Parameter<?>> extends AbstractParameterConfigurator<T> { + /** + * Label + */ final JLabel label; + /** + * Constructor. + * + * @param param Parameter + * @param parent Parent edit control + */ public AbstractSingleParameterConfigurator(T param, JComponent parent) { super(param, parent); // Label diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/ClassListParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/ClassListParameterConfigurator.java index 65c93fb5..603a52a9 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/ClassListParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/ClassListParameterConfigurator.java @@ -145,7 +145,7 @@ public class ClassListParameterConfigurator extends AbstractSingleParameterConfi } @Override - public void addParameter(Object owner, Parameter<?, ?> param, TrackParameters track) { + public void addParameter(Object owner, Parameter<?> param, TrackParameters track) { child.addParameter(owner, param, track); } diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/ClassParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/ClassParameterConfigurator.java index 91913755..4fdcac10 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/ClassParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/ClassParameterConfigurator.java @@ -99,7 +99,7 @@ public class ClassParameterConfigurator extends AbstractSingleParameterConfigura } @Override - public void addParameter(Object owner, Parameter<?, ?> param, TrackParameters track) { + public void addParameter(Object owner, Parameter<?> param, TrackParameters track) { child.addParameter(owner, param, track); } @@ -129,7 +129,7 @@ public class ClassParameterConfigurator extends AbstractSingleParameterConfigura if(val.startsWith(DynamicParameters.STRING_USE_DEFAULT)) { return null; } - if(val == DynamicParameters.STRING_OPTIONAL) { + if(DynamicParameters.STRING_OPTIONAL.equals(val)) { return null; } return val; diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/ConfiguratorPanel.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/ConfiguratorPanel.java index d286be48..c21d11a4 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/ConfiguratorPanel.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/ConfiguratorPanel.java @@ -24,6 +24,7 @@ package de.lmu.ifi.dbs.elki.gui.configurator; */ import java.awt.GridBagLayout; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -65,7 +66,7 @@ public class ConfiguratorPanel extends JPanel implements ChangeListener { /** * Child options */ - private java.util.Vector<ParameterConfigurator> children = new java.util.Vector<ParameterConfigurator>(); + private ArrayList<ParameterConfigurator> children = new ArrayList<ParameterConfigurator>(); /** * The event listeners for this panel. @@ -85,12 +86,12 @@ public class ConfiguratorPanel extends JPanel implements ChangeListener { * @param param Parameter to add * @param track Parameter tracking object */ - public void addParameter(Object owner, Parameter<?, ?> param, TrackParameters track) { + public void addParameter(Object owner, Parameter<?> param, TrackParameters track) { this.setBorder(new SoftBevelBorder(SoftBevelBorder.LOWERED)); ParameterConfigurator cfg = null; - { + { // Find Object cur = owner; - while(cfg == null && cur != null) { + while(cur != null) { cfg = childconfig.get(cur); if(cfg != null) { break; @@ -109,7 +110,7 @@ public class ConfiguratorPanel extends JPanel implements ChangeListener { } } - private ParameterConfigurator makeConfigurator(Parameter<?, ?> param) { + private ParameterConfigurator makeConfigurator(Parameter<?> param) { if(param instanceof Flag) { return new FlagParameterConfigurator((Flag) param, this); } diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/EnumParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/EnumParameterConfigurator.java index 40748dcc..0e5740a8 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/EnumParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/EnumParameterConfigurator.java @@ -96,7 +96,7 @@ public class EnumParameterConfigurator extends AbstractSingleParameterConfigurat if(val.startsWith(DynamicParameters.STRING_USE_DEFAULT)) { return null; } - if(val == DynamicParameters.STRING_OPTIONAL) { + if(DynamicParameters.STRING_OPTIONAL.equals(val)) { return null; } return val; diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/FileParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/FileParameterConfigurator.java index bd34a995..f9355579 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/FileParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/FileParameterConfigurator.java @@ -63,10 +63,11 @@ public class FileParameterConfigurator extends AbstractSingleParameterConfigurat final JButton button; /** - * The actual file chooser + * Constructor. + * + * @param fp File parameter + * @param parent Component to attach to. */ - final JFileChooser fc = new JFileChooser(); - public FileParameterConfigurator(FileParameter fp, JComponent parent) { super(fp, parent); // create components @@ -78,17 +79,14 @@ public class FileParameterConfigurator extends AbstractSingleParameterConfigurat button.addActionListener(this); // fill with value File f = null; - if(fp.isDefined()) { + if (fp.isDefined()) { f = fp.getValue(); } - if(f != null) { + if (f != null) { String fn = f.getPath(); textfield.setText(fn); - fc.setSelectedFile(f); - } - else { + } else { textfield.setText(""); - fc.setSelectedFile(null); } // make a panel @@ -98,7 +96,7 @@ public class FileParameterConfigurator extends AbstractSingleParameterConfigurat panel = new JPanel(new BorderLayout()); panel.add(textfield, BorderLayout.CENTER); panel.add(button, BorderLayout.EAST); - + parent.add(panel, constraints); finishGridRow(); } @@ -108,21 +106,24 @@ public class FileParameterConfigurator extends AbstractSingleParameterConfigurat */ @Override public void actionPerformed(ActionEvent e) { - if(e.getSource() == button) { + // Use a new JFileChooser. Inconsistent behaviour otherwise! + final JFileChooser fc = new JFileChooser(new File(".")); + if (param.isDefined()) { + fc.setSelectedFile(param.getValue()); + } + + if (e.getSource() == button) { int returnVal = fc.showOpenDialog(button); - if(returnVal == JFileChooser.APPROVE_OPTION) { + if (returnVal == JFileChooser.APPROVE_OPTION) { textfield.setText(fc.getSelectedFile().getPath()); fireValueChanged(); - } - else { + } else { // Do nothing on cancel. } - } - else if(e.getSource() == textfield) { + } else if (e.getSource() == textfield) { fireValueChanged(); - } - else { + } else { LoggingUtil.warning("actionPerformed triggered by unknown source: " + e.getSource()); } } @@ -131,4 +132,4 @@ public class FileParameterConfigurator extends AbstractSingleParameterConfigurat public String getUserInput() { return textfield.getText(); } -}
\ No newline at end of file +} diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/FlagParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/FlagParameterConfigurator.java index 5c905e47..bec04b70 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/FlagParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/FlagParameterConfigurator.java @@ -53,7 +53,7 @@ public class FlagParameterConfigurator extends AbstractParameterConfigurator<Fla constraints.weightx = 1.0; value = new JCheckBox(param.getName()); if(param.isDefined() && !param.tookDefaultValue()) { - value.setSelected(param.getValue()); + value.setSelected(param.isTrue()); } value.setToolTipText(param.getShortDescription()); parent.add(value, constraints); @@ -73,6 +73,6 @@ public class FlagParameterConfigurator extends AbstractParameterConfigurator<Fla @Override public Boolean getUserInput() { - return value.isSelected() ? true : null; + return value.isSelected() ? Boolean.TRUE : null; } }
\ No newline at end of file diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/ParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/ParameterConfigurator.java index 90c8f62f..9bd879f6 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/ParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/ParameterConfigurator.java @@ -30,7 +30,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.TrackParame import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter; public interface ParameterConfigurator { - public void addParameter(Object owner, Parameter<?, ?> param, TrackParameters track); + public void addParameter(Object owner, Parameter<?> param, TrackParameters track); public void addChangeListener(ChangeListener listener); diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/TextParameterConfigurator.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/TextParameterConfigurator.java index 8c011091..582381cb 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/TextParameterConfigurator.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/TextParameterConfigurator.java @@ -43,10 +43,10 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter; */ // FIXME: update on focus loss? // FIXME: restrictions for number input? -public class TextParameterConfigurator extends AbstractSingleParameterConfigurator<Parameter<?, ?>> implements ActionListener { +public class TextParameterConfigurator extends AbstractSingleParameterConfigurator<Parameter<?>> implements ActionListener { final JTextField value; - public TextParameterConfigurator(Parameter<?, ?> param, JComponent parent) { + public TextParameterConfigurator(Parameter<?> param, JComponent parent) { super(param, parent); // Input field diff --git a/src/de/lmu/ifi/dbs/elki/gui/configurator/package-info.java b/src/de/lmu/ifi/dbs/elki/gui/configurator/package-info.java index 004ad3da..5c8f2f4e 100644 --- a/src/de/lmu/ifi/dbs/elki/gui/configurator/package-info.java +++ b/src/de/lmu/ifi/dbs/elki/gui/configurator/package-info.java @@ -1,8 +1,8 @@ /** * <p>Configurator components</p> * - * @apiviz.exclude javax.swing.event.* - * @apiviz.exclude javax.awt.event.* + * @apiviz.exclude javax.swing.* + * @apiviz.exclude java.awt.event */ /* This file is part of ELKI: |