summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/gui/configurator
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/gui/configurator')
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractParameterConfigurator.java4
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/AbstractSingleParameterConfigurator.java18
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/ClassListParameterConfigurator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/ClassParameterConfigurator.java4
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/ConfiguratorPanel.java11
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/EnumParameterConfigurator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/FileParameterConfigurator.java39
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/FlagParameterConfigurator.java4
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/ParameterConfigurator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/TextParameterConfigurator.java4
-rw-r--r--src/de/lmu/ifi/dbs/elki/gui/configurator/package-info.java4
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: