summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-25 22:11:28 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-25 22:11:28 -0400
commitfb7d03388e298258563c22abda1bd46cdaf991b7 (patch)
treeff2caeda751acd733ea00c089800ff380211f0b3 /BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java
parent42f7d379a430aaf2fad169f0170de04072b08b10 (diff)
General code cleanup, and some more GUI controls
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java
new file mode 100644
index 0000000..4cbfb61
--- /dev/null
+++ b/BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java
@@ -0,0 +1,60 @@
+package bjc.utils.gui;
+
+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 updateTimer;
+ private JLabel value;
+
+ /**
+ * Create a new display panel, backed by a holder
+ *
+ * @param lab
+ * The label to attach to this field
+ * @param val
+ * The holder to get the value from
+ * @param nDelay
+ * The delay in ms between value updates
+ */
+ public HolderOutputPanel(String lab, IHolder<String> val, int nDelay) {
+ setLayout(new HLayout(2));
+
+ JLabel label = new JLabel(lab);
+ value = new JLabel(val.getValue() + " (stopped)");
+
+ updateTimer = new Timer(nDelay, (event) -> {
+ value.setText(val.getValue());
+ });
+
+ add(label);
+ add(value);
+ }
+
+ /**
+ * Start updating the contents of the field from the holder
+ */
+ public void startUpdating() {
+ updateTimer.start();
+ }
+
+ /**
+ * Stop updating the contents of the field from the holder
+ */
+ public void stopUpdating() {
+ updateTimer.stop();
+
+ value.setText(value.getText() + " (stopped)");
+ }
+}