You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by no...@apache.org on 2011/04/18 14:31:23 UTC

svn commit: r1094530 - /pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/

Author: noelgrandin
Date: Mon Apr 18 12:31:22 2011
New Revision: 1094530

URL: http://svn.apache.org/viewvc?rev=1094530&view=rev
Log:
breakWidth is only used for the duration of the validate() method, so it can be passed down the call stack instead of being an instance method

Modified:
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkin.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinBulletedListView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinComponentNodeView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinDocumentView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinImageNodeView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListItemView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNodeView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNumberedListView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinParagraphView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinSpanView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinTextNodeView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinVerticalElementView.java

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkin.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkin.java Mon Apr 18 12:31:22 2011
@@ -187,8 +187,7 @@ public class TextPaneSkin extends Contai
         if (documentView == null) {
            preferredWidth = 0;
         } else {
-            documentView.setBreakWidth(Integer.MAX_VALUE);
-            documentView.validate();
+            documentView.validate(Integer.MAX_VALUE);
 
             preferredWidth = documentView.getWidth() + margin.left + margin.right;
         }
@@ -211,8 +210,7 @@ public class TextPaneSkin extends Contai
                 breakWidth = Integer.MAX_VALUE;
             }
 
-            documentView.setBreakWidth(breakWidth);
-            documentView.validate();
+            documentView.validate(breakWidth);
 
             preferredHeight = documentView.getHeight() + margin.top + margin.bottom;
         }
@@ -229,8 +227,7 @@ public class TextPaneSkin extends Contai
            preferredWidth = 0;
            preferredHeight = 0;
         } else {
-            documentView.setBreakWidth(Integer.MAX_VALUE);
-            documentView.validate();
+            documentView.validate(Integer.MAX_VALUE);
 
             preferredWidth = documentView.getWidth() + margin.left + margin.right;
             preferredHeight = documentView.getHeight() + margin.top + margin.bottom;
@@ -259,8 +256,7 @@ public class TextPaneSkin extends Contai
             } else {
                 breakWidth = Integer.MAX_VALUE;
             }
-            documentView.setBreakWidth(breakWidth);
-            documentView.validate();
+            documentView.validate(breakWidth);
             documentView.setSkinLocation(margin.left, margin.top);
 
             updateSelection();

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinBulletedListView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinBulletedListView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinBulletedListView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinBulletedListView.java Mon Apr 18 12:31:22 2011
@@ -42,7 +42,7 @@ class TextPaneSkinBulletedListView exten
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
 
             BulletedList bulletedList = (BulletedList)getNode();
@@ -67,7 +67,7 @@ class TextPaneSkinBulletedListView exten
                     listItemView.getIndexTextWidth());
             }
 
-            super.validate();
+            super.validate(breakWidth);
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinComponentNodeView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinComponentNodeView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinComponentNodeView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinComponentNodeView.java Mon Apr 18 12:31:22 2011
@@ -60,7 +60,7 @@ class TextPaneSkinComponentNodeView exte
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
             ComponentNode componentNode = (ComponentNode) getNode();
             Component component = componentNode.getComponent();
@@ -73,7 +73,7 @@ class TextPaneSkinComponentNodeView exte
                 setSize(component.getWidth(), component.getHeight());
             }
 
-            super.validate();
+            super.validateComplete();
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinDocumentView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinDocumentView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinDocumentView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinDocumentView.java Mon Apr 18 12:31:22 2011
@@ -41,10 +41,10 @@ class TextPaneSkinDocumentView extends T
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
-            verticalValidate();
-            super.validate();
+            verticalValidate(breakWidth);
+            super.validateComplete();
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinImageNodeView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinImageNodeView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinImageNodeView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinImageNodeView.java Mon Apr 18 12:31:22 2011
@@ -52,7 +52,7 @@ class TextPaneSkinImageNodeView extends 
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
             ImageNode imageNode = (ImageNode)getNode();
             Image image = imageNode.getImage();
@@ -63,7 +63,7 @@ class TextPaneSkinImageNodeView extends 
                 setSize(image.getWidth(), image.getHeight());
             }
 
-            super.validate();
+            super.validateComplete();
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListItemView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListItemView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListItemView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListItemView.java Mon Apr 18 12:31:22 2011
@@ -43,19 +43,18 @@ class TextPaneSkinListItemView extends T
 
     public void setIndexText(String indexText) {
         indexTextNode.setText(indexText);
-        indexTextNodeView.setBreakWidth(Integer.MAX_VALUE);
-        indexTextNodeView.validate();
+        indexTextNodeView.validate(Integer.MAX_VALUE);
         indexTextNodeView.setLocation(0, 0);
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
 
-            indexTextNodeView.validate();
+            indexTextNodeView.validate(breakWidth);
             indexTextNodeView.setLocation(0, 0);
 
-            int breakWidth = getBreakWidth() - indexTextNodeView.getWidth();
+            breakWidth -= indexTextNodeView.getWidth();
             int itemsWidth = 0;
             int itemsY = 0;
 
@@ -65,8 +64,7 @@ class TextPaneSkinListItemView extends T
 
             for ( ; iterator.hasNext(); ) {
                 TextPaneSkinNodeView nodeView = iterator.next();
-                nodeView.setBreakWidth(breakWidth);
-                nodeView.validate();
+                nodeView.validate(breakWidth);
 
                 nodeView.setLocation(indexTextNodeView.getWidth(), itemsY);
 
@@ -79,7 +77,7 @@ class TextPaneSkinListItemView extends T
 
             setSize(width, height);
 
-            super.validate();
+            super.validateComplete();
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinListView.java Mon Apr 18 12:31:22 2011
@@ -31,10 +31,10 @@ class TextPaneSkinListView extends TextP
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
-            verticalValidate();
-            super.validate();
+            verticalValidate(breakWidth);
+            super.validateComplete();
         }
     }
 }

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=1094530&r1=1094529&r2=1094530&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 Apr 18 12:31:22 2011
@@ -39,8 +39,6 @@ abstract class TextPaneSkinNodeView impl
     private int x = 0;
     private int y = 0;
 
-    private int breakWidth = -1;
-
     private boolean valid = false;
 
     public TextPaneSkinNodeView(Node node) {
@@ -158,27 +156,11 @@ abstract class TextPaneSkinNodeView impl
         }
     }
 
-    public void validate() {
+    protected final void validateComplete() {
         valid = true;
     }
 
-    public int getBreakWidth() {
-        return breakWidth;
-    }
-
-    public void setBreakWidth(int breakWidth) {
-        int previousBreakWidth = this.breakWidth;
-
-        if (previousBreakWidth != breakWidth) {
-            this.breakWidth = breakWidth;
-
-            // NOTE We can't call invalidate() here because it would ultimately
-            // trigger a call to invalidateComponent(), which we don't want; this method
-            // is called during preferred size calculations as well as layout, neither
-            // of which should ever trigger an invalidate.
-            valid = false;
-        }
-    }
+    public abstract void validate(int breakWidth);
 
     public int getOffset() {
         return node.getOffset();

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNumberedListView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNumberedListView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNumberedListView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinNumberedListView.java Mon Apr 18 12:31:22 2011
@@ -19,8 +19,8 @@ package org.apache.pivot.wtk.skin;
 import java.util.Locale;
 
 import org.apache.pivot.wtk.text.NumberedList;
-import org.apache.pivot.wtk.text.NumberedListListener;
 import org.apache.pivot.wtk.text.NumberedList.Style;
+import org.apache.pivot.wtk.text.NumberedListListener;
 
 class TextPaneSkinNumberedListView extends TextPaneSkinListView implements NumberedListListener {
 
@@ -89,7 +89,7 @@ class TextPaneSkinNumberedListView exten
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
 
             NumberedList numberedList = (NumberedList)getNode();
@@ -126,7 +126,7 @@ class TextPaneSkinNumberedListView exten
                     listItemView.getIndexTextWidth());
             }
 
-            super.validate();
+            super.validate(breakWidth);
         }
     }
 

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinParagraphView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinParagraphView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinParagraphView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinParagraphView.java Mon Apr 18 12:31:22 2011
@@ -53,13 +53,12 @@ class TextPaneSkinParagraphView extends 
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
             // Remove and re-create the child views, because of line-breaking, a single TextNode
             // may be added as many TextPaneSkinTextNodeView's.
 
             // Break the views into multiple rows
-            int breakWidth = getBreakWidth();
 
             Paragraph paragraph = (Paragraph)getNode();
             rows = new ArrayList<Row>();
@@ -68,9 +67,8 @@ class TextPaneSkinParagraphView extends 
             for (Node node : paragraph) {
                 TextPaneSkinNodeView nodeView = textPaneSkin.createNodeView(node);
 
-                nodeView.setBreakWidth(Math.max(breakWidth - (row.width
-                    + PARAGRAPH_TERMINATOR_WIDTH), 0));
-                nodeView.validate();
+                nodeView.validate(Math.max(breakWidth - (row.width
+                        + PARAGRAPH_TERMINATOR_WIDTH), 0));
 
                 int nodeViewWidth = nodeView.getWidth();
 
@@ -94,8 +92,7 @@ class TextPaneSkinParagraphView extends 
                     rows.add(row);
                     row = new Row();
 
-                    nodeView.setBreakWidth(breakWidth);
-                    nodeView.validate();
+                    nodeView.validate(breakWidth);
 
                     row.nodeViews.add(nodeView);
                     row.width = nodeView.getWidth();
@@ -182,7 +179,7 @@ class TextPaneSkinParagraphView extends 
             setSize(width, height);
         }
 
-        super.validate();
+        super.validateComplete();
     }
 
     @Override

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinSpanView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinSpanView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinSpanView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinSpanView.java Mon Apr 18 12:31:22 2011
@@ -32,7 +32,7 @@ class TextPaneSkinSpanView extends TextP
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
 
         if (!isValid()) {
             // I have to re-create my children here instead of in attach(),
@@ -57,17 +57,14 @@ class TextPaneSkinSpanView extends TextP
                 // create and attach child node views
                 add(new TextPaneSkinTextNodeView(textPaneSkin, (TextNode)span.get(0), 0));
 
-                int breakWidth = getBreakWidth();
-
                 TextPaneSkinNodeView nodeView = get(0);
-                nodeView.setBreakWidth(breakWidth);
-                nodeView.validate();
+                nodeView.validate(breakWidth);
 
                 setSize(nodeView.getWidth(), nodeView.getHeight());
             }
         }
 
-        super.validate();
+        super.validateComplete();
     }
 
     @Override

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinTextNodeView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinTextNodeView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinTextNodeView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinTextNodeView.java Mon Apr 18 12:31:22 2011
@@ -84,12 +84,11 @@ class TextPaneSkinTextNodeView extends T
     }
 
     @Override
-    public void validate() {
+    public void validate(int breakWidth) {
         if (!isValid()) {
             TextNode textNode = (TextNode)getNode();
             FontRenderContext fontRenderContext = Platform.getFontRenderContext();
 
-            int breakWidth = getBreakWidth();
             CharSequenceCharacterIterator ci = new CharSequenceCharacterIterator(textNode.getCharacters(), start);
 
             float lineWidth = 0;
@@ -147,7 +146,7 @@ class TextPaneSkinTextNodeView extends T
                 (int)Math.ceil(textBounds.getHeight()));
         }
 
-        super.validate();
+        super.validateComplete();
     }
 
     @Override

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinVerticalElementView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinVerticalElementView.java?rev=1094530&r1=1094529&r2=1094530&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinVerticalElementView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextPaneSkinVerticalElementView.java Mon Apr 18 12:31:22 2011
@@ -42,7 +42,7 @@ abstract class TextPaneSkinVerticalEleme
         }
     }
 
-    protected void verticalValidate() {
+    protected void verticalValidate(int breakWidth) {
         // TODO At some point, we may want to optimize this method by deferring layout of
         // non-visible views. If so, we should not recycle views but rather recreate them
         // (as is done in ParagraphView). This way, we avoid thread contention over the
@@ -55,14 +55,11 @@ abstract class TextPaneSkinVerticalEleme
         // they are added to the document view, we need to make sure they are disposed (i.e.
         // detached).
 
-        int breakWidth = getBreakWidth();
-
         int width = 0;
         int height = 0;
 
         for (TextPaneSkinNodeView nodeView : this) {
-            nodeView.setBreakWidth(breakWidth);
-            nodeView.validate();
+            nodeView.validate(breakWidth);
 
             nodeView.setLocation(0, height);