summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/gui
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gui')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/ExtensionFileFilter.java56
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleDialogs.java269
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleFileChooser.java198
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalDialogs.java208
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalFrame.java40
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleJList.java49
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleTitledBorder.java25
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/TextAreaOutputStream.java35
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java50
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/awt/SimpleFileDialog.java144
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/layout/AutosizeLayout.java22
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/layout/HLayout.java25
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/layout/VLayout.java25
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java73
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/FormattedInputPanel.java66
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java79
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java133
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleInputPanel.java45
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleListPanel.java93
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java42
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java187
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/panels/package-info.java5
22 files changed, 0 insertions, 1869 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/ExtensionFileFilter.java b/BJC-Utils2/src/main/java/bjc/utils/gui/ExtensionFileFilter.java
deleted file mode 100644
index 7c487eb..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/ExtensionFileFilter.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package bjc.utils.gui;
-
-import java.io.File;
-import java.util.List;
-
-import javax.swing.filechooser.FileFilter;
-
-import bjc.utils.funcdata.FunctionalList;
-import bjc.utils.funcdata.IList;
-
-/**
- * A file filter based on extensions.
- *
- * Built for Swing.
- *
- * @author ben
- *
- */
-public class ExtensionFileFilter extends FileFilter {
- /**
- * The list holding all filtered extensions
- */
- private final IList<String> extensions;
-
- /**
- * Create a new filter only showing files with the specified extensions.
- *
- * @param exts
- * The extensions to show in this filter.
- */
- public ExtensionFileFilter(final List<String> exts) {
- extensions = new FunctionalList<>(exts);
- }
-
- /**
- * Create a new filter only showing files with the specified extensions.
- *
- * @param exts
- * The extensions to show in this filter.
- */
- public ExtensionFileFilter(final String... exts) {
- extensions = new FunctionalList<>(exts);
- }
-
- @Override
- public boolean accept(final File pathname) {
- if (pathname == null) throw new NullPointerException("Pathname must not be null");
-
- return extensions.anyMatch(pathname.getName()::endsWith);
- }
-
- @Override
- public String getDescription() {
- return extensions.toString();
- }
-} \ No newline at end of file
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleDialogs.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleDialogs.java
deleted file mode 100644
index 59eb1c3..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleDialogs.java
+++ /dev/null
@@ -1,269 +0,0 @@
-package bjc.utils.gui;
-
-import java.awt.Component;
-import java.awt.Frame;
-import java.util.function.Function;
-import java.util.function.Predicate;
-
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-
-import bjc.utils.gui.layout.VLayout;
-
-/**
- * Utility class for getting simple input from the user.
- *
- * @author ben
- *
- */
-public class SimpleDialogs {
- /**
- * Get a bounded integer from the user.
- *
- * @param parent
- * The parent component for the dialogs.
- * @param title
- * The title for the dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @param lowerBound
- * The lower integer bound to accept.
- * @param upperBound
- * The upper integer bound to accept.
- * @return A int within the specified bounds.
- */
- public static int getBoundedInt(final Component parent, final String title, final String prompt,
- final int lowerBound, final int upperBound) {
- return getValue(parent, title, prompt, (strang) -> {
- try {
- final int value = Integer.parseInt(strang);
-
- return value < upperBound && value > lowerBound;
- } catch (final NumberFormatException nfex) {
- // We don't care about the specifics of the
- // exception, just
- // that this value isn't good
- return false;
- }
- }, Integer::parseInt);
- }
-
- /**
- * Asks the user to pick an option from a series of choices.
- *
- * @param <E>
- * The type of choices for the user to pick
- *
- * @param parent
- * The parent frame for this dialog
- * @param title
- * The title of this dialog
- * @param question
- * The question being asked
- * @param choices
- * The available choices for the question
- * @return The choice the user picked, or null if they didn't pick one
- */
- @SuppressWarnings("unchecked")
- public static <E> E getChoice(final Frame parent, final String title, final String question,
- final E... choices) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (question == null) throw new NullPointerException("Question must not be null");
-
- final JDialog chooser = new JDialog(parent, title, true);
- chooser.setLayout(new VLayout(2));
-
- final JPanel questionPane = new JPanel();
-
- final JLabel questionText = new JLabel(question);
- final JComboBox<E> questionChoices = new JComboBox<>(choices);
-
- questionPane.add(questionText);
- questionPane.add(questionChoices);
-
- final JPanel buttonPane = new JPanel();
-
- final JButton okButton = new JButton("Ok");
- final JButton cancelButton = new JButton("Cancel");
-
- okButton.addActionListener((event) -> chooser.dispose());
- cancelButton.addActionListener((event) -> chooser.dispose());
-
- buttonPane.add(cancelButton);
- buttonPane.add(okButton);
-
- chooser.add(questionPane);
- chooser.add(buttonPane);
-
- chooser.pack();
- chooser.setVisible(true);
-
- return (E) questionChoices.getSelectedItem();
- }
-
- /**
- * Get a integer from the user
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @return A int.
- */
- public static int getInt(final Component parent, final String title, final String prompt) {
- return getValue(parent, title, prompt, strang -> {
- try {
- Integer.parseInt(strang);
- return true;
- } catch (final NumberFormatException nfex) {
- // We don't care about this exception, just mark
- // the value
- // as not good
- return false;
- }
- }, Integer::parseInt);
- }
-
- /**
- * Get a string from the user
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for the dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @return A string.
- */
- public static String getString(final Component parent, final String title, final String prompt) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (prompt == null) throw new NullPointerException("Prompt must not be null");
-
- return JOptionPane.showInputDialog(parent, prompt, title, JOptionPane.QUESTION_MESSAGE);
- }
-
- /**
- * Get a value parsable from a string from the user.
- *
- * @param <E>
- * The type of the value parsed from the string
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @param validator
- * A predicate to determine if a input is valid.
- * @param transformer
- * The function to transform the string into a value.
- * @return The value parsed from a string.
- */
- public static <E> E getValue(final Component parent, final String title, final String prompt,
- final Predicate<String> validator, final Function<String, E> transformer) {
- if (validator == null)
- throw new NullPointerException("Validator must not be null");
- else if (transformer == null) throw new NullPointerException("Transformer must not be null");
-
- String input = getString(parent, title, prompt);
-
- while (!validator.test(input)) {
- showError(parent, "I/O Error", "Please enter a valid value");
-
- input = getString(parent, title, prompt);
- }
-
- return transformer.apply(input);
- }
-
- /**
- * Get a whole number from the user.
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @return A whole number.
- */
- public static int getWhole(final Component parent, final String title, final String prompt) {
- return getBoundedInt(parent, title, prompt, 0, Integer.MAX_VALUE);
- }
-
- /**
- * Ask the user a Yes/No question.
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param question
- * The question to ask the user.
- * @return True if the user said yes, false otherwise.
- */
- public static boolean getYesNo(final Component parent, final String title, final String question) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (question == null) throw new NullPointerException("Question must not be null");
-
- final int result = JOptionPane.showConfirmDialog(parent, question, title, JOptionPane.YES_NO_OPTION);
-
- return result == JOptionPane.YES_OPTION ? true : false;
- }
-
- /**
- * Show a error message to the user
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param message
- * The error to show the user.
- */
- public static void showError(final Component parent, final String title, final String message) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (message == null) throw new NullPointerException("Error message must not be null");
-
- JOptionPane.showMessageDialog(parent, message, title, JOptionPane.ERROR_MESSAGE);
- }
-
- /**
- * Show an informative message to the user
- *
- * @param parent
- * The parent for this dialog
- * @param title
- * Show the title for this dialog
- * @param message
- * Show the message for this dialog
- */
- public static void showMessage(final Component parent, final String title, final String message) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (message == null) throw new NullPointerException("Message must not be null");
-
- JOptionPane.showMessageDialog(parent, title, message, JOptionPane.INFORMATION_MESSAGE);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleFileChooser.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleFileChooser.java
deleted file mode 100644
index 7da0bd8..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleFileChooser.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package bjc.utils.gui;
-
-import java.awt.Component;
-import java.io.File;
-
-import javax.swing.JFileChooser;
-
-import bjc.utils.exceptions.FileNotChosenException;
-
-/**
- * Utility class for easily prompting user for files.
- *
- * Built for Swing.
- *
- * @author ben
- *
- */
-public class SimpleFileChooser {
- private static File doOpenFile(final Component parent, final String title, final JFileChooser files) {
- if (title == null) throw new NullPointerException("Title must not be null");
-
- files.setDialogTitle(title);
-
- boolean success = false;
-
- while (!success) {
- try {
- maybeDoOpenFile(parent, files);
-
- success = true;
- } catch (final FileNotChosenException fncx) {
- // We don't care about specifics
- SimpleDialogs.showError(parent, "I/O Error", "Please pick a file to open");
- }
- }
-
- return files.getSelectedFile();
- }
-
- private static File doSaveFile(final Component parent, final String title, final JFileChooser files) {
- if (title == null) throw new NullPointerException("Title must not be null");
-
- files.setDialogTitle(title);
-
- final boolean success = false;
-
- while (!success) {
- try {
- maybeDoSaveFile(parent, files);
-
- return files.getSelectedFile();
- } catch (final FileNotChosenException fncex) {
- // We don't care about specifics
- SimpleDialogs.showError(parent, "I/O Error", "Please pick a file to save to");
- }
- }
- }
-
- /**
- * Prompt the user with a "Open File..." dialog. Keeps prompting them
- * until they pick a file.
- *
- * @param parent
- * The component to use as the parent for the dialog.
- * @param title
- * The title of the dialog to prompt with.
- * @return The file the user has chosen.
- */
- public static File getOpenFile(final Component parent, final String title) {
- final JFileChooser files = new JFileChooser();
-
- return doOpenFile(parent, title, files);
- }
-
- /**
- * Prompt the user with a "Open File..." dialog. Keeps prompting them
- * until they pick a file.
- *
- * @param parent
- * The component to use as the parent for the dialog.
- * @param title
- * The title of the dialog to prompt with.
- * @param extensions
- * The list of file extensions the file should have.
- * @return The file the user has chosen.
- */
- public static File getOpenFile(final Component parent, final String title, final String... extensions) {
- final JFileChooser files = new JFileChooser();
-
- files.addChoosableFileFilter(new ExtensionFileFilter(extensions));
-
- return doOpenFile(parent, title, files);
- }
-
- /**
- * Prompt the user with a "Save File..." dialog.
- *
- * @param parent
- * The component to use as the parent for the dialog.
- * @param title
- * The title of the dialog to prompt with.
- * @return The file the user chose.
- */
- public static File getSaveFile(final Component parent, final String title) {
- final JFileChooser files = new JFileChooser();
-
- return doSaveFile(parent, title, files);
- }
-
- /**
- * Prompt the user with a "Save File..." dialog.
- *
- * @param parent
- * The component to use as the parent for the dialog.
- * @param title
- * The title of the dialog to prompt with.
- * @param extensions
- * The extensions of the files the user can choose.
- * @return The file the user chose.
- */
- public static File getSaveFile(final Component parent, final String title, final String... extensions) {
- final JFileChooser files = new JFileChooser();
-
- files.addChoosableFileFilter(new ExtensionFileFilter(extensions));
-
- return doSaveFile(parent, title, files);
- }
-
- private static void maybeDoOpenFile(final Component parent, final JFileChooser files)
- throws FileNotChosenException {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (files == null) throw new NullPointerException("File chooser must not be null");
-
- final int result = files.showSaveDialog(parent);
-
- if (result != JFileChooser.APPROVE_OPTION) throw new FileNotChosenException();
- }
-
- private static void maybeDoSaveFile(final Component parent, final JFileChooser files)
- throws FileNotChosenException {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (files == null) throw new NullPointerException("File chooser must not be null");
-
- final int result = files.showSaveDialog(parent);
-
- if (result != JFileChooser.APPROVE_OPTION) throw new FileNotChosenException();
- }
-
- /**
- * Prompt the user with a "Open File..." dialog.
- *
- * @param parent
- * The component to use as the parent for the dialog.
- * @param title
- * The title of the dialog to prompt with.
- * @return The file if the user chose one or null if they didn't.
- */
- public static File maybeOpenFile(final Component parent, final String title) {
- if (title == null) throw new NullPointerException("Title must not be null");
-
- final JFileChooser files = new JFileChooser();
- files.setDialogTitle(title);
-
- try {
- maybeDoOpenFile(parent, files);
- } catch (final FileNotChosenException fncex) {
- // We don't care about specifics
- }
-
- return files.getSelectedFile();
- }
-
- /**
- * Prompt the user with a "Save File..." dialog.
- *
- * @param parent
- * The component to use as the parent for the dialog.
- * @param title
- * The title of the dialog to prompt with.
- * @return The file if the user chose one or null if they didn't.
- */
- public static File maybeSaveFile(final Component parent, final String title) {
- if (title == null) throw new NullPointerException("Title must not be null");
-
- final JFileChooser files = new JFileChooser();
- files.setDialogTitle(title);
-
- try {
- maybeDoSaveFile(parent, files);
- } catch (final FileNotChosenException fncex) {
- // We don't care about specifics
- }
-
- return files.getSelectedFile();
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalDialogs.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalDialogs.java
deleted file mode 100644
index 5237557..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalDialogs.java
+++ /dev/null
@@ -1,208 +0,0 @@
-package bjc.utils.gui;
-
-import java.awt.Component;
-import java.util.function.Function;
-import java.util.function.Predicate;
-
-import javax.swing.JOptionPane;
-
-/**
- * Utility class for getting simple input from the user.
- *
- * Modified to work with JDesktopPanes
- *
- * @author ben
- *
- */
-public class SimpleInternalDialogs {
- /**
- * Get a bounded integer from the user.
- *
- * @param parent
- * The parent component for the dialogs.
- * @param title
- * The title for the dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @param lowerBound
- * The lower integer bound to accept.
- * @param upperBound
- * The upper integer bound to accept.
- * @return A int within the specified bounds.
- */
- public static int getBoundedInt(final Component parent, final String title, final String prompt,
- final int lowerBound, final int upperBound) {
- return getValue(parent, title, prompt, (strang) -> {
- try {
- final int value = Integer.parseInt(strang);
-
- return value < upperBound && value > lowerBound;
- } catch (final NumberFormatException nfex) {
- // We don't care about the specifics of the
- // exception, just
- // that this value isn't good
- return false;
- }
- }, Integer::parseInt);
- }
-
- /**
- * Get a integer from the user
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @return A int.
- */
- public static int getInt(final Component parent, final String title, final String prompt) {
- return getValue(parent, title, prompt, strang -> {
- try {
- Integer.parseInt(strang);
- return true;
- } catch (final NumberFormatException nfex) {
- // We don't care about this exception, just mark
- // the value
- // as not good
- return false;
- }
- }, Integer::parseInt);
- }
-
- /**
- * Get a string from the user
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for the dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @return A string.
- */
- public static String getString(final Component parent, final String title, final String prompt) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (prompt == null) throw new NullPointerException("Prompt must not be null");
-
- return JOptionPane.showInternalInputDialog(parent, prompt, title, JOptionPane.QUESTION_MESSAGE);
- }
-
- /**
- * Get a value parsable from a string from the user.
- *
- * @param <E>
- * The type of the value parsed from the string
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @param validator
- * A predicate to determine if a input is valid.
- * @param transformer
- * The function to transform the string into a value.
- * @return The value parsed from a string.
- */
- public static <E> E getValue(final Component parent, final String title, final String prompt,
- final Predicate<String> validator, final Function<String, E> transformer) {
- if (validator == null)
- throw new NullPointerException("Validator must not be null");
- else if (transformer == null) throw new NullPointerException("Transformer must not be null");
-
- String strang = getString(parent, title, prompt);
-
- while (!validator.test(strang)) {
- showError(parent, "I/O Error", "Please enter a valid value");
-
- strang = getString(parent, title, prompt);
- }
-
- return transformer.apply(strang);
- }
-
- /**
- * Get a whole number from the user.
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param prompt
- * The prompt to tell the user what to enter.
- * @return A whole number.
- */
- public static int getWhole(final Component parent, final String title, final String prompt) {
- return getBoundedInt(parent, title, prompt, 0, Integer.MAX_VALUE);
- }
-
- /**
- * Ask the user a Yes/No question.
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param question
- * The question to ask the user.
- * @return True if the user said yes, false otherwise.
- */
- public static boolean getYesNo(final Component parent, final String title, final String question) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (question == null) throw new NullPointerException("Question must not be null");
-
- final int result = JOptionPane.showInternalConfirmDialog(parent, question, title,
- JOptionPane.YES_NO_OPTION);
-
- return result == JOptionPane.YES_OPTION ? true : false;
- }
-
- /**
- * Show a error message to the user
- *
- * @param parent
- * The parent component for dialogs.
- * @param title
- * The title for dialogs.
- * @param message
- * The error to show the user.
- */
- public static void showError(final Component parent, final String title, final String message) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (message == null) throw new NullPointerException("Error message must not be null");
-
- JOptionPane.showInternalMessageDialog(parent, message, title, JOptionPane.ERROR_MESSAGE);
- }
-
- /**
- * Show an informative message to the user
- *
- * @param parent
- * The parent for this dialog
- * @param title
- * Show the title for this dialog
- * @param message
- * Show the message for this dialog
- */
- public static void showMessage(final Component parent, final String title, final String message) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null)
- throw new NullPointerException("Title must not be null");
- else if (message == null) throw new NullPointerException("Message must not be null");
-
- JOptionPane.showInternalMessageDialog(parent, title, message, JOptionPane.INFORMATION_MESSAGE);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalFrame.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalFrame.java
deleted file mode 100644
index afb498e..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInternalFrame.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package bjc.utils.gui;
-
-import javax.swing.JInternalFrame;
-
-/**
- * A simple internal frame class
- *
- * @author ben
- *
- */
-public class SimpleInternalFrame extends JInternalFrame {
- private static final long serialVersionUID = -2966801321260716617L;
-
- /**
- * Create a new blank internal frame
- */
- public SimpleInternalFrame() {
- super();
- }
-
- /**
- * Create a new blank internal frame with a specific title
- *
- * @param title
- * The title of the internal frame
- */
- public SimpleInternalFrame(final String title) {
- super(title);
- }
-
- protected void setupFrame() {
- setSize(320, 240);
-
- setResizable(true);
-
- setClosable(true);
- setMaximizable(true);
- setIconifiable(true);
- }
-} \ No newline at end of file
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleJList.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleJList.java
deleted file mode 100644
index 411d0db..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleJList.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package bjc.utils.gui;
-
-import javax.swing.DefaultListModel;
-import javax.swing.JList;
-import javax.swing.ListModel;
-
-/**
- * Utility class for making JLists and their models.
- *
- * @author ben
- *
- */
-public class SimpleJList {
- /**
- * Create a new JList from a given list.
- *
- * @param <E>
- * The type of data in the JList
- *
- * @param source
- * The list to populate the JList with.
- * @return A JList populated with the elements from ls.
- */
- public static <E> JList<E> buildFromList(final Iterable<E> source) {
- if (source == null) throw new NullPointerException("Source must not be null");
-
- return new JList<>(buildModel(source));
- }
-
- /**
- * Create a new list model from a given list.
- *
- * @param <E>
- * The type of data in the list model
- *
- * @param source
- * The list to fill the list model from.
- * @return A list model populated with the elements from ls.
- */
- public static <E> ListModel<E> buildModel(final Iterable<E> source) {
- if (source == null) throw new NullPointerException("Source must not be null");
-
- final DefaultListModel<E> defaultModel = new DefaultListModel<>();
-
- source.forEach(defaultModel::addElement);
-
- return defaultModel;
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleTitledBorder.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleTitledBorder.java
deleted file mode 100644
index 9b01507..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleTitledBorder.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package bjc.utils.gui;
-
-import javax.swing.border.EtchedBorder;
-import javax.swing.border.TitledBorder;
-
-/**
- * A simple border with a title attached to it.
- *
- * @author ben
- *
- */
-public class SimpleTitledBorder extends TitledBorder {
- // Version ID for serialization
- private static final long serialVersionUID = -5655969079949148487L;
-
- /**
- * Create a new border with the specified title.
- *
- * @param title
- * The title for the border.
- */
- public SimpleTitledBorder(final String title) {
- super(new EtchedBorder(), title);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/TextAreaOutputStream.java b/BJC-Utils2/src/main/java/bjc/utils/gui/TextAreaOutputStream.java
deleted file mode 100644
index fbc58ed..0000000
--- a/BJC-Utils2/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/BJC-Utils2/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java b/BJC-Utils2/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java
deleted file mode 100644
index eb60ae2..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/awt/ExtensionFileFilter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package bjc.utils.gui.awt;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.util.List;
-
-import bjc.utils.funcdata.FunctionalList;
-import bjc.utils.funcdata.IList;
-
-/**
- * Filter a set of filenames by extension.
- *
- * Built for AWT
- *
- * @author ben
- *
- */
-public class ExtensionFileFilter implements FilenameFilter {
- /**
- * The list of extensions to filter
- */
- private final IList<String> extensions;
-
- /**
- * Create a new filter only showing files with the specified extensions.
- *
- * @param exts
- * The extensions to show in this filter.
- */
- public ExtensionFileFilter(final List<String> exts) {
- if (exts == null) throw new NullPointerException("Extensions must not be null");
-
- extensions = new FunctionalList<>(exts);
- }
-
- /**
- * Create a new filter only showing files with the specified extensions.
- *
- * @param exts
- * The extensions to show in this filter.
- */
- public ExtensionFileFilter(final String... exts) {
- extensions = new FunctionalList<>(exts);
- }
-
- @Override
- public boolean accept(final File directory, final String name) {
- return extensions.anyMatch(name::endsWith);
- }
-} \ No newline at end of file
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/awt/SimpleFileDialog.java b/BJC-Utils2/src/main/java/bjc/utils/gui/awt/SimpleFileDialog.java
deleted file mode 100644
index 77a4a59..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/awt/SimpleFileDialog.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package bjc.utils.gui.awt;
-
-import java.awt.FileDialog;
-import java.awt.Frame;
-import java.io.File;
-import java.io.FilenameFilter;
-
-import bjc.utils.gui.SimpleDialogs;
-
-/**
- * A simple way to get the user to pick a file
- *
- * Built for AWT.
- *
- * @author ben
- *
- */
-public class SimpleFileDialog {
- /**
- * Prompt the user to pick a file to open
- *
- * @param parent
- * The parent of the file picker
- * @param title
- * The title of the file picker
- * @return The file the user picked
- */
- public static File getOpenFile(final Frame parent, final String title) {
- return getOpenFile(parent, title, (String[]) null);
- }
-
- /**
- * Prompt the user to pick a file to open
- *
- * @param parent
- * The parent of the file picker
- * @param title
- * The title of the file picker
- * @param extensions
- * The extensions to accept as valid
- * @return The file the user picked
- */
- public static File getOpenFile(final Frame parent, final String title, final String... extensions) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null) throw new NullPointerException("Title must not be null");
-
- final FileDialog chooser = new FileDialog(parent, title, FileDialog.LOAD);
-
- if (extensions != null) {
- final FilenameFilter filter = new ExtensionFileFilter(extensions);
- chooser.setFilenameFilter(filter);
- }
-
- chooser.setVisible(true);
-
- while (chooser.getFile() == null) {
- SimpleDialogs.showError(parent, "File I/O Error", "Please choose a file to open.");
- chooser.setVisible(true);
- }
-
- return chooser.getFiles()[0];
- }
-
- /**
- * Prompt the user to pick a file to open
- *
- * @param parent
- * The parent of the file picker
- * @param title
- * The title of the file picker
- * @param extensions
- * The extensions to accept as valid
- * @return The file the user picked
- */
- public static File[] getOpenFiles(final Frame parent, final String title, final String... extensions) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null) throw new NullPointerException("Title must not be null");
-
- final FileDialog chooser = new FileDialog(parent, title, FileDialog.LOAD);
-
- if (extensions != null) {
- final FilenameFilter filter = new ExtensionFileFilter(extensions);
- chooser.setFilenameFilter(filter);
- }
-
- chooser.setMultipleMode(true);
- chooser.setVisible(true);
-
- while (chooser.getFile() == null) {
- SimpleDialogs.showError(parent, "File I/O Error", "Please choose a file to open.");
- chooser.setVisible(true);
- }
-
- return chooser.getFiles();
- }
-
- /**
- * Prompt the user to pick a file to save
- *
- * @param parent
- * The parent of the file picker
- * @param title
- * The title of the file picker
- * @return The file the user picked
- */
- public static File getSaveFile(final Frame parent, final String title) {
- return getSaveFile(parent, title, (String[]) null);
- }
-
- /**
- * Prompt the user to pick a file to save
- *
- * @param parent
- * The parent of the file picker
- * @param title
- * The title of the file picker
- * @param extensions
- * The extensions to accept as valid
- * @return The file the user picked
- */
- public static File getSaveFile(final Frame parent, final String title, final String... extensions) {
- if (parent == null)
- throw new NullPointerException("Parent must not be null");
- else if (title == null) throw new NullPointerException("Title must not be null");
-
- final FileDialog chooser = new FileDialog(parent, title, FileDialog.SAVE);
-
- if (extensions != null) {
- final FilenameFilter filter = new ExtensionFileFilter(extensions);
- chooser.setFilenameFilter(filter);
- }
-
- chooser.setVisible(true);
-
- while (chooser.getFile() == null) {
- SimpleDialogs.showError(parent, "File I/O Error", "Please choose a file to save to.");
- chooser.setVisible(true);
- }
-
- return chooser.getFiles()[0];
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/layout/AutosizeLayout.java b/BJC-Utils2/src/main/java/bjc/utils/gui/layout/AutosizeLayout.java
deleted file mode 100644
index 6f384f2..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/layout/AutosizeLayout.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package bjc.utils.gui.layout;
-
-import java.awt.GridLayout;
-
-/**
- * A layout that simply holds one component that it auto-resizes whenever it is
- * resized.
- *
- * @author ben
- *
- */
-public class AutosizeLayout extends GridLayout {
- // Version id for serialization
- private static final long serialVersionUID = -2495693595953396924L;
-
- /**
- * Create a new auto-size layout.
- */
- public AutosizeLayout() {
- super(1, 1);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/layout/HLayout.java b/BJC-Utils2/src/main/java/bjc/utils/gui/layout/HLayout.java
deleted file mode 100644
index 4ed1661..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/layout/HLayout.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package bjc.utils.gui.layout;
-
-import java.awt.GridLayout;
-
-/**
- * A layout manager that lays out its components horizontally, evenly sizing
- * them.
- *
- * @author ben
- *
- */
-public class HLayout extends GridLayout {
- // Version ID for serialization
- private static final long serialVersionUID = 1244964456966270026L;
-
- /**
- * Create a new horizontal layout with the specified number of columns.
- *
- * @param columns
- * The number of columns in this layout.
- */
- public HLayout(final int columns) {
- super(1, columns);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/layout/VLayout.java b/BJC-Utils2/src/main/java/bjc/utils/gui/layout/VLayout.java
deleted file mode 100644
index 6993365..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/layout/VLayout.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package bjc.utils.gui.layout;
-
-import java.awt.GridLayout;
-
-/**
- * A layout that lays out its components vertically, evenly sharing space among
- * them.
- *
- * @author ben
- *
- */
-public class VLayout extends GridLayout {
- // Version ID for serializations
- private static final long serialVersionUID = -6417962941602322663L;
-
- /**
- * Create a new vertical layout with the specified number of rows.
- *
- * @param rows
- * The number of rows.
- */
- public VLayout(final int rows) {
- super(rows, 1);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java
deleted file mode 100644
index 4f71d38..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/DropdownListPanel.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package bjc.utils.gui.panels;
-
-import java.awt.BorderLayout;
-
-import javax.swing.DefaultListModel;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.ListSelectionModel;
-
-import bjc.utils.funcdata.IList;
-import bjc.utils.gui.layout.AutosizeLayout;
-import bjc.utils.gui.layout.HLayout;
-
-/**
- * A panel that allows you to select choices from a dropdown list
- *
- * @author ben
- *
- */
-public class DropdownListPanel extends JPanel {
- private static final long serialVersionUID = 2719963952350133541L;
-
- /**
- * Create a new dropdown list panel
- *
- * @param <T>
- * The type of items in the dropdown list
- * @param type
- * The label of the type of items in the list
- * @param model
- * The model to put items into
- * @param choices
- * The items to choose from
- */
- public <T> DropdownListPanel(final String type, final DefaultListModel<T> model, final IList<T> choices) {
- setLayout(new AutosizeLayout());
-
- final JPanel itemInputPanel = new JPanel();
- itemInputPanel.setLayout(new BorderLayout());
-
- final JPanel addItemPanel = new JPanel();
- addItemPanel.setLayout(new HLayout(2));
-
- final JComboBox<T> addItemBox = new JComboBox<>();
- choices.forEach(addItemBox::addItem);
-
- final JButton addItemButton = new JButton("Add " + type);
-
- addItemPanel.add(addItemBox);
- addItemPanel.add(addItemButton);
-
- final JList<T> itemList = new JList<>(model);
- itemList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-
- final JButton removeItemButton = new JButton("Remove " + type);
-
- addItemButton.addActionListener((ev) -> {
- model.addElement(addItemBox.getItemAt(addItemBox.getSelectedIndex()));
- });
-
- removeItemButton.addActionListener((ev) -> {
- model.remove(itemList.getSelectedIndex());
- });
-
- itemInputPanel.add(addItemPanel, BorderLayout.PAGE_START);
- itemInputPanel.add(itemList, BorderLayout.CENTER);
- itemInputPanel.add(removeItemButton, BorderLayout.PAGE_END);
-
- add(itemInputPanel);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/FormattedInputPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/FormattedInputPanel.java
deleted file mode 100644
index 2cecf0c..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/FormattedInputPanel.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package bjc.utils.gui.panels;
-
-import java.util.function.Consumer;
-
-import javax.swing.JFormattedTextField;
-import javax.swing.JFormattedTextField.AbstractFormatter;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-
-import bjc.utils.gui.layout.HLayout;
-
-/**
- * A simple panel allowing for input of a single formatted value
- *
- * @author ben
- *
- * @param <InputVal>
- * The type of value being formatted
- */
-public class FormattedInputPanel<InputVal> extends JPanel {
- private static final long serialVersionUID = 5232016563558588031L;
-
- private final JFormattedTextField field;
-
- /**
- * Create a new formatted input panel
- *
- * @param label
- * The label for this panel
- * @param length
- * The length of this panel
- * @param formatter
- * The formatter to use for input
- * @param reciever
- * The action to call whenever the value changes
- */
- @SuppressWarnings("unchecked")
- public FormattedInputPanel(final String label, final int length, final AbstractFormatter formatter,
- final Consumer<InputVal> reciever) {
- setLayout(new HLayout(2));
-
- final JLabel lab = new JLabel(label);
- field = new JFormattedTextField(formatter);
-
- field.setColumns(length);
- field.setFocusLostBehavior(JFormattedTextField.COMMIT_OR_REVERT);
- field.addPropertyChangeListener("value", (event) -> {
- // This is safe, because InputVal should be the type of
- // whatever object the formatter is returning
- reciever.accept((InputVal) field.getValue());
- });
-
- add(lab);
- add(field);
- }
-
- /**
- * Reset the value in this panel to a specified value
- *
- * @param value
- * The value to set the panel to
- */
- public void resetValues(final InputVal value) {
- field.setValue(value);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java
deleted file mode 100644
index 653dace..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/HolderOutputPanel.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package bjc.utils.gui.panels;
-
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.Timer;
-
-import bjc.utils.data.IHolder;
-import bjc.utils.gui.layout.HLayout;
-
-/**
- * A panel that outputs a value bound to a {@link IHolder}
- *
- * @author ben
- *
- */
-public class HolderOutputPanel extends JPanel {
- private static final long serialVersionUID = 166573313903782080L;
-
- private Timer updater;
- private final JLabel value;
- private final int nDelay;
- private final IHolder<String> val;
-
- /**
- * Create a new display panel, backed by a holder
- *
- * @param lab
- * The label to attach to this field
- * @param valueHolder
- * The holder to get the value from
- * @param nDelay
- * The delay in ms between value updates
- */
- public HolderOutputPanel(final String lab, final IHolder<String> valueHolder, final int nDelay) {
- this.val = valueHolder;
- this.nDelay = nDelay;
-
- setLayout(new HLayout(2));
-
- final JLabel label = new JLabel(lab);
- value = new JLabel("(stopped)");
-
- updater = new Timer(nDelay, (event) -> {
- value.setText(valueHolder.getValue());
- });
-
- add(label);
- add(value);
- }
-
- /**
- * Set this panel back to its initial state
- */
- public void reset() {
- stopUpdating();
-
- value.setText("(stopped)");
-
- updater = new Timer(nDelay, (event) -> {
- value.setText(val.getValue());
- });
- }
-
- /**
- * Start updating the contents of the field from the holder
- */
- public void startUpdating() {
- updater.start();
- }
-
- /**
- * Stop updating the contents of the field from the holder
- */
- public void stopUpdating() {
- updater.stop();
-
- value.setText(value.getText() + " (stopped)");
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java
deleted file mode 100644
index cca73d5..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/ListParameterPanel.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package bjc.utils.gui.panels;
-
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-
-import javax.swing.DefaultListModel;
-import javax.swing.JButton;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.ListSelectionModel;
-
-import bjc.utils.funcdata.IList;
-import bjc.utils.gui.SimpleJList;
-import bjc.utils.gui.layout.HLayout;
-import bjc.utils.gui.layout.VLayout;
-
-/**
- * A panel that has a list of objects and ways of manipulating that list
- *
- * @author ben
- *
- * @param <E>
- * The type of data stored in the list
- */
-public class ListParameterPanel<E> extends JPanel {
- // Version id for serialization
- private static final long serialVersionUID = 3442971104975491571L;
-
- /**
- * Create a new panel using the specified actions for doing things
- *
- * @param add
- * The action that provides items
- * @param edit
- * The action that edits items
- * @param remove
- * The action that removes items
- */
- public ListParameterPanel(final Supplier<E> add, final Consumer<E> edit, final Consumer<E> remove) {
- this(add, edit, remove, null);
- }
-
- /**
- * Create a new panel using the specified actions for doing things
- *
- * @param add
- * The action that provides items
- * @param edit
- * The action that edits items
- * @param remove
- * The action that removes items
- * @param defaults
- * 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) {
- setLayout(new VLayout(2));
-
- JList<E> list;
-
- if (defaults != null) {
- list = SimpleJList.buildFromList(defaults.toIterable());
- } else {
- list = new JList<>(new DefaultListModel<>());
- }
-
- list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-
- final JPanel buttonPanel = new JPanel();
-
- int numButtons = 0;
-
- if (add != null) {
- numButtons++;
- }
-
- if (edit != null) {
- numButtons++;
- }
-
- if (remove != null) {
- numButtons++;
- }
-
- buttonPanel.setLayout(new HLayout(numButtons));
-
- JButton addParam = null;
-
- if (add != null) {
- addParam = new JButton("Add...");
- addParam.addActionListener((event) -> {
- final DefaultListModel<E> model = (DefaultListModel<E>) list.getModel();
-
- model.addElement(add.get());
- });
- }
-
- JButton editParam = null;
-
- if (edit != null) {
- editParam = new JButton("Edit...");
- editParam.addActionListener((event) -> {
- edit.accept(list.getSelectedValue());
- });
- }
-
- JButton removeParam = null;
-
- if (remove != null) {
- removeParam = new JButton("Remove...");
- removeParam.addActionListener((event) -> {
- final DefaultListModel<E> model = (DefaultListModel<E>) list.getModel();
-
- remove.accept(model.remove(list.getSelectedIndex()));
- });
- }
-
- if (add != null) {
- buttonPanel.add(addParam);
- }
-
- if (edit != null) {
- buttonPanel.add(editParam);
- }
-
- if (remove != null) {
- buttonPanel.add(removeParam);
- }
-
- add(list);
- add(buttonPanel);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleInputPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleInputPanel.java
deleted file mode 100644
index 65c533d..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleInputPanel.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package bjc.utils.gui.panels;
-
-import java.awt.BorderLayout;
-
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-
-/**
- * A simple component for text input
- *
- * @author ben
- *
- */
-public class SimpleInputPanel extends JPanel {
- private static final long serialVersionUID = -4734279623645236868L;
-
- /**
- * The text field containing the input value
- */
- public final JTextField inputValue;
-
- /**
- * Create a new input panel
- *
- * @param label
- * The label for the field
- * @param columns
- * The number of columns of text input to take
- */
- public SimpleInputPanel(final String label, final int columns) {
- setLayout(new BorderLayout());
-
- final JLabel inputLabel = new JLabel(label);
-
- if (columns < 1) {
- inputValue = new JTextField();
- } else {
- inputValue = new JTextField(columns);
- }
-
- add(inputLabel, BorderLayout.LINE_START);
- add(inputValue, BorderLayout.CENTER);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleListPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleListPanel.java
deleted file mode 100644
index edc1797..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleListPanel.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package bjc.utils.gui.panels;
-
-import java.awt.BorderLayout;
-import java.util.function.Consumer;
-import java.util.function.Predicate;
-
-import javax.swing.DefaultListModel;
-import javax.swing.JButton;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextField;
-import javax.swing.ListSelectionModel;
-
-import bjc.utils.gui.layout.AutosizeLayout;
-import bjc.utils.gui.layout.HLayout;
-
-/**
- * A simple list of strings
- *
- * @author ben
- *
- */
-public class SimpleListPanel extends JPanel {
- private static final long serialVersionUID = 2719963952350133541L;
-
- private static void addItem(final DefaultListModel<String> model, final Predicate<String> verifier,
- final Consumer<String> onFailure, final JTextField addItemField) {
- final String potentialItem = addItemField.getText();
-
- if (verifier == null || verifier.test(potentialItem)) {
- model.addElement(potentialItem);
- } else {
- onFailure.accept(potentialItem);
- }
-
- addItemField.setText("");
- }
-
- /**
- * Create a new list panel
- *
- * @param type
- * The type of things in the list
- * @param model
- * The model to put items into
- * @param verifier
- * The predicate to use to verify items
- * @param onFailure
- * The function to call when an item doesn't verify
- */
- public SimpleListPanel(final String type, final DefaultListModel<String> model,
- final Predicate<String> verifier, final Consumer<String> onFailure) {
- setLayout(new AutosizeLayout());
-
- final JPanel itemInputPanel = new JPanel();
- itemInputPanel.setLayout(new BorderLayout());
-
- final JPanel addItemPanel = new JPanel();
- addItemPanel.setLayout(new HLayout(2));
-
- final JTextField addItemField = new JTextField(255);
- final JButton addItemButton = new JButton("Add " + type);
-
- addItemPanel.add(addItemField);
- addItemPanel.add(addItemButton);
-
- final JList<String> itemList = new JList<>(model);
- itemList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-
- final JScrollPane listScroller = new JScrollPane(itemList);
-
- final JButton removeItemButton = new JButton("Remove " + type);
-
- addItemButton.addActionListener((ev) -> {
- addItem(model, verifier, onFailure, addItemField);
- });
-
- addItemField.addActionListener((ev) -> {
- addItem(model, verifier, onFailure, addItemField);
- });
-
- removeItemButton.addActionListener((ev) -> {
- model.remove(itemList.getSelectedIndex());
- });
-
- itemInputPanel.add(addItemPanel, BorderLayout.PAGE_START);
- itemInputPanel.add(listScroller, BorderLayout.CENTER);
- itemInputPanel.add(removeItemButton, BorderLayout.PAGE_END);
-
- add(itemInputPanel);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java
deleted file mode 100644
index 6106182..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SimpleSpinnerPanel.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package bjc.utils.gui.panels;
-
-import java.awt.BorderLayout;
-
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSpinner;
-import javax.swing.SpinnerModel;
-
-/**
- * A simple spinner control
- *
- * @author ben
- *
- */
-public class SimpleSpinnerPanel extends JPanel {
- private static final long serialVersionUID = -4734279623645236868L;
-
- /**
- * The spinner being used
- */
- public final JSpinner inputValue;
-
- /**
- * Create a new spinner panel
- *
- * @param label
- * The label for the spinner
- * @param model
- * The model to attach to the spinner
- */
- public SimpleSpinnerPanel(final String label, final SpinnerModel model) {
- setLayout(new BorderLayout());
-
- final JLabel inputLabel = new JLabel(label);
-
- inputValue = new JSpinner(model);
-
- add(inputLabel, BorderLayout.LINE_START);
- add(inputValue, BorderLayout.CENTER);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java
deleted file mode 100644
index e6a6da4..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/SliderInputPanel.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package bjc.utils.gui.panels;
-
-import java.text.ParseException;
-import java.util.function.Consumer;
-
-import javax.swing.JFormattedTextField;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-
-import bjc.utils.gui.layout.HLayout;
-
-/**
- * A simple input panel for a slider-controlled value and a manual-input field
- * for setting the slider
- *
- * @author ben
- *
- */
-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
- *
- * @author ben
- *
- */
- public static class SliderSettings {
- /**
- * The minimum value of the slider
- */
- public final int minValue;
- /**
- * The maximum value of the slider
- */
- public final int maxValue;
-
- /**
- * The initial value of the slider
- */
- public final int initValue;
-
- /**
- * Create a new slider settings, with the initial value in the
- * middle
- *
- * @param min
- * The minimum value of the slider
- * @param max
- * The maximum value of the slider
- */
- public SliderSettings(final int min, final int max) {
- this(min, max, (min + max) / 2);
- }
-
- /**
- * Create a new set of slider sttings
- *
- * @param min
- * The minimum slider value
- * @param max
- * The maximum slider value
- * @param init
- * Th initial slider value
- */
- public SliderSettings(final int min, final int max, final int init) {
- minValue = min;
- maxValue = max;
-
- initValue = init;
- }
- }
-
- private static final long serialVersionUID = 2956394160569961404L;
- private final JSlider slider;
- private final JFormattedTextField field;
-
- /**
- * Create a new slider input panel
- *
- * @param lab
- * The label for the field
- * @param settings
- * The settings for slider values
- * @param majorTick
- * The setting for where to place big ticks
- * @param minorTick
- * The setting for where to place small ticks
- * @param action
- * The action to execute for a given value
- */
- public SliderInputPanel(final String lab, final SliderSettings settings, final int majorTick,
- final int minorTick, final Consumer<Integer> action) {
- setLayout(new HLayout(3));
-
- final JLabel label = new JLabel(lab);
-
- slider = new JSlider(settings.minValue, settings.maxValue, settings.initValue);
- field = new JFormattedTextField(new NumberFormatter(settings));
-
- slider.setMajorTickSpacing(majorTick);
- slider.setMinorTickSpacing(minorTick);
- slider.setPaintTicks(true);
- slider.setPaintLabels(true);
-
- slider.addChangeListener((event) -> {
- if (slider.getValueIsAdjusting()) {
- // Do nothing
- } else {
- final int val = slider.getValue();
-
- field.setValue(val);
-
- action.accept(val);
- }
- });
-
- field.setFocusLostBehavior(JFormattedTextField.COMMIT_OR_REVERT);
- field.setColumns(15);
- field.addPropertyChangeListener("value", (event) -> {
- final Object value = field.getValue();
-
- if (value == null) {
- // Do nothing
- } else {
- slider.setValue((Integer) value);
- }
- });
-
- add(label);
- add(slider);
- add(field);
- }
-
- /**
- * Reset the values in this panel to a specified value
- *
- * @param value
- * The value to reset the fields to
- */
- public void resetValues(final int value) {
- slider.setValue(value);
-
- field.setValue(value);
- }
-}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/package-info.java b/BJC-Utils2/src/main/java/bjc/utils/gui/panels/package-info.java
deleted file mode 100644
index 4361885..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/panels/package-info.java
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
- * @author ben
- *
- */
-package bjc.utils.gui.panels; \ No newline at end of file