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 2010/11/15 19:49:09 UTC
svn commit: r1035402 - in /myfaces/tobago/trunk:
tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/
tobago-core/src/main/java/org/apache/myfaces/tobago/layout/
tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/...
Author: lofwyr
Date: Mon Nov 15 18:49:08 2010
New Revision: 1035402
URL: http://svn.apache.org/viewvc?rev=1035402&view=rev
Log:
Tobago-606: LayoutManager
- support the "collablable" feature for tc:box (TOBAGO-941/TOBAGO-181)
Modified:
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIBox.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIGridLayout.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPanel.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPopup.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/FlowLayoutRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupLayoutRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/util/RenderUtils.java
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIBox.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIBox.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIBox.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIBox.java Mon Nov 15 18:49:08 2010
@@ -45,4 +45,9 @@ public abstract class AbstractUIBox exte
}
public abstract boolean isCollapsed();
+
+ @Override
+ public boolean isLayoutChildren() {
+ return !isCollapsed();
+ }
}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIGridLayout.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIGridLayout.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIGridLayout.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIGridLayout.java Mon Nov 15 18:49:08 2010
@@ -54,6 +54,11 @@ public abstract class AbstractUIGridLayo
* Initialize the grid and remove the current width and height values from the component, recursively.
*/
public void init() {
+
+ if (!getLayoutContainer().isLayoutChildren()) {
+ return;
+ }
+
grid = new Grid(LayoutTokens.parse(getColumns()), LayoutTokens.parse(getRows()));
List<LayoutComponent> components = getLayoutContainer().getComponents();
@@ -72,6 +77,10 @@ public abstract class AbstractUIGridLayo
public void fixRelativeInsideAuto(Orientation orientation, boolean auto) {
+ if (!getLayoutContainer().isLayoutChildren()) {
+ return;
+ }
+
BankHead[] heads = grid.getBankHeads(orientation);
BankHead[] heads2 = grid.getBankHeads(orientation.other());
@@ -118,6 +127,10 @@ public abstract class AbstractUIGridLayo
public void preProcessing(Orientation orientation) {
+ if (!getLayoutContainer().isLayoutChildren()) {
+ return;
+ }
+
final BankHead[] heads = grid.getBankHeads(orientation);
final BankHead[] heads2 = grid.getBankHeads(orientation.other());
@@ -206,6 +219,10 @@ public abstract class AbstractUIGridLayo
public void mainProcessing(Orientation orientation) {
+ if (!getLayoutContainer().isLayoutChildren()) {
+ return;
+ }
+
final BankHead[] heads = grid.getBankHeads(orientation);
final BankHead[] heads2 = grid.getBankHeads(orientation.other());
@@ -278,6 +295,10 @@ public abstract class AbstractUIGridLayo
public void postProcessing(Orientation orientation) {
+ if (!getLayoutContainer().isLayoutChildren()) {
+ return;
+ }
+
final BankHead[] heads = grid.getBankHeads(orientation);
final BankHead[] heads2 = grid.getBankHeads(orientation.other());
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPage.java Mon Nov 15 18:49:08 2010
@@ -297,7 +297,6 @@ public abstract class AbstractUIPage ext
}
}
- // LAYOUT Begin
public List<LayoutComponent> getComponents() {
return LayoutUtils.findLayoutChildren(this);
}
@@ -310,7 +309,9 @@ public abstract class AbstractUIPage ext
getFacets().put(Facets.LAYOUT, (AbstractUILayoutBase) layoutManager);
}
- // LAYOUT End
+ public boolean isLayoutChildren() {
+ return true;
+ }
public abstract Measure getWidth();
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPanel.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPanel.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPanel.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPanel.java Mon Nov 15 18:49:08 2010
@@ -18,7 +18,6 @@ package org.apache.myfaces.tobago.intern
*/
import org.apache.myfaces.tobago.component.ComponentTypes;
-import org.apache.myfaces.tobago.util.CreateComponentUtils;
import org.apache.myfaces.tobago.component.Facets;
import org.apache.myfaces.tobago.component.OnComponentPopulated;
import org.apache.myfaces.tobago.component.RendererTypes;
@@ -26,8 +25,7 @@ import org.apache.myfaces.tobago.interna
import org.apache.myfaces.tobago.layout.LayoutComponent;
import org.apache.myfaces.tobago.layout.LayoutContainer;
import org.apache.myfaces.tobago.layout.LayoutManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.myfaces.tobago.util.CreateComponentUtils;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -37,8 +35,6 @@ import java.util.List;
public abstract class AbstractUIPanel extends AbstractUIPanelBase
implements OnComponentPopulated, LayoutContainer, LayoutComponent {
- private static final Logger LOG = LoggerFactory.getLogger(AbstractUIPanel.class);
-
@Override
public void encodeBegin(FacesContext facesContext) throws IOException {
@@ -77,4 +73,8 @@ public abstract class AbstractUIPanel ex
public void setLayoutManager(LayoutManager layoutManager) {
getFacets().put(Facets.LAYOUT, (AbstractUILayoutBase) layoutManager);
}
+
+ public boolean isLayoutChildren() {
+ return true;
+ }
}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPopup.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPopup.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPopup.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIPopup.java Mon Nov 15 18:49:08 2010
@@ -183,6 +183,10 @@ public abstract class AbstractUIPopup ex
getFacets().put(Facets.LAYOUT, (AbstractUILayoutBase) layoutManager);
}
+ public boolean isLayoutChildren() {
+ return true;
+ }
+
public abstract Measure getWidth();
public abstract void setWidth(Measure width);
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java Mon Nov 15 18:49:08 2010
@@ -511,7 +511,6 @@ public abstract class AbstractUISheet ex
// sheet.queueEvent(new SheetStateChangeEvent(sheet));
}
- // LAYOUT Begin
public List<LayoutComponent> getComponents() {
List<LayoutComponent> result = new ArrayList<LayoutComponent>();
for (UIComponent column : (List<UIComponent>) getChildren()) {
@@ -546,6 +545,7 @@ public abstract class AbstractUISheet ex
getFacets().put(Facets.LAYOUT, (AbstractUILayoutBase) layoutManager);
}
-// LAYOUT End
-
+ public boolean isLayoutChildren() {
+ return true;
+ }
}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java Mon Nov 15 18:49:08 2010
@@ -286,7 +286,6 @@ public abstract class AbstractUITabGroup
removeFacesListener(listener);
}
- // LAYOUT Begin
public List<LayoutComponent> getComponents() {
return LayoutUtils.findLayoutChildren(this);
}
@@ -306,5 +305,7 @@ public abstract class AbstractUITabGroup
getFacets().put(Facets.LAYOUT, (AbstractUILayoutBase) layoutManager);
}
-// LAYOUT End
+ public boolean isLayoutChildren() {
+ return true;
+ }
}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java Mon Nov 15 18:49:08 2010
@@ -26,6 +26,11 @@ public interface LayoutContainer extends
LayoutManager getLayoutManager();
void setLayoutManager(LayoutManager layoutManager);
+ /**
+ * Should the children of the this component be laid out from the given layout manager.
+ */
+ boolean isLayoutChildren();
+
Measure getOffsetLeft();
Measure getOffsetRight();
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/FlowLayoutRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/FlowLayoutRenderer.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/FlowLayoutRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/FlowLayoutRenderer.java Mon Nov 15 18:49:08 2010
@@ -20,6 +20,7 @@ package org.apache.myfaces.tobago.render
import org.apache.myfaces.tobago.component.Attributes;
import org.apache.myfaces.tobago.component.UIFlowLayout;
import org.apache.myfaces.tobago.config.Configurable;
+import org.apache.myfaces.tobago.layout.LayoutContainer;
import org.apache.myfaces.tobago.layout.Measure;
import org.apache.myfaces.tobago.renderkit.MarginValues;
import org.apache.myfaces.tobago.renderkit.RendererBase;
@@ -54,7 +55,10 @@ public class FlowLayoutRenderer extends
@Override
public void encodeChildren(FacesContext facesContext, UIComponent component) throws IOException {
UIComponent container = component.getParent();
- RenderUtils.encodeChildrenWithoutLayout(facesContext, container);
+ if (container instanceof LayoutContainer && !((LayoutContainer) container).isLayoutChildren()) {
+ return;
+ }
+ RenderUtils.encodeChildren(facesContext, container);
}
@Override
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java Mon Nov 15 18:49:08 2010
@@ -17,15 +17,16 @@ package org.apache.myfaces.tobago.render
* limitations under the License.
*/
-import org.apache.myfaces.tobago.renderkit.util.RenderUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.myfaces.tobago.component.Attributes;
import org.apache.myfaces.tobago.config.Configurable;
+import org.apache.myfaces.tobago.layout.LayoutContainer;
import org.apache.myfaces.tobago.layout.Measure;
import org.apache.myfaces.tobago.renderkit.MarginValues;
import org.apache.myfaces.tobago.renderkit.RendererBase;
import org.apache.myfaces.tobago.renderkit.SpacingValues;
+import org.apache.myfaces.tobago.renderkit.util.RenderUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -46,7 +47,10 @@ public class GridLayoutRenderer extends
@Override
public void encodeChildren(FacesContext facesContext, UIComponent component) throws IOException {
UIComponent container = component.getParent();
- RenderUtils.encodeChildrenWithoutLayout(facesContext, container);
+ if (container instanceof LayoutContainer && !((LayoutContainer) container).isLayoutChildren()) {
+ return;
+ }
+ RenderUtils.encodeChildren(facesContext, container);
}
@Override
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupLayoutRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupLayoutRenderer.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupLayoutRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupLayoutRenderer.java Mon Nov 15 18:49:08 2010
@@ -17,6 +17,7 @@ package org.apache.myfaces.tobago.render
* limitations under the License.
*/
+import org.apache.myfaces.tobago.layout.LayoutContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.myfaces.tobago.renderkit.RendererBase;
@@ -34,7 +35,10 @@ public class TabGroupLayoutRenderer exte
public void encodeChildren(FacesContext facesContext, UIComponent component) throws IOException {
UIComponent container = component.getParent();
LOG.info("TAB GROUP LAYOUT RENDERER");
- RenderUtils.encodeChildrenWithoutLayout(facesContext, container);
+ if (container instanceof LayoutContainer && !((LayoutContainer) container).isLayoutChildren()) {
+ return;
+ }
+ RenderUtils.encodeChildren(facesContext, container);
}
}
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java Mon Nov 15 18:49:08 2010
@@ -133,7 +133,7 @@ public class TreeMenuNodeRenderer extend
writer.endElement(HtmlElements.IMG);
}
- RenderUtils.encodeChildrenWithoutLayout(facesContext, node);
+ RenderUtils.encodeChildren(facesContext, node);
writer.endElement(HtmlElements.DIV);
}
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/util/RenderUtils.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/util/RenderUtils.java?rev=1035402&r1=1035401&r2=1035402&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/util/RenderUtils.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/util/RenderUtils.java Mon Nov 15 18:49:08 2010
@@ -67,27 +67,8 @@ public class RenderUtils {
return false;
}
- public static void encodeChildren(FacesContext facesContext,
- UIComponent panel)
- throws IOException {
-// UIComponent layout = panel.getFacet("layout");
-
- encodeChildrenWithoutLayout(facesContext, panel);
- // XXX is the following coded needed?
-
-// AbstractUILayoutBase layout = AbstractUILayoutBase.getLayout(panel);
-// if (layout != null) {
-// layout.encodeChildrenOfComponent(facesContext, panel);
-// } else {
-// for (Object o : panel.getChildren()) {
-// UIComponent child = (UIComponent) o;
-// encode(facesContext, child);
-// }
-// }
- }
-
- public static void encodeChildrenWithoutLayout(FacesContext facesContext, UIComponent container) throws IOException {
- for (UIComponent child : (List<UIComponent>) container.getChildren()) {
+ public static void encodeChildren(FacesContext facesContext, UIComponent panel) throws IOException {
+ for (UIComponent child : (List<UIComponent>) panel.getChildren()) {
encode(facesContext, child);
}
}
@@ -134,7 +115,7 @@ public class RenderUtils {
if (!component.isRendered()) {
return;
}
- RendererBase renderer = ComponentUtils.getRenderer(facesContext, component);
+ RendererBase renderer = ComponentUtils.getRenderer(facesContext, component);
boolean prepareRendersChildren = false;
if (renderer != null) {
renderer.prepareRender(facesContext, component);
@@ -319,7 +300,7 @@ public class RenderUtils {
} else if (value instanceof SelectItem) {
list.add((SelectItem) value);
} else {
- final String message
+ final String message
= "TYPE ERROR: value NOT instanceof SelectItem. type="
+ value.getClass().getName() + " value=" + value;
LOG.error(message);