You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2009/08/31 13:47:39 UTC
svn commit: r809549 - in
/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago:
component/AbstractUIGridLayout.java component/AbstractUITabGroupLayout.java
layout/LayoutContext2.java layout/LayoutManager.java
Author: lofwyr
Date: Mon Aug 31 11:47:38 2009
New Revision: 809549
URL: http://svn.apache.org/viewvc?rev=809549&view=rev
Log:
TOBAGO-606: Layout-Manager
- indroduce a new layouting phase to fix problems with relavite tokens (*) inside of auto tokens. The fix will be logged with level "warn"
Modified:
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIGridLayout.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContext2.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutManager.java
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIGridLayout.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIGridLayout.java?rev=809549&r1=809548&r2=809549&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIGridLayout.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIGridLayout.java Mon Aug 31 11:47:38 2009
@@ -74,6 +74,36 @@
}
}
+ public void fixRelativeInsideAuto(boolean orientation, boolean auto) {
+
+ LayoutTokens tokens = grid.getTokens(orientation);
+
+ if (auto) {
+ for (int i = 0; i < tokens.getSize(); i++) {
+ if (tokens.get(i) instanceof RelativeLayoutToken) {
+ LOG.warn("Fixing layout token from * to auto, because a * in not allowed inside of a auto.");
+ tokens.set(i, AutoLayoutToken.INSTANCE);
+ }
+ }
+ }
+
+ for (int i = 0; i < tokens.getSize(); i++) {
+ for (int j = 0; j < grid.getTokens(!orientation).getSize(); j++) {
+ Cell cell = grid.getCell(i, j, orientation);
+ if (cell instanceof OriginCell) {
+ OriginCell origin = (OriginCell) cell;
+ LayoutComponent component = cell.getComponent();
+ if (component instanceof LayoutContainer) {
+ LayoutManager layoutManager = ((LayoutContainer) component).getLayoutManager();
+ // TODO: may be improved
+ boolean childAuto = origin.getSpan(orientation) == 1 && tokens.get(i) instanceof AutoLayoutToken;
+ layoutManager.fixRelativeInsideAuto(orientation, childAuto);
+ }
+ }
+ }
+ }
+ }
+
public void preProcessing(boolean orientation) {
// process auto tokens
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java?rev=809549&r1=809548&r2=809549&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java Mon Aug 31 11:47:38 2009
@@ -40,6 +40,9 @@
public void init() {
}
+ public void fixRelativeInsideAuto(boolean orientation, boolean auto) {
+ }
+
public void preProcessing(boolean orientation) {
}
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContext2.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContext2.java?rev=809549&r1=809548&r2=809549&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContext2.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContext2.java Mon Aug 31 11:47:38 2009
@@ -49,6 +49,8 @@
LayoutManager layoutManager = container.getLayoutManager();
layoutManager.init();
+ layoutManager.fixRelativeInsideAuto(true, false);
+ layoutManager.fixRelativeInsideAuto(false, false);
layoutManager.preProcessing(true);
layoutManager.preProcessing(false);
layoutManager.mainProcessing(true);
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutManager.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutManager.java?rev=809549&r1=809548&r2=809549&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutManager.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutManager.java Mon Aug 31 11:47:38 2009
@@ -25,6 +25,8 @@
void init();
+ void fixRelativeInsideAuto(boolean orientation, boolean auto);
+
void preProcessing(boolean orientation);
void mainProcessing(boolean orientation);