Author: rwhitcomb
Date: Mon Jan  8 16:45:11 2018
New Revision: 1820582

URL: http://svn.apache.org/viewvc?rev=1820582&view=rev
Log:
PIVOT-999: Update the rather messy code in TextPaneSkinNodeView that
creates the skin class for each node type to use a functional interface
so that a lambda expression can be used to greatly simplify the source
code of the map initialization.

Modified:
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNodeView.java

Modified: 
pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNodeView.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNodeView.java?rev=1820582&r1=1820581&r2=1820582&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNodeView.java 
(original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNodeView.java Mon 
Jan  8 16:45:11 2018
@@ -257,66 +257,31 @@ abstract class TextPaneSkinNodeView impl
      * objects given the node model objects, we will implement this interface
      * for each node type, which will just create the appropriate view object.
      */
+    @FunctionalInterface
     private interface NodeCreator {
         TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node node);
     }
 
     private static HashMap<Class<? extends Node>, NodeCreator> 
nodeViewCreatorMap = new HashMap<>();
     static {
-        nodeViewCreatorMap.put(Document.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinDocumentView(textPaneSkin, 
(Document)node);
-            }
-        });
-        nodeViewCreatorMap.put(Paragraph.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinParagraphView(textPaneSkin, 
(Paragraph)node);
-            }
-        });
-        nodeViewCreatorMap.put(TextNode.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinTextNodeView(textPaneSkin, 
(TextNode)node);
-            }
-        });
-        nodeViewCreatorMap.put(ImageNode.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinImageNodeView(textPaneSkin, 
(ImageNode)node);
-            }
-        });
-        nodeViewCreatorMap.put(ComponentNode.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinComponentNodeView(textPaneSkin, 
(ComponentNode)node);
-            }
-        });
-        nodeViewCreatorMap.put(TextSpan.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinSpanView(textPaneSkin, (TextSpan)node);
-            }
-        });
-        nodeViewCreatorMap.put(NumberedList.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinNumberedListView(textPaneSkin, 
(NumberedList)node);
-            }
-        });
-        nodeViewCreatorMap.put(BulletedList.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinBulletedListView(textPaneSkin, 
(BulletedList)node);
-            }
-        });
-        nodeViewCreatorMap.put(List.Item.class, new NodeCreator() {
-            @Override
-            public TextPaneSkinNodeView create(TextPaneSkin textPaneSkin, Node 
node) {
-                return new TextPaneSkinListItemView(textPaneSkin, 
(List.Item)node);
-            }
-        });
+        nodeViewCreatorMap.put(Document.class, (textPaneSkin, node) ->
+            new TextPaneSkinDocumentView(textPaneSkin, (Document)node));
+        nodeViewCreatorMap.put(Paragraph.class, (textPaneSkin, node) ->
+            new TextPaneSkinParagraphView(textPaneSkin, (Paragraph)node));
+        nodeViewCreatorMap.put(TextNode.class, (textPaneSkin, node) ->
+            new TextPaneSkinTextNodeView(textPaneSkin, (TextNode)node));
+        nodeViewCreatorMap.put(ImageNode.class, (textPaneSkin, node) ->
+            new TextPaneSkinImageNodeView(textPaneSkin, (ImageNode)node));
+        nodeViewCreatorMap.put(ComponentNode.class, (textPaneSkin, node) ->
+            new TextPaneSkinComponentNodeView(textPaneSkin, 
(ComponentNode)node));
+        nodeViewCreatorMap.put(TextSpan.class, (textPaneSkin, node) ->
+            new TextPaneSkinSpanView(textPaneSkin, (TextSpan)node));
+        nodeViewCreatorMap.put(NumberedList.class, (textPaneSkin, node) ->
+            new TextPaneSkinNumberedListView(textPaneSkin, 
(NumberedList)node));
+        nodeViewCreatorMap.put(BulletedList.class, (textPaneSkin, node) ->
+            new TextPaneSkinBulletedListView(textPaneSkin, 
(BulletedList)node));
+        nodeViewCreatorMap.put(List.Item.class, (textPaneSkin, node) ->
+            new TextPaneSkinListItemView(textPaneSkin, (List.Item)node));
     }
 
     /**


Reply via email to