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);