summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-08-02 13:32:22 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-08-02 13:32:22 -0400
commit79fd9cdd3c0b334d1893cf3178e7fb2ec8982f72 (patch)
tree7245447dd6092730e153eda0172ce2e647382c07
parentcd01fccd05f7a98d3e0f71a86e153d349f7284ac (diff)
More GUI stuff
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java5
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java5
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java5
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java5
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInputPanel.java28
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java34
6 files changed, 73 insertions, 9 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java
index 211f964..4d50c56 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/ExtendedMap.java
@@ -92,4 +92,9 @@ class ExtendedMap<KeyType, ValueType> implements IMap<KeyType, ValueType> {
return ListUtils.mergeLists(store.valueList(),
delegate.valueList());
}
+
+ @Override
+ public void clear() {
+ store.clear();
+ }
}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java
index 0002a58..ce64519 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java
@@ -175,4 +175,9 @@ public class FunctionalMap<KeyType, ValueType>
return values;
}
+
+ @Override
+ public void clear() {
+ wrappedMap.clear();
+ }
} \ No newline at end of file
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java
index a2426b2..5e0c67e 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IMap.java
@@ -132,4 +132,9 @@ public interface IMap<KeyType, ValueType> {
* @return A list of values in this map
*/
IList<ValueType> valueList();
+
+ /**
+ * Delete all the values in the map
+ */
+ void clear();
} \ No newline at end of file
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java
index b620bd9..cc60dab 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/TransformedValueMap.java
@@ -97,4 +97,9 @@ final class TransformedValueMap<OldKey, OldValue, NewValue>
public IList<NewValue> valueList() {
return mapToTransform.valueList().map(transformer);
}
+
+ @Override
+ public void clear() {
+ mapToTransform.clear();
+ }
} \ No newline at end of file
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInputPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInputPanel.java
new file mode 100644
index 0000000..03f32f1
--- /dev/null
+++ b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInputPanel.java
@@ -0,0 +1,28 @@
+package bjc.utils.gui;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import bjc.utils.gui.layout.HLayout;
+
+public class SimpleInputPanel extends JPanel {
+ private static final long serialVersionUID = -4734279623645236868L;
+
+ public final JTextField inputValue;
+
+ public SimpleInputPanel(String label, int columns) {
+ setLayout(new HLayout(2));
+
+ JLabel inputLabel = new JLabel(label);
+
+ if (columns < 1) {
+ inputValue = new JTextField();
+ } else {
+ inputValue = new JTextField(columns);
+ }
+
+ add(inputLabel);
+ add(inputValue);
+ }
+}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java
index b203a61..3e4e0ad 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java
@@ -8,6 +8,7 @@ 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;
@@ -38,18 +39,18 @@ public class SimpleListPanel extends JPanel {
JList<String> itemList = new JList<>(listModel);
itemList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ JScrollPane listScroller = new JScrollPane(itemList);
+
JButton removeItemButton = new JButton("Remove " + itemType);
addItemButton.addActionListener((ev) -> {
- String potentialItem = addItemField.getText();
-
- if (itemVerifier == null || itemVerifier.test(potentialItem)) {
- listModel.addElement(potentialItem);
- } else {
- onVerificationFailure.accept(potentialItem);
- }
+ addItem(listModel, itemVerifier, onVerificationFailure,
+ addItemField);
+ });
- addItemField.setText("");
+ addItemField.addActionListener((ev) -> {
+ addItem(listModel, itemVerifier, onVerificationFailure,
+ addItemField);
});
removeItemButton.addActionListener((ev) -> {
@@ -57,9 +58,24 @@ public class SimpleListPanel extends JPanel {
});
itemInputPanel.add(addItemPanel, BorderLayout.PAGE_START);
- itemInputPanel.add(itemList, BorderLayout.CENTER);
+ itemInputPanel.add(listScroller, BorderLayout.CENTER);
itemInputPanel.add(removeItemButton, BorderLayout.PAGE_END);
add(itemInputPanel);
}
+
+ private static void addItem(DefaultListModel<String> listModel,
+ Predicate<String> itemVerifier,
+ Consumer<String> onVerificationFailure,
+ JTextField addItemField) {
+ String potentialItem = addItemField.getText();
+
+ if (itemVerifier == null || itemVerifier.test(potentialItem)) {
+ listModel.addElement(potentialItem);
+ } else {
+ onVerificationFailure.accept(potentialItem);
+ }
+
+ addItemField.setText("");
+ }
}