diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-08-02 13:32:22 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-08-02 13:32:22 -0400 |
| commit | 79fd9cdd3c0b334d1893cf3178e7fb2ec8982f72 (patch) | |
| tree | 7245447dd6092730e153eda0172ce2e647382c07 | |
| parent | cd01fccd05f7a98d3e0f71a86e153d349f7284ac (diff) | |
More GUI stuff
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(""); + } } |
