You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by rw...@apache.org on 2018/01/23 23:48:17 UTC

svn commit: r1822066 [2/2] - in /pivot/trunk: core/src/org/apache/pivot/json/ core/src/org/apache/pivot/serialization/ core/src/org/apache/pivot/xml/ demos/src/org/apache/pivot/demos/million/ tests/src/org/apache/pivot/tests/ tutorials/src/org/apache/p...

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/media/Movie.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/media/Movie.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/media/Movie.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/media/Movie.java Tue Jan 23 23:48:16 2018
@@ -26,68 +26,13 @@ import org.apache.pivot.wtk.Visual;
  * vector "animation".
  */
 public abstract class Movie implements Visual {
-    /**
-     * Movie listener list.
-     */
-    protected static class MovieListenerList extends ListenerList<MovieListener> implements
-        MovieListener {
-        @Override
-        public void sizeChanged(Movie movie, int previousWidth, int previousHeight) {
-            for (MovieListener listener : this) {
-                listener.sizeChanged(movie, previousWidth, previousHeight);
-            }
-        }
-
-        @Override
-        public void baselineChanged(Movie movie, int previousBaseline) {
-            for (MovieListener listener : this) {
-                listener.baselineChanged(movie, previousBaseline);
-            }
-        }
-
-        @Override
-        public void currentFrameChanged(Movie movie, int previousFrame) {
-            for (MovieListener listener : this) {
-                listener.currentFrameChanged(movie, previousFrame);
-            }
-        }
-
-        @Override
-        public void loopingChanged(Movie movie) {
-            for (MovieListener listener : this) {
-                listener.loopingChanged(movie);
-            }
-        }
-
-        @Override
-        public void movieStarted(Movie movie) {
-            for (MovieListener listener : this) {
-                listener.movieStarted(movie);
-            }
-        }
-
-        @Override
-        public void movieStopped(Movie movie) {
-            for (MovieListener listener : this) {
-                listener.movieStopped(movie);
-            }
-        }
-
-        @Override
-        public void regionUpdated(Movie movie, int x, int y, int width, int height) {
-            for (MovieListener listener : this) {
-                listener.regionUpdated(movie, x, y, width, height);
-            }
-        }
-    }
-
     private int currentFrame = -1;
     private int frameRate = 26;
     private boolean looping = false;
 
     private ApplicationContext.ScheduledCallback scheduledCallback = null;
 
-    protected MovieListenerList movieListeners = new MovieListenerList();
+    protected MovieListener.Listeners movieListeners = new MovieListener.Listeners();
 
     private final Runnable nextFrameCallback = new Runnable() {
         @Override

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/media/MovieListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/media/MovieListener.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/media/MovieListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/media/MovieListener.java Tue Jan 23 23:48:16 2018
@@ -16,13 +16,57 @@
  */
 package org.apache.pivot.wtk.media;
 
+import org.apache.pivot.util.ListenerList;
+
 /**
  * Movie listener interface.
  */
 public interface MovieListener {
     /**
+     * Movie listener list.
+     */
+    public static class Listeners extends ListenerList<MovieListener> implements MovieListener {
+        @Override
+        public void sizeChanged(Movie movie, int previousWidth, int previousHeight) {
+            forEach(listener -> listener.sizeChanged(movie, previousWidth, previousHeight));
+        }
+
+        @Override
+        public void baselineChanged(Movie movie, int previousBaseline) {
+            forEach(listener -> listener.baselineChanged(movie, previousBaseline));
+        }
+
+        @Override
+        public void currentFrameChanged(Movie movie, int previousFrame) {
+            forEach(listener -> listener.currentFrameChanged(movie, previousFrame));
+        }
+
+        @Override
+        public void loopingChanged(Movie movie) {
+            forEach(listener -> listener.loopingChanged(movie));
+        }
+
+        @Override
+        public void movieStarted(Movie movie) {
+            forEach(listener -> listener.movieStarted(movie));
+        }
+
+        @Override
+        public void movieStopped(Movie movie) {
+            forEach(listener -> listener.movieStopped(movie));
+        }
+
+        @Override
+        public void regionUpdated(Movie movie, int x, int y, int width, int height) {
+            forEach(listener -> listener.regionUpdated(movie, x, y, width, height));
+        }
+    }
+
+    /**
      * Movie listener adapter.
+     * @deprecated Since 2.1 and Java 8 the interface itself has default implementations.
      */
+    @Deprecated
     public static class Adapter implements MovieListener {
         @Override
         public void sizeChanged(Movie movie, int previousWidth, int previousHeight) {
@@ -67,7 +111,8 @@ public interface MovieListener {
      * @param previousWidth  The previous width of this movie.
      * @param previousHeight The previous value of the height before resizing.
      */
-    public void sizeChanged(Movie movie, int previousWidth, int previousHeight);
+    default public void sizeChanged(Movie movie, int previousWidth, int previousHeight) {
+    }
 
     /**
      * Called when a movie's baseline has changed.
@@ -75,7 +120,8 @@ public interface MovieListener {
      * @param movie            The movie that has changed.
      * @param previousBaseline The previous baseline value of the movie.
      */
-    public void baselineChanged(Movie movie, int previousBaseline);
+    default public void baselineChanged(Movie movie, int previousBaseline) {
+    }
 
     /**
      * Called when the movie's current frame changed.
@@ -83,14 +129,16 @@ public interface MovieListener {
      * @param movie         The movie that has changed.
      * @param previousFrame The previous frame index of the movie.
      */
-    public void currentFrameChanged(Movie movie, int previousFrame);
+    default public void currentFrameChanged(Movie movie, int previousFrame) {
+    }
 
     /**
      * Called when the movie's looping property changed.
      *
      * @param movie The source of this event.
      */
-    public void loopingChanged(Movie movie);
+    default public void loopingChanged(Movie movie) {
+    }
 
     /**
      * Called when the movie begins playing. The frame at which the movie is
@@ -99,7 +147,8 @@ public interface MovieListener {
      *
      * @param movie The movie that has just started to play.
      */
-    public void movieStarted(Movie movie);
+    default public void movieStarted(Movie movie) {
+    }
 
     /**
      * Called when the movie stops playing. The frame at which the movie stopped
@@ -108,7 +157,8 @@ public interface MovieListener {
      *
      * @param movie The movie that has just stopped playing.
      */
-    public void movieStopped(Movie movie);
+    default public void movieStopped(Movie movie) {
+    }
 
     /**
      * Called when a region within a movie needs to be repainted.
@@ -119,5 +169,6 @@ public interface MovieListener {
      * @param width  The width of the image to repaint.
      * @param height The height to repaint.
      */
-    public void regionUpdated(Movie movie, int x, int y, int width, int height);
+    default public void regionUpdated(Movie movie, int x, int y, int width, int height) {
+    }
 }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java Tue Jan 23 23:48:16 2018
@@ -143,7 +143,7 @@ public abstract class CalendarButtonSkin
         }
     };
 
-    private ContainerMouseListener displayMouseListener = new ContainerMouseListener.Adapter() {
+    private ContainerMouseListener displayMouseListener = new ContainerMouseListener() {
         @Override
         public boolean mouseDown(Container container, Mouse.Button button, int x, int y) {
             Display display = (Display) container;

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ColorChooserButtonSkin.java Tue Jan 23 23:48:16 2018
@@ -164,7 +164,7 @@ public abstract class ColorChooserButton
         }
     };
 
-    private ContainerMouseListener displayMouseListener = new ContainerMouseListener.Adapter() {
+    private ContainerMouseListener displayMouseListener = new ContainerMouseListener() {
         @Override
         public boolean mouseDown(Container container, Mouse.Button button, int x, int y) {
             ColorChooserButton colorChooserButton = (ColorChooserButton) getComponent();

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java Tue Jan 23 23:48:16 2018
@@ -153,7 +153,7 @@ public abstract class ListButtonSkin ext
         }
     };
 
-    private ContainerMouseListener displayMouseListener = new ContainerMouseListener.Adapter() {
+    private ContainerMouseListener displayMouseListener = new ContainerMouseListener() {
         @Override
         public boolean mouseDown(Container container, Mouse.Button button, int x, int y) {
             Display display = (Display) container;

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuBarItemSkin.java Tue Jan 23 23:48:16 2018
@@ -96,7 +96,7 @@ public abstract class MenuBarItemSkin ex
         }
     };
 
-    private ContainerMouseListener displayMouseListener = new ContainerMouseListener.Adapter() {
+    private ContainerMouseListener displayMouseListener = new ContainerMouseListener() {
         @Override
         public boolean mouseDown(Container container, Mouse.Button button, int x, int y) {
             Display display = (Display) container;

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java Tue Jan 23 23:48:16 2018
@@ -81,7 +81,7 @@ public abstract class MenuButtonSkin ext
         }
     };
 
-    private ContainerMouseListener displayMouseListener = new ContainerMouseListener.Adapter() {
+    private ContainerMouseListener displayMouseListener = new ContainerMouseListener() {
         @Override
         public boolean mouseDown(Container container, Mouse.Button button, int x, int y) {
             Display display = (Display) container;

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuItemSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuItemSkin.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuItemSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuItemSkin.java Tue Jan 23 23:48:16 2018
@@ -49,7 +49,7 @@ public abstract class MenuItemSkin exten
         }
     };
 
-    private ContainerMouseListener displayMouseListener = new ContainerMouseListener.Adapter() {
+    private ContainerMouseListener displayMouseListener = new ContainerMouseListener() {
         @Override
         public boolean mouseDown(Container container, Mouse.Button button, int x, int y) {
             Display display = (Display) container;

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MovieViewSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MovieViewSkin.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MovieViewSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MovieViewSkin.java Tue Jan 23 23:48:16 2018
@@ -43,7 +43,7 @@ public class MovieViewSkin extends Compo
     private int movieX = 0;
     private int movieY = 0;
 
-    private MovieListener movieListener = new MovieListener.Adapter() {
+    private MovieListener movieListener = new MovieListener() {
         @Override
         public void sizeChanged(Movie movie, int previousWidth, int previousHeight) {
             invalidateComponent();

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/Block.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/Block.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/Block.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/Block.java Tue Jan 23 23:48:16 2018
@@ -17,6 +17,7 @@
 package org.apache.pivot.wtk.text;
 
 import org.apache.pivot.util.ListenerList;
+import org.apache.pivot.util.Utils;
 import org.apache.pivot.wtk.HorizontalAlignment;
 
 /**
@@ -25,20 +26,9 @@ import org.apache.pivot.wtk.HorizontalAl
  */
 public abstract class Block extends Element {
 
-    private static class BlockListenerList extends ListenerList<BlockListener> implements
-        BlockListener {
-        @Override
-        public void horizontalAlignmentChanged(Block block,
-            HorizontalAlignment previousHorizontalAlignment) {
-            for (BlockListener listener : this) {
-                listener.horizontalAlignmentChanged(block, previousHorizontalAlignment);
-            }
-        }
-    }
-
     private HorizontalAlignment horizontalAlignment = HorizontalAlignment.LEFT;
 
-    private BlockListenerList blockListeners = new BlockListenerList();
+    private BlockListener.Listeners blockListeners = new BlockListener.Listeners();
 
     public Block() {
         super();
@@ -54,9 +44,7 @@ public abstract class Block extends Elem
     }
 
     public void setHorizontalAlignment(HorizontalAlignment horizontalAlignment) {
-        if (horizontalAlignment == null) {
-            throw new IllegalArgumentException("horizontalAlignment is null.");
-        }
+        Utils.checkNull(horizontalAlignment, "horizontalAlignment");
 
         HorizontalAlignment previousHorizontalAlignment = this.horizontalAlignment;
         if (previousHorizontalAlignment != horizontalAlignment) {

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BlockListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BlockListener.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BlockListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BlockListener.java Tue Jan 23 23:48:16 2018
@@ -16,13 +16,28 @@
  */
 package org.apache.pivot.wtk.text;
 
+import org.apache.pivot.util.ListenerList;
 import org.apache.pivot.wtk.HorizontalAlignment;
 
 /**
  * Block listener interface.
  */
 public interface BlockListener {
+    /**
+     * Block listeners.
+     */
+    public static class Listeners extends ListenerList<BlockListener> implements BlockListener {
+        @Override
+        public void horizontalAlignmentChanged(Block block,
+            HorizontalAlignment previousHorizontalAlignment) {
+            forEach(listener -> listener.horizontalAlignmentChanged(block, previousHorizontalAlignment));
+        }
+    }
 
+    /**
+     * @deprecated Since 2.1 and Java 8 the interface itself has default implementations.
+     */
+    @Deprecated
     public class Adapter implements BlockListener {
         @Override
         public void horizontalAlignmentChanged(Block block,
@@ -37,6 +52,7 @@ public interface BlockListener {
      * @param block                       The text block in question.
      * @param previousHorizontalAlignment The previous alignment value.
      */
-    public void horizontalAlignmentChanged(Block block,
-        HorizontalAlignment previousHorizontalAlignment);
+    default public void horizontalAlignmentChanged(Block block,
+        HorizontalAlignment previousHorizontalAlignment) {
+    }
 }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BulletedList.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BulletedList.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BulletedList.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BulletedList.java Tue Jan 23 23:48:16 2018
@@ -17,6 +17,7 @@
 package org.apache.pivot.wtk.text;
 
 import org.apache.pivot.util.ListenerList;
+import org.apache.pivot.util.Utils;
 
 /**
  * Element representing a bulleted list.
@@ -32,19 +33,9 @@ public class BulletedList extends List {
         CIRCLE_OUTLINE
     }
 
-    private static class BulletedListListenerList extends ListenerList<BulletedListListener>
-        implements BulletedListListener {
-        @Override
-        public void styleChanged(BulletedList bulletedList, Style previousStyle) {
-            for (BulletedListListener listener : this) {
-                listener.styleChanged(bulletedList, previousStyle);
-            }
-        }
-    }
-
     private Style style = Style.CIRCLE;
 
-    private BulletedListListenerList bulletedListListeners = new BulletedListListenerList();
+    private BulletedListListener.Listeners bulletedListListeners = new BulletedListListener.Listeners();
 
     public BulletedList() {
         super();
@@ -60,9 +51,7 @@ public class BulletedList extends List {
     }
 
     public void setStyle(Style style) {
-        if (style == null) {
-            throw new IllegalArgumentException("style is null.");
-        }
+        Utils.checkNull(style, "style");
 
         Style previousStyle = this.style;
         if (previousStyle != style) {

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BulletedListListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BulletedListListener.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BulletedListListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/BulletedListListener.java Tue Jan 23 23:48:16 2018
@@ -16,11 +16,27 @@
  */
 package org.apache.pivot.wtk.text;
 
+import org.apache.pivot.util.ListenerList;
+
 /**
  * BulletedList listener interface.
  */
 public interface BulletedListListener {
+    /**
+     * Bulleted list listeners.
+     */
+    public static class Listeners extends ListenerList<BulletedListListener>
+        implements BulletedListListener {
+        @Override
+        public void styleChanged(BulletedList bulletedList, BulletedList.Style previousStyle) {
+            forEach(listener -> listener.styleChanged(bulletedList, previousStyle));
+        }
+    }
 
+    /**
+     * @deprecated Since 2.1 and Java 8 the interface itself has default implementations.
+     */
+    @Deprecated
     public class Adapter implements BulletedListListener {
         @Override
         public void styleChanged(BulletedList bulletedList, BulletedList.Style previousStyle) {
@@ -34,5 +50,6 @@ public interface BulletedListListener {
      * @param bulletedList  The list whose style has changed.
      * @param previousStyle The previous list style.
      */
-    public void styleChanged(BulletedList bulletedList, BulletedList.Style previousStyle);
+    default public void styleChanged(BulletedList bulletedList, BulletedList.Style previousStyle) {
+    }
 }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/Element.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/Element.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/Element.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/Element.java Tue Jan 23 23:48:16 2018
@@ -36,44 +36,6 @@ import org.apache.pivot.wtk.Theme;
  * style class property.
  */
 public abstract class Element extends Node implements Sequence<Node>, Iterable<Node> {
-    private static class ElementListenerList extends ListenerList<ElementListener> implements
-        ElementListener {
-        @Override
-        public void nodeInserted(Element element, int index) {
-            forEach(listener -> listener.nodeInserted(element, index));
-        }
-
-        @Override
-        public void nodesRemoved(Element element, int index, Sequence<Node> nodes) {
-            forEach(listener -> listener.nodesRemoved(element, index, nodes));
-        }
-
-        @Override
-        public void fontChanged(Element element, Font previousFont) {
-            forEach(listener -> listener.fontChanged(element, previousFont));
-        }
-
-        @Override
-        public void backgroundColorChanged(Element element, Color previousBackgroundColor) {
-            forEach(listener -> listener.backgroundColorChanged(element, previousBackgroundColor));
-        }
-
-        @Override
-        public void foregroundColorChanged(Element element, Color previousForegroundColor) {
-            forEach(listener -> listener.foregroundColorChanged(element, previousForegroundColor));
-        }
-
-        @Override
-        public void underlineChanged(Element element) {
-            forEach(listener -> listener.underlineChanged(element));
-        }
-
-        @Override
-        public void strikethroughChanged(Element element) {
-            forEach(listener -> listener.strikethroughChanged(element));
-        }
-    }
-
     private int characterCount = 0;
     private ArrayList<Node> nodes = new ArrayList<>();
     private java.awt.Font font;
@@ -82,7 +44,7 @@ public abstract class Element extends No
     private boolean underline;
     private boolean strikethrough;
 
-    private ElementListenerList elementListeners = new ElementListenerList();
+    private ElementListener.Listeners elementListeners = new ElementListener.Listeners();
 
     public Element() {
     }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/ElementListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/ElementListener.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/ElementListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/ElementListener.java Tue Jan 23 23:48:16 2018
@@ -20,12 +20,57 @@ import java.awt.Color;
 import java.awt.Font;
 
 import org.apache.pivot.collections.Sequence;
+import org.apache.pivot.util.ListenerList;
 
 /**
  * Element listener interface.
  */
 public interface ElementListener {
+    /**
+     * Element listeners.
+     */
+    public static class Listeners extends ListenerList<ElementListener> implements
+        ElementListener {
+        @Override
+        public void nodeInserted(Element element, int index) {
+            forEach(listener -> listener.nodeInserted(element, index));
+        }
+
+        @Override
+        public void nodesRemoved(Element element, int index, Sequence<Node> nodes) {
+            forEach(listener -> listener.nodesRemoved(element, index, nodes));
+        }
+
+        @Override
+        public void fontChanged(Element element, Font previousFont) {
+            forEach(listener -> listener.fontChanged(element, previousFont));
+        }
+
+        @Override
+        public void backgroundColorChanged(Element element, Color previousBackgroundColor) {
+            forEach(listener -> listener.backgroundColorChanged(element, previousBackgroundColor));
+        }
 
+        @Override
+        public void foregroundColorChanged(Element element, Color previousForegroundColor) {
+            forEach(listener -> listener.foregroundColorChanged(element, previousForegroundColor));
+        }
+
+        @Override
+        public void underlineChanged(Element element) {
+            forEach(listener -> listener.underlineChanged(element));
+        }
+
+        @Override
+        public void strikethroughChanged(Element element) {
+            forEach(listener -> listener.strikethroughChanged(element));
+        }
+    }
+
+    /**
+     * @deprecated Since 2.1 and Java 8 the interface itself has default implementations.
+     */
+    @Deprecated
     public class Adapter implements ElementListener {
         @Override
         public void nodeInserted(Element element, int index) {
@@ -69,7 +114,8 @@ public interface ElementListener {
      * @param element The element that has changed.
      * @param index   Where in the element's node sequence the new one was inserted.
      */
-    public void nodeInserted(Element element, int index);
+    default public void nodeInserted(Element element, int index) {
+    }
 
     /**
      * Called when nodes have been removed from an element.
@@ -78,7 +124,8 @@ public interface ElementListener {
      * @param index   The starting index of where nodes were removed.
      * @param nodes   The actual sequence of removed nodes.
      */
-    public void nodesRemoved(Element element, int index, Sequence<Node> nodes);
+    default public void nodesRemoved(Element element, int index, Sequence<Node> nodes) {
+    }
 
     /**
      * Called when the font has changed.
@@ -86,7 +133,8 @@ public interface ElementListener {
      * @param element      The element that changed.
      * @param previousFont What the font used to be.
      */
-    public void fontChanged(Element element, java.awt.Font previousFont);
+    default public void fontChanged(Element element, java.awt.Font previousFont) {
+    }
 
     /**
      * Called when the background color has changed.
@@ -94,7 +142,8 @@ public interface ElementListener {
      * @param element                 The element that changed.
      * @param previousBackgroundColor What the background color was before the change.
      */
-    public void backgroundColorChanged(Element element, Color previousBackgroundColor);
+    default public void backgroundColorChanged(Element element, Color previousBackgroundColor) {
+    }
 
     /**
      * Called when the foreground color has changed.
@@ -102,19 +151,22 @@ public interface ElementListener {
      * @param element                 The element whose color changed.
      * @param previousForegroundColor The old foreground color.
      */
-    public void foregroundColorChanged(Element element, Color previousForegroundColor);
+    default public void foregroundColorChanged(Element element, Color previousForegroundColor) {
+    }
 
     /**
      * Called when underline style has changed.
      *
      * @param element The element that changed.
      */
-    public void underlineChanged(Element element);
+    default public void underlineChanged(Element element) {
+    }
 
     /**
      * Called when strikethrough style has changed.
      *
      * @param element The element that changed.
      */
-    public void strikethroughChanged(Element element);
+    default public void strikethroughChanged(Element element) {
+    }
 }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/NumberedList.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/NumberedList.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/NumberedList.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/NumberedList.java Tue Jan 23 23:48:16 2018
@@ -30,17 +30,9 @@ public class NumberedList extends List {
         DECIMAL, LOWER_ALPHA, UPPER_ALPHA, LOWER_ROMAN, UPPER_ROMAN
     }
 
-    private static class NumberedListListenerList extends ListenerList<NumberedListListener>
-        implements NumberedListListener {
-        @Override
-        public void styleChanged(NumberedList numberedList, Style previousStyle) {
-            forEach(listener -> listener.styleChanged(numberedList, previousStyle));
-        }
-    }
-
     private Style style = Style.DECIMAL;
 
-    private NumberedListListenerList numberedListListeners = new NumberedListListenerList();
+    private NumberedListListener.Listeners numberedListListeners = new NumberedListListener.Listeners();
 
     public NumberedList() {
         super();

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/NumberedListListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/NumberedListListener.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/NumberedListListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/NumberedListListener.java Tue Jan 23 23:48:16 2018
@@ -16,11 +16,27 @@
  */
 package org.apache.pivot.wtk.text;
 
+import org.apache.pivot.util.ListenerList;
+
 /**
  * NumberedList listener interface.
  */
 public interface NumberedListListener {
+    /**
+     * Numbered list listeners.
+     */
+    public static class Listeners extends ListenerList<NumberedListListener>
+        implements NumberedListListener {
+        @Override
+        public void styleChanged(NumberedList numberedList, NumberedList.Style previousStyle) {
+            forEach(listener -> listener.styleChanged(numberedList, previousStyle));
+        }
+    }
 
+    /**
+     * @deprecated Since 2.1 and Java 8 the interface itself has default implementations.
+     */
+    @Deprecated
     public class Adapter implements NumberedListListener {
         @Override
         public void styleChanged(NumberedList numberedList, NumberedList.Style previousStyle) {
@@ -34,5 +50,6 @@ public interface NumberedListListener {
      * @param numberedList  The list whose style has changed.
      * @param previousStyle The previous style for this list.
      */
-    public void styleChanged(NumberedList numberedList, NumberedList.Style previousStyle);
+    default public void styleChanged(NumberedList numberedList, NumberedList.Style previousStyle) {
+    }
 }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/TextNode.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/TextNode.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/TextNode.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/TextNode.java Tue Jan 23 23:48:16 2018
@@ -24,31 +24,8 @@ import org.apache.pivot.wtk.Span;
  * Node representing a sequence of characters.
  */
 public final class TextNode extends Node {
-    private static class TextNodeListenerList extends ListenerList<TextNodeListener>
-        implements TextNodeListener {
-        /**
-         * @param textNode The text node that changed.
-         * @param index    Index into this node.
-         * @param count    Count of characters inserted here.
-         */
-        @Override
-        public void charactersInserted(TextNode textNode, int index, int count) {
-            forEach(listener -> listener.charactersInserted(textNode, index, count));
-        }
-
-        /**
-         * @param textNode The text node that changed.
-         * @param index    Index into this node.
-         * @param count    Count of characters removed here.
-         */
-        @Override
-        public void charactersRemoved(TextNode textNode, int index, int count) {
-            forEach(listener -> listener.charactersRemoved(textNode, index, count));
-        }
-    }
-
     private StringBuilder characters = new StringBuilder();
-    private TextNodeListenerList textNodeListeners = new TextNodeListenerList();
+    private TextNodeListener.Listeners textNodeListeners = new TextNodeListener.Listeners();
 
     public TextNode() {
         this("");

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/text/TextNodeListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/text/TextNodeListener.java?rev=1822066&r1=1822065&r2=1822066&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/text/TextNodeListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/text/TextNodeListener.java Tue Jan 23 23:48:16 2018
@@ -16,11 +16,38 @@
  */
 package org.apache.pivot.wtk.text;
 
+import org.apache.pivot.util.ListenerList;
+
 /**
  * Text node listener interface.
  */
 public interface TextNodeListener {
     /**
+     * Text node listeners.
+     */
+    public static class Listeners extends ListenerList<TextNodeListener> implements TextNodeListener {
+        /**
+         * @param textNode The text node that changed.
+         * @param index    Index into this node.
+         * @param count    Count of characters inserted here.
+         */
+        @Override
+        public void charactersInserted(TextNode textNode, int index, int count) {
+            forEach(listener -> listener.charactersInserted(textNode, index, count));
+        }
+
+        /**
+         * @param textNode The text node that changed.
+         * @param index    Index into this node.
+         * @param count    Count of characters removed here.
+         */
+        @Override
+        public void charactersRemoved(TextNode textNode, int index, int count) {
+            forEach(listener -> listener.charactersRemoved(textNode, index, count));
+        }
+    }
+
+    /**
      * Called when characters have been inserted into a text node.
      *
      * @param textNode The text node that changed.