summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/gui
diff options
context:
space:
mode:
Diffstat (limited to 'base/src/main/java/bjc/utils/gui')
-rw-r--r--base/src/main/java/bjc/utils/gui/ExtensionFileFilter.java4
-rw-r--r--base/src/main/java/bjc/utils/gui/SimpleKeyedButton.java10
-rw-r--r--base/src/main/java/bjc/utils/gui/TextAreaOutputStream.java35
-rw-r--r--base/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java4
-rw-r--r--base/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java4
-rw-r--r--base/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java8
-rw-r--r--base/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java4
-rw-r--r--base/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java2
-rw-r--r--base/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java92
9 files changed, 66 insertions, 97 deletions
diff --git a/base/src/main/java/bjc/utils/gui/ExtensionFileFilter.java b/base/src/main/java/bjc/utils/gui/ExtensionFileFilter.java
index d9ebda5..c07543f 100644
--- a/base/src/main/java/bjc/utils/gui/ExtensionFileFilter.java
+++ b/base/src/main/java/bjc/utils/gui/ExtensionFileFilter.java
@@ -6,7 +6,7 @@ import java.util.List;
import javax.swing.filechooser.FileFilter;
import bjc.funcdata.FunctionalList;
-import bjc.funcdata.IList;
+import bjc.funcdata.ListEx;
/**
* A file filter based on extensions.
@@ -20,7 +20,7 @@ public class ExtensionFileFilter extends FileFilter {
/**
* The list holding all filtered extensions
*/
- private final IList<String> extensions;
+ private final ListEx<String> extensions;
/**
* Create a new filter only showing files with the specified extensions.
diff --git a/base/src/main/java/bjc/utils/gui/SimpleKeyedButton.java b/base/src/main/java/bjc/utils/gui/SimpleKeyedButton.java
index 0c40fbe..976b259 100644
--- a/base/src/main/java/bjc/utils/gui/SimpleKeyedButton.java
+++ b/base/src/main/java/bjc/utils/gui/SimpleKeyedButton.java
@@ -59,8 +59,9 @@ public class SimpleKeyedButton extends JButton {
* @param aevListener
* The listener that handles the implementation of the
* action.
+ * @return The action that was bound to the button.
*/
- public void setGlobalDefaultKeystroke(String eventName, String keystroke,
+ public Action setGlobalDefaultKeystroke(String eventName, String keystroke,
Consumer<ActionEvent> aevListener) {
Action act = new KeyedButtonAction(eventName, aevListener);
KeyStroke stroke = KeyStroke.getKeyStroke(keystroke);
@@ -69,6 +70,8 @@ public class SimpleKeyedButton extends JButton {
this.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(stroke, eventName);
this.getActionMap().put(eventName, act);
this.setText(label);
+
+ return act;
}
/**
@@ -82,8 +85,9 @@ public class SimpleKeyedButton extends JButton {
* @param aevListener
* The listener that handles the implementation of the
* action.
+ * @return The action that was bound to the button.
*/
- public void addGlobalKeystroke(String eventName, String keystroke,
+ public Action addGlobalKeystroke(String eventName, String keystroke,
Consumer<ActionEvent> aevListener) {
Action act = new KeyedButtonAction(eventName, aevListener);
KeyStroke stroke = KeyStroke.getKeyStroke(keystroke);
@@ -91,5 +95,7 @@ public class SimpleKeyedButton extends JButton {
this.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(stroke, eventName);
this.getActionMap().put(eventName, act);
this.setText(label);
+
+ return act;
}
}
diff --git a/base/src/main/java/bjc/utils/gui/TextAreaOutputStream.java b/base/src/main/java/bjc/utils/gui/TextAreaOutputStream.java
deleted file mode 100644
index fbc58ed..0000000
--- a/base/src/main/java/bjc/utils/gui/TextAreaOutputStream.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package bjc.utils.gui;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import javax.swing.JTextArea;
-
-/**
- * An output stream that prints to a JTextArea
- *
- * @author epr
- * @author Levente S\u00e1ntha (lsantha@users.sourceforge.net)
- */
-public class TextAreaOutputStream extends OutputStream {
- private final JTextArea textArea;
-
- /**
- * Create a new output stream attached to a textarea
- *
- * @param console
- * The textarea to write to
- */
- public TextAreaOutputStream(final JTextArea console) {
- this.textArea = console;
- }
-
- @Override
- public void write(final int b) throws IOException {
- textArea.append("" + (char) b);
-
- if (b == '\n') {
- textArea.repaint();
- }
- }
-}
diff --git a/base/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java b/base/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java
index 04b0b68..9b55306 100644
--- a/base/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java
+++ b/base/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java
@@ -5,7 +5,7 @@ import java.io.FilenameFilter;
import java.util.List;
import bjc.funcdata.FunctionalList;
-import bjc.funcdata.IList;
+import bjc.funcdata.ListEx;
/**
* Filter a set of filenames by extension.
@@ -16,7 +16,7 @@ import bjc.funcdata.IList;
*/
public class ExtensionFileFilter implements FilenameFilter {
/* The list of extensions to filter */
- private final IList<String> extensions;
+ private final ListEx<String> extensions;
/**
* Create a new filter only showing files with the specified extensions.
diff --git a/base/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java b/base/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java
index 8f65577..465be02 100644
--- a/base/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java
+++ b/base/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java
@@ -9,7 +9,7 @@ import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
-import bjc.funcdata.IList;
+import bjc.funcdata.ListEx;
import bjc.utils.gui.layout.AutosizeLayout;
import bjc.utils.gui.layout.HLayout;
@@ -35,7 +35,7 @@ public class DropdownListPanel extends JPanel {
* The items to choose from
*/
public <T> DropdownListPanel(final String type, final DefaultListModel<T> model,
- final IList<T> choices) {
+ final ListEx<T> choices) {
setLayout(new AutosizeLayout());
final JPanel itemInputPanel = new JPanel();
diff --git a/base/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java b/base/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java
index d0b5383..dbf70f0 100644
--- a/base/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java
+++ b/base/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java
@@ -4,11 +4,11 @@ import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
-import bjc.data.IHolder;
+import bjc.data.Holder;
import bjc.utils.gui.layout.HLayout;
/**
- * A panel that outputs a value bound to a {@link IHolder}
+ * A panel that outputs a value bound to a {@link Holder}
*
* @author ben
*
@@ -19,7 +19,7 @@ public class HolderOutputPanel extends JPanel {
private Timer updater;
private final JLabel value;
private final int nDelay;
- private final IHolder<String> val;
+ private final Holder<String> val;
/**
* Create a new display panel, backed by a holder
@@ -31,7 +31,7 @@ public class HolderOutputPanel extends JPanel {
* @param nDelay
* The delay in ms between value updates
*/
- public HolderOutputPanel(final String lab, final IHolder<String> valueHolder,
+ public HolderOutputPanel(final String lab, final Holder<String> valueHolder,
final int nDelay) {
this.val = valueHolder;
this.nDelay = nDelay;
diff --git a/base/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java b/base/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java
index 3b48309..4ba5a01 100644
--- a/base/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java
+++ b/base/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java
@@ -9,7 +9,7 @@ import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
-import bjc.funcdata.IList;
+import bjc.funcdata.ListEx;
import bjc.utils.gui.SimpleJList;
import bjc.utils.gui.layout.HLayout;
import bjc.utils.gui.layout.VLayout;
@@ -54,7 +54,7 @@ public class ListParameterPanel<E> extends JPanel {
* The default values to put in the list
*/
public ListParameterPanel(final Supplier<E> add, final Consumer<E> edit,
- final Consumer<E> remove, final IList<E> defaults) {
+ final Consumer<E> remove, final ListEx<E> defaults) {
setLayout(new VLayout(2));
JList<E> list;
diff --git a/base/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java b/base/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java
index 8ca6f2b..406929a 100644
--- a/base/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java
+++ b/base/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java
@@ -8,7 +8,7 @@ import javax.swing.JSpinner;
import javax.swing.SpinnerModel;
/**
- * A simple spinner control
+ * A simple spinner control alongside a label
*
* @author ben
*
diff --git a/base/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java b/base/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java
index 835513a..dacba42 100644
--- a/base/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java
+++ b/base/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java
@@ -9,6 +9,7 @@ import javax.swing.JPanel;
import javax.swing.JSlider;
import bjc.utils.gui.layout.HLayout;
+import bjc.utils.gui.panels.SliderInputPanel.*;
/**
* A simple input panel for a slider-controlled value and a manual-input field
@@ -18,51 +19,6 @@ import bjc.utils.gui.layout.HLayout;
*
*/
public class SliderInputPanel extends JPanel {
- private final class NumberFormatter extends JFormattedTextField.AbstractFormatter {
- private static final long serialVersionUID = -4448291795913908270L;
-
- private final int minValue;
- private final int maxValue;
-
- private final int initValue;
-
- public NumberFormatter(final SliderSettings settings) {
- minValue = settings.minValue;
- maxValue = settings.maxValue;
-
- initValue = settings.initValue;
- }
-
- @Override
- public Object stringToValue(final String text) throws ParseException {
- try {
- final int val = Integer.parseInt(text);
-
- if (val < minValue)
- throw new ParseException("Value must be greater than " + minValue, 0);
- else if (val > maxValue)
- throw new ParseException("Value must be smaller than " + maxValue, 0);
- else
- return val;
- } catch (final NumberFormatException nfex) {
- final ParseException pex
- = new ParseException("Value must be a valid integer", 0);
-
- pex.initCause(nfex);
-
- throw pex;
- }
- }
-
- @Override
- public String valueToString(final Object value) throws ParseException {
- if (value == null)
- return Integer.toString(initValue);
-
- return Integer.toString((Integer) value);
- }
- }
-
/**
* Represents the settings for a slider
*
@@ -104,7 +60,7 @@ public class SliderInputPanel extends JPanel {
* @param max
* The maximum slider value
* @param init
- * Th initial slider value
+ * The initial slider value
*/
public SliderSettings(final int min, final int max, final int init) {
minValue = min;
@@ -153,7 +109,6 @@ public class SliderInputPanel extends JPanel {
final int val = slider.getValue();
field.setValue(val);
-
action.accept(val);
}
});
@@ -187,3 +142,46 @@ public class SliderInputPanel extends JPanel {
field.setValue(value);
}
}
+
+final class NumberFormatter extends JFormattedTextField.AbstractFormatter {
+ private static final long serialVersionUID = -4448291795913908270L;
+
+ private final int minValue;
+ private final int maxValue;
+
+ private final int initValue;
+
+ public NumberFormatter(final SliderSettings settings) {
+ minValue = settings.minValue;
+ maxValue = settings.maxValue;
+
+ initValue = settings.initValue;
+ }
+
+ @Override
+ public Object stringToValue(final String text) throws ParseException {
+ try {
+ final int val = Integer.parseInt(text);
+
+ if (val < minValue) throw new ParseException(
+ "Value must be greater than " + minValue, 0);
+ else if (val > maxValue) throw new ParseException(
+ "Value must be smaller than " + maxValue, 0);
+ else return val;
+ } catch (final NumberFormatException nfex) {
+ final ParseException pex
+ = new ParseException("Value must be a valid integer", 0);
+
+ pex.initCause(nfex);
+
+ throw pex;
+ }
+ }
+
+ @Override
+ public String valueToString(final Object value) throws ParseException {
+ if (value == null) return Integer.toString(initValue);
+
+ return Integer.toString((Integer) value);
+ }
+}