JBoss Rich Faces SVN: r22038 - branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: konstantin.mishin
Date: 2011-03-03 11:43:50 -0500 (Thu, 03 Mar 2011)
New Revision: 22038
Modified:
branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java
Log:
RF-10665 Reviewer: Ilya Shaikovsky
Modified: branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java
===================================================================
--- branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java 2011-03-03 15:13:30 UTC (rev 22037)
+++ branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java 2011-03-03 16:43:50 UTC (rev 22038)
@@ -297,8 +297,7 @@
boolean columnFacetPresent = table.isColumnFacetPresent(name);
if (columnFacetPresent || "footer".equals(name)) {
writer.startElement(HtmlConstants.DIV_ELEM, table);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, HtmlUtil.concatClasses("rf-edt-" + getFacetClassName(name),
- (String) table.getAttributes().get(name + "Class")), null);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-edt-" + getFacetClassName(name), null);
writer.startElement(HtmlConstants.TABLE_ELEMENT, table);
writer.writeAttribute(HtmlConstants.CELLPADDING_ATTRIBUTE, "0", null);
writer.writeAttribute(HtmlConstants.CELLSPACING_ATTRIBUTE, "0", null);
@@ -374,7 +373,8 @@
writer.startElement(HtmlConstants.DIV_ELEM, table);
writer.writeAttribute(HtmlConstants.ID_ATTRIBUTE, elementId, null);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-edt-tbl-hdr", null);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE,
+ HtmlUtil.concatClasses("rf-edt-tbl-hdr", table.getHeaderClass()), null);
header.encodeAll(context);
writer.endElement(HtmlConstants.DIV_ELEM);
@@ -467,7 +467,8 @@
writer.startElement(HtmlConstants.DIV_ELEM, table);
writer.writeAttribute(HtmlConstants.ID_ATTRIBUTE, elementId, null);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-edt-tbl-ftr", null);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE,
+ HtmlUtil.concatClasses("rf-edt-tbl-ftr", table.getFooterClass()), null);
footer.encodeAll(context);
writer.endElement(HtmlConstants.DIV_ELEM);
13 years, 1 month
JBoss Rich Faces SVN: r22037 - branches/4.0.X/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2011-03-03 10:13:30 -0500 (Thu, 03 Mar 2011)
New Revision: 22037
Modified:
branches/4.0.X/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PasswordValidationBean.java
Log:
https://issues.jboss.org/browse/RF-10680
@Nick reviewed. just "implements Serializable" added
Modified: branches/4.0.X/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PasswordValidationBean.java
===================================================================
--- branches/4.0.X/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PasswordValidationBean.java 2011-03-03 15:09:48 UTC (rev 22036)
+++ branches/4.0.X/examples/richfaces-showcase/src/main/java/org/richfaces/demo/validation/PasswordValidationBean.java 2011-03-03 15:13:30 UTC (rev 22037)
@@ -1,5 +1,7 @@
package org.richfaces.demo.validation;
+import java.io.Serializable;
+
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@@ -9,7 +11,11 @@
@ManagedBean
@SessionScoped
-public class PasswordValidationBean implements Cloneable{
+public class PasswordValidationBean implements Cloneable, Serializable{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1952428504080910113L;
@Size(min = 5, max = 15, message = "Wrong size for password")
private String password="";
@Size(min = 5, max = 15, message = "Wrong size for confirmation")
13 years, 1 month
JBoss Rich Faces SVN: r22036 - branches/4.0.X/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces.
by richfaces-svn-commits@lists.jboss.org
Author: konstantin.mishin
Date: 2011-03-03 10:09:48 -0500 (Thu, 03 Mar 2011)
New Revision: 22036
Modified:
branches/4.0.X/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/extendedDataTable.js
Log:
RF-9548 Reviewer: Ilya Shaikovsky
Modified: branches/4.0.X/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/extendedDataTable.js
===================================================================
--- branches/4.0.X/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/extendedDataTable.js 2011-03-03 14:28:19 UTC (rev 22035)
+++ branches/4.0.X/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/extendedDataTable.js 2011-03-03 15:09:48 UTC (rev 22036)
@@ -419,7 +419,7 @@
},
beginReorder: function(event) {
- if (!jQuery(event.currentTarget).is("a, img, :input")) {
+ if (!jQuery(event.target).is("a, img, :input")) {
this.idOfReorderingColumn = event.currentTarget.className.match(new RegExp(WIDTH_CLASS_NAME_BASE + "([^\\W]*)"))[1];
jQuery(document).bind("mousemove", jQuery.proxy(this.reorder, this));
this.headerCells.bind("mouseover", jQuery.proxy(this.overReorder, this));
13 years, 1 month
JBoss Rich Faces SVN: r22035 - modules/tests/metamer/trunk/application/src/main/webapp/components/richColumn.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2011-03-03 09:28:19 -0500 (Thu, 03 Mar 2011)
New Revision: 22035
Modified:
modules/tests/metamer/trunk/application/src/main/webapp/components/richColumn/simple.xhtml
Log:
rich:column - updated sample with attributes + added facets
Modified: modules/tests/metamer/trunk/application/src/main/webapp/components/richColumn/simple.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/richColumn/simple.xhtml 2011-03-03 14:19:34 UTC (rev 22034)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/richColumn/simple.xhtml 2011-03-03 14:28:19 UTC (rev 22035)
@@ -54,13 +54,16 @@
</f:facet>
<rich:column id="columnState"
- comparator="#{richColumnBean.attributes['comparator'].value}"
- filter="#{richColumnBean.attributes['filter'].value}"
- filterValue="#{richColumnBean.attributes['filterValue'].value}"
- rendered="#{richColumnBean.attributes['rendered'].value}"
- sortOrder="#{richColumnBean.attributes['sortOrder'].value}"
- >
+ footerClass="#{richColumnBean.attributes['footerClass'].value}"
+ headerClass="#{richColumnBean.attributes['headerClass'].value}"
+ rendered="#{richColumnBean.attributes['rendered'].value}"
+ style="#{richColumnBean.attributes['style'].value}"
+ styleClass="#{richColumnBean.attributes['styleClass'].value}"
+ width="#{richColumnBean.attributes['width'].value}"
+ >
+ <f:facet name="header">Header</f:facet>
<h:outputText id="state" value="#{record.state}" />
+ <f:facet name="footer">Footer</f:facet>
</rich:column>
<rich:column id="columnCapital">
13 years, 1 month
JBoss Rich Faces SVN: r22034 - modules/tests/metamer/trunk/application/src/main/webapp/components/richCalendar.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2011-03-03 09:19:34 -0500 (Thu, 03 Mar 2011)
New Revision: 22034
Modified:
modules/tests/metamer/trunk/application/src/main/webapp/components/richCalendar/simple.xhtml
Log:
calendar - fixed @onhide binding
Modified: modules/tests/metamer/trunk/application/src/main/webapp/components/richCalendar/simple.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/richCalendar/simple.xhtml 2011-03-03 13:28:19 UTC (rev 22033)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/richCalendar/simple.xhtml 2011-03-03 14:19:34 UTC (rev 22034)
@@ -119,7 +119,7 @@
ondatemouseout="#{richCalendarBean.attributes['ondatemouseout'].value}"
ondatemouseover="#{richCalendarBean.attributes['ondatemouseover'].value}"
ondateselect="#{richCalendarBean.attributes['ondateselect'].value}"
- onhide="#{richCalendarBean.attributes['ondateselect'].value}"
+ onhide="#{richCalendarBean.attributes['onhide'].value}"
oninputblur="#{richCalendarBean.attributes['oninputblur'].value}"
oninputchange="#{richCalendarBean.attributes['oninputchange'].value}"
oninputclick="#{richCalendarBean.attributes['oninputclick'].value}"
13 years, 1 month
JBoss Rich Faces SVN: r22033 - branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2011-03-03 08:28:19 -0500 (Thu, 03 Mar 2011)
New Revision: 22033
Modified:
branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java
Log:
RF-10658 Taglib: panel menu's attribute value should be hidden
- reviewed by Anton Belevich
Modified: branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java
===================================================================
--- branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java 2011-03-03 12:29:11 UTC (rev 22032)
+++ branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java 2011-03-03 13:28:19 UTC (rev 22033)
@@ -225,7 +225,8 @@
topGroupCollapsedRightIcon,
topGroupDisabledLeftIcon,
topGroupDisabledRightIcon,
- itemLeftIcon
+ itemLeftIcon,
+ value
}
@Attribute
@@ -503,4 +504,13 @@
public void removeItemChangeListener(ItemChangeListener listener) {
removeFacesListener(listener);
}
+
+ @Attribute(generate = false, hidden = true)
+ public Object getValue() {
+ return getStateHelper().eval(Properties.value);
+ }
+
+ public void setValue(Object value) {
+ getStateHelper().put(Properties.value, value);
+ }
}
13 years, 1 month
JBoss Rich Faces SVN: r22032 - branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2011-03-03 07:29:11 -0500 (Thu, 03 Mar 2011)
New Revision: 22032
Modified:
branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java
Log:
RF-10656 Taglib: panelMenuItem and panelMenuGroup's attribute value should be hidden
-reviewed by Anton Belevich
Modified: branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java
===================================================================
--- branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java 2011-03-03 11:08:07 UTC (rev 22031)
+++ branches/4.0.X/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java 2011-03-03 12:29:11 UTC (rev 22032)
@@ -23,11 +23,16 @@
package org.richfaces.component;
-import com.google.common.base.Predicate;
+import javax.faces.component.UIComponent;
+
import org.richfaces.PanelMenuMode;
-import org.richfaces.cdk.annotations.*;
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.JsfComponent;
+import org.richfaces.cdk.annotations.Tag;
+import org.richfaces.cdk.annotations.TagType;
-import javax.faces.component.UIComponent;
+import com.google.common.base.Predicate;
/**
* @author akolonitsky
@@ -108,8 +113,15 @@
// ------------------------------------------------ Html Attributes
enum Properties {
- leftIcon, leftDisabledIcon, rightIcon, rightDisabledIcon, styleClass, disabledClass, execute, name
-
+ leftIcon,
+ leftDisabledIcon,
+ rightIcon,
+ rightDisabledIcon,
+ styleClass,
+ disabledClass,
+ execute,
+ name,
+ value
}
@Attribute(generate = false)
@@ -216,4 +228,13 @@
return comp instanceof AbstractPanelMenuGroup || comp instanceof AbstractPanelMenu;
}
}
+
+ @Attribute(generate = false, hidden = true)
+ public Object getValue() {
+ return getStateHelper().eval(Properties.value);
+ }
+
+ public void setValue(Object value) {
+ getStateHelper().put(Properties.value, value);
+ }
}
13 years, 1 month
JBoss Rich Faces SVN: r22031 - in branches/4.0.X/examples/irc-client: src/main/java/org/ircclient/controller and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2011-03-03 06:08:07 -0500 (Thu, 03 Mar 2011)
New Revision: 22031
Added:
branches/4.0.X/examples/irc-client/src/main/webapp/chat.xhtml
Modified:
branches/4.0.X/examples/irc-client/
branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java
branches/4.0.X/examples/irc-client/src/main/webapp/welcome.xhtml
Log:
http://jira.jboss.org/browse/RF-10675
checked by @kmishin
Property changes on: branches/4.0.X/examples/irc-client
___________________________________________________________________
Modified: svn:ignore
- target
+ target
.settings
.classpath
.project
Modified: branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java
===================================================================
--- branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java 2011-03-03 09:58:11 UTC (rev 22030)
+++ branches/4.0.X/examples/irc-client/src/main/java/org/ircclient/controller/ChatBean.java 2011-03-03 11:08:07 UTC (rev 22031)
@@ -37,7 +37,7 @@
private String message;
private transient TopicsContext topicsContext;
- public void connect() {
+ public String connect() {
try {
this.connect(SERVER_URL, SERVER_PORT);
this.joinChannel(CHANNEL_PREFIX + DEFAULT_CHANNEL);
@@ -59,10 +59,12 @@
"Sorry, we encountered IRC services problems. Try again later.",
"Sorry, we encountered IRC services problems. Try again later."));
}
+ return "chat";
}
- public void leave() {
+ public String leave() {
this.disconnect();
+ return "welcome";
}
private TopicsContext getTopicsContext() {
Added: branches/4.0.X/examples/irc-client/src/main/webapp/chat.xhtml
===================================================================
--- branches/4.0.X/examples/irc-client/src/main/webapp/chat.xhtml (rev 0)
+++ branches/4.0.X/examples/irc-client/src/main/webapp/chat.xhtml 2011-03-03 11:08:07 UTC (rev 22031)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:c="http://java.sun.com/jsp/jstl/core"
+ template="/templates/template.xhtml">
+ <ui:define name="body">
+ <style>
+.chatOutput {
+ overflow: auto;
+ width: 80%;
+ height: 200px;
+ float: left;
+}
+
+.chatList {
+ float: right;
+ width: 19%;
+ height: 200px;
+ overflow: auto;
+}
+</style>
+ <rich:panel
+ header="Welcome to #{chatBean.channelName} channel at #{chatBean.serverName}" id="chatpanel">
+ <rich:panel styleClass="chatOutput"
+ bodyClass="#{chatBean.channelName}Output" />
+ <rich:panel styleClass="chatList">
+ <rich:list value="#{chatBean.users}" var="user" id="users"
+ type="unordered">
+ #{user.nick}
+ </rich:list>
+ </rich:panel>
+ <br clear="all" />
+ <hr />
+ <h:form>
+ <a4j:push address="#{chatBean.userName}_#{chatBean.channelName}List@chat"
+ onerror="alert(event.rf.data)">
+ <a4j:ajax event="dataavailable" render="users" execute="@none" />
+ </a4j:push>
+ <a4j:push address="#{chatBean.userName}_#{chatBean.channelName}@chat"
+ onerror="alert(event.rf.data)"
+ ondataavailable="jQuery('<div />').prependTo('.#{chatBean.channelName}Output').text(event.rf.data)" />
+ <h:inputTextarea value="#{chatBean.message}" rows="3"
+ style="width:80%" id="nm" />
+ <a4j:commandButton value="Send" action="#{chatBean.send}"
+ render="@none" execute="@form" />
+ </h:form>
+ <hr />
+ <h:form>
+ <rich:panel header="Change nickname:">
+ <h:inputText valueChangeListener="#{chatBean.changeNick}" id="cn" />
+ <a4j:commandButton value="Change" execute="@form" render="@none"/>
+ </rich:panel>
+ <h:commandButton value="Disconnect" action="#{chatBean.leave}"/>
+ </h:form>
+ </rich:panel>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Modified: branches/4.0.X/examples/irc-client/src/main/webapp/welcome.xhtml
===================================================================
--- branches/4.0.X/examples/irc-client/src/main/webapp/welcome.xhtml 2011-03-03 09:58:11 UTC (rev 22030)
+++ branches/4.0.X/examples/irc-client/src/main/webapp/welcome.xhtml 2011-03-03 11:08:07 UTC (rev 22031)
@@ -23,8 +23,7 @@
overflow: auto;
}
</style>
- <rich:panel header="Connect to IRC"
- rendered="#{not chatBean.connected}">
+ <rich:panel header="Connect to IRC">
<h:form>
<a4j:outputPanel ajaxRendered="true">
<h:messages style="color:red" />
@@ -37,44 +36,8 @@
<h:outputText value="Server:" />
<h:outputText value="irc.freenode.org" style="font-weight:bold"/>
</h:panelGrid>
- <a4j:commandButton value="Connect" execute="@form" render="@all"
- action="#{chatBean.connect}" />
+ <h:commandButton value="Connect" action="#{chatBean.connect}" />
</h:form>
</rich:panel>
- <rich:panel
- header="Welcome to #{chatBean.channelName} channel at #{chatBean.serverName}"
- rendered="#{chatBean.connected}" id="chatpanel">
- <rich:panel styleClass="chatOutput"
- bodyClass="#{chatBean.channelName}Output" />
- <rich:panel styleClass="chatList">
- <rich:list value="#{chatBean.users}" var="user" id="users"
- type="unordered">
- #{user.nick}
- </rich:list>
- </rich:panel>
- <br clear="all" />
- <hr />
- <h:form>
- <a4j:push address="#{chatBean.userName}_#{chatBean.channelName}List@chat"
- onerror="alert(event.rf.data)">
- <a4j:ajax event="dataavailable" render="users" execute="@none" />
- </a4j:push>
- <a4j:push address="#{chatBean.userName}_#{chatBean.channelName}@chat"
- onerror="alert(event.rf.data)"
- ondataavailable="jQuery('<div />').prependTo('.#{chatBean.channelName}Output').text(event.rf.data)" />
- <h:inputTextarea value="#{chatBean.message}" rows="3"
- style="width:80%" id="nm" />
- <a4j:commandButton value="Send" action="#{chatBean.send}"
- render="@none" execute="@form" />
- </h:form>
- <hr />
- <h:form>
- <rich:panel header="Change nickname:">
- <h:inputText valueChangeListener="#{chatBean.changeNick}" id="cn" />
- <a4j:commandButton value="Change" execute="@form" render="@none"/>
- </rich:panel>
- <a4j:commandButton value="disconnect" action="#{chatBean.leave}" execute="@none" render="@all"/>
- </h:form>
- </rich:panel>
</ui:define>
</ui:composition>
\ No newline at end of file
13 years, 1 month
JBoss Rich Faces SVN: r22030 - modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2011-03-03 04:58:11 -0500 (Thu, 03 Mar 2011)
New Revision: 22030
Modified:
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichAutocompleteBean.java
Log:
autocomplete - check prefix on null value to be able work in client mode (RF-10654)
Modified: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichAutocompleteBean.java
===================================================================
--- modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichAutocompleteBean.java 2011-03-03 09:28:29 UTC (rev 22029)
+++ modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichAutocompleteBean.java 2011-03-03 09:58:11 UTC (rev 22030)
@@ -81,7 +81,7 @@
public List<String> autocomplete(String prefix) {
ArrayList<String> result = new ArrayList<String>();
- if (prefix.length() > 0) {
+ if (prefix != null && prefix.length() > 0) {
Iterator<Capital> iterator = capitals.iterator();
while (iterator.hasNext()) {
Capital elem = ((Capital) iterator.next());
13 years, 1 month
JBoss Rich Faces SVN: r22029 - modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2011-03-03 04:28:29 -0500 (Thu, 03 Mar 2011)
New Revision: 22029
Modified:
modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean/RichAutocompleteBean.properties
Log:
autocomplete - added enumeration of @layout values
Modified: modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean/RichAutocompleteBean.properties
===================================================================
--- modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean/RichAutocompleteBean.properties 2011-03-03 09:27:40 UTC (rev 22028)
+++ modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean/RichAutocompleteBean.properties 2011-03-03 09:28:29 UTC (rev 22029)
@@ -2,3 +2,9 @@
attr.mode.ajax=ajax
attr.mode.cachedAjax=cachedAjax
attr.mode.null=
+
+attr.layout.div=div
+attr.layout.list=list
+attr.layout.table=table
+attr.layout.grid=grid
+attr.layout.null=
\ No newline at end of file
13 years, 1 month