separate ListenerPanel in interface and class
authorNiki Roo <niki@nikiroo.be>
Sat, 25 Apr 2020 15:51:13 +0000 (17:51 +0200)
committerNiki Roo <niki@nikiroo.be>
Sat, 25 Apr 2020 15:51:13 +0000 (17:51 +0200)
ui/BreadCrumbsBar.java
ui/ListenerItem.java [new file with mode: 0644]
ui/ListenerPanel.java

index 8b993e64b58706c4bf1b567d482ff1618deae43d..a0e205c9d2152c6c8d0404a42217bdb42e420748 100644 (file)
@@ -3,7 +3,6 @@ package be.nikiroo.utils.ui;
 
 import java.awt.BorderLayout;
 import java.awt.Dimension;
-import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.ComponentAdapter;
diff --git a/ui/ListenerItem.java b/ui/ListenerItem.java
new file mode 100644 (file)
index 0000000..3fa41c8
--- /dev/null
@@ -0,0 +1,53 @@
+package be.nikiroo.utils.ui;
+
+import java.awt.event.ActionListener;
+
+/**
+ * The default {@link ActionListener} add/remove/fire methods.
+ * 
+ * @author niki
+ */
+public interface ListenerItem {
+       /**
+        * Check that this {@link ListenerItem} currently has
+        * {@link ActionListener}s that listen on it.
+        * 
+        * @return TRUE if it has
+        */
+       public boolean hasListeners();
+
+       /**
+        * Check how many events are currently waiting for an
+        * {@link ActionListener}.
+        * 
+        * @return the number of waiting events (can be 0)
+        */
+       public int getWaitingEventCount();
+
+       /**
+        * Adds the specified action listener to receive action events from this
+        * {@link ListenerItem}.
+        *
+        * @param listener
+        *            the action listener to be added
+        */
+       public void addActionListener(ActionListener listener);
+
+       /**
+        * Removes the specified action listener so that it no longer receives
+        * action events from this {@link ListenerItem}.
+        *
+        * @param listener
+        *            the action listener to be removed
+        */
+       public void removeActionListener(ActionListener listener);
+
+       /**
+        * Notify the listeners of an action.
+        * 
+        * @param listenerCommand
+        *            A string that may specify a command (possibly one of several)
+        *            associated with the event
+        */
+       public void fireActionPerformed(String listenerCommand);
+}
index 144cdd249a81be951a082618f2a9f4371adaf0a9..ada07960dbe5806f3750b54f83c3f4d413aeb423 100644 (file)
@@ -17,7 +17,7 @@ import javax.swing.JPanel;
  * 
  * @author niki
  */
-public class ListenerPanel extends JPanel {
+public class ListenerPanel extends JPanel implements ListenerItem {
        private static final long serialVersionUID = 1L;
 
        /** Waiting queue until at least one listener is here to get the events. */
@@ -30,33 +30,17 @@ public class ListenerPanel extends JPanel {
                waitingQueue = new LinkedList<ActionEvent>();
        }
 
-       /**
-        * Check that this {@link ListenerPanel} currently has
-        * {@link ActionListener}s that listen on it.
-        * 
-        * @return TRUE if it has
-        */
+       @Override
        public synchronized boolean hasListeners() {
                return listenerList.getListenerList().length > 1;
        }
 
-       /**
-        * Check how many events are currently waiting for an
-        * {@link ActionListener}.
-        * 
-        * @return the number of waiting events (can be 0)
-        */
+       @Override
        public synchronized int getWaitingEventCount() {
                return waitingQueue.size();
        }
 
-       /**
-        * Adds the specified action listener to receive action events from this
-        * {@link ListenerPanel}.
-        *
-        * @param listener
-        *            the action listener to be added
-        */
+       @Override
        public synchronized void addActionListener(ActionListener listener) {
                if (!hasListeners()) {
                        while (!waitingQueue.isEmpty()) {
@@ -67,25 +51,13 @@ public class ListenerPanel extends JPanel {
                listenerList.add(ActionListener.class, listener);
        }
 
-       /**
-        * Removes the specified action listener so that it no longer receives
-        * action events from this {@link ListenerPanel}.
-        *
-        * @param listener
-        *            the action listener to be removed
-        */
+       @Override
        public synchronized void removeActionListener(ActionListener listener) {
                listenerList.remove(ActionListener.class, listener);
        }
 
-       /**
-        * Notify the listeners of an action.
-        * 
-        * @param listenerCommand
-        *            A string that may specify a command (possibly one of several)
-        *            associated with the event
-        */
-       protected synchronized void fireActionPerformed(String listenerCommand) {
+       @Override
+       public synchronized void fireActionPerformed(String listenerCommand) {
                ActionEvent e = new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
                                listenerCommand);