JBoss Rich Faces SVN: r3846 - trunk/docs/userguide/en/src/main/resources/images.
by richfaces-svn-commits@lists.jboss.org
Author: ochikvina
Date: 2007-11-09 06:41:50 -0500 (Fri, 09 Nov 2007)
New Revision: 3846
Added:
trunk/docs/userguide/en/src/main/resources/images/treeNode.png
trunk/docs/userguide/en/src/main/resources/images/treeNode2.png
Log:
http://jira.jboss.com/jira/browse/RF-1008 -replacing screenshots
Added: trunk/docs/userguide/en/src/main/resources/images/treeNode.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/treeNode.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/userguide/en/src/main/resources/images/treeNode2.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/treeNode2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
18 years, 6 months
JBoss Rich Faces SVN: r3845 - in trunk/sandbox: samples/rex-demo/src/main/resources/org/richfaces/demo/common and 17 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: SergeySmirnov
Date: 2007-11-08 22:04:24 -0500 (Thu, 08 Nov 2007)
New Revision: 3845
Added:
trunk/sandbox/samples/rex-demo/src/main/webapp/richfaces/button.xhtml
trunk/sandbox/ui/componentControl/
trunk/sandbox/ui/componentControl/pom.xml
trunk/sandbox/ui/componentControl/src/
trunk/sandbox/ui/componentControl/src/main/
trunk/sandbox/ui/componentControl/src/main/config/
trunk/sandbox/ui/componentControl/src/main/config/component/
trunk/sandbox/ui/componentControl/src/main/config/component/componentControl.xml
trunk/sandbox/ui/componentControl/src/main/java/
trunk/sandbox/ui/componentControl/src/main/java/org/
trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/
trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/renderkit/
trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/renderkit/ComponentControlRendererBase.java
trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/sandbox/
trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/sandbox/component/
trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/sandbox/component/README
trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/sandbox/component/UIComponentControl.java
trunk/sandbox/ui/rex-button/
Modified:
trunk/sandbox/samples/rex-demo/pom.xml
trunk/sandbox/samples/rex-demo/src/main/resources/org/richfaces/demo/common/components.properties
trunk/sandbox/samples/rex-demo/src/main/webapp/richfaces/resizable/examples/simple.xhtml
trunk/sandbox/ui/pom.xml
trunk/sandbox/ui/rex-messageBox/pom.xml
trunk/sandbox/ui/rex-messageBox/src/main/templates/htmlMessageBox.jspx
Log:
component/componentControl has been added
Modified: trunk/sandbox/samples/rex-demo/pom.xml
===================================================================
--- trunk/sandbox/samples/rex-demo/pom.xml 2007-11-09 02:06:22 UTC (rev 3844)
+++ trunk/sandbox/samples/rex-demo/pom.xml 2007-11-09 03:04:24 UTC (rev 3845)
@@ -203,6 +203,21 @@
<version>3.2.0-SNAPSHOT</version>
</dependency>
<dependency>
+ <groupId>org.richfaces.sandbox.ui</groupId>
+ <artifactId>rex-button</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.sandbox.ui</groupId>
+ <artifactId>rex-messageBox</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.sandbox.ui</groupId>
+ <artifactId>componentControl</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
<groupId>org.richfaces.sandbox</groupId>
<artifactId>richfaces-sandbox-impl</artifactId>
Modified: trunk/sandbox/samples/rex-demo/src/main/resources/org/richfaces/demo/common/components.properties
===================================================================
--- trunk/sandbox/samples/rex-demo/src/main/resources/org/richfaces/demo/common/components.properties 2007-11-09 02:06:22 UTC (rev 3844)
+++ trunk/sandbox/samples/rex-demo/src/main/resources/org/richfaces/demo/common/components.properties 2007-11-09 03:04:24 UTC (rev 3845)
@@ -1,4 +1,5 @@
# list of components in comma-separated format
#id=name,iconImage,captionImage,devGuideLocation,tldDocLocation,javaDocLocation
resizable= rexc, Resizable, /images/ico_common.gif, /images/cn_resizable.gif, RichFacesComponentsLibrary.html#resizable, jbossrichfaces/freezone/docs/tlddoc/rich/resizable.html, jbossrichfaces/freezone/docs/apidoc/org/richfaces/component/UIResizable.html, /richfaces/resizable.jsf
+button= rexc, Button, /images/ico_common.gif, /images/cn_button.gif, RichFacesComponentsLibrary.html#button, jbossrichfaces/freezone/docs/tlddoc/rich/button.html, jbossrichfaces/freezone/docs/apidoc/org/richfaces/component/UIButton.html, /richfaces/button.jsf
#messageBox= rexc, MessageBox, /images/ico_common.gif, /images/cn_resizable.gif, RichFacesComponentsLibrary.html#resizable, jbossrichfaces/freezone/docs/tlddoc/rich/resizable.html, jbossrichfaces/freezone/docs/apidoc/org/richfaces/component/UIResizable.html, /richfaces/resizable.jsf
Added: trunk/sandbox/samples/rex-demo/src/main/webapp/richfaces/button.xhtml
===================================================================
--- trunk/sandbox/samples/rex-demo/src/main/webapp/richfaces/button.xhtml (rev 0)
+++ trunk/sandbox/samples/rex-demo/src/main/webapp/richfaces/button.xhtml 2007-11-09 03:04:24 UTC (rev 3845)
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:rich="http://richfaces.org/rich">
+<ui:composition template="/templates/main.xhtml">
+ <ui:define name="title">RichFaces ExtJS Intergation Demo exj js Button</ui:define>
+ <ui:define name="body">
+
+ <rich:tabPanel switchType="server" value="#{componentNavigator.activeTab}" styleClass="top_tab" contentClass="content_tab" headerClass="header_tabs_class" inactiveTabClass="inactive_tab" activeTabClass="active_tab">
+
+ <rich:tab label="Usage">
+ <ui:include src="/richfaces/button/usage.xhtml"/>
+ </rich:tab>
+ <ui:include src="/templates/include/tagInfo.xhtml">
+ <ui:param name="path" value="rich/button"/>
+ </ui:include>
+ </rich:tabPanel>
+
+ </ui:define>
+</ui:composition>
+</html>
Modified: trunk/sandbox/samples/rex-demo/src/main/webapp/richfaces/resizable/examples/simple.xhtml
===================================================================
--- trunk/sandbox/samples/rex-demo/src/main/webapp/richfaces/resizable/examples/simple.xhtml 2007-11-09 02:06:22 UTC (rev 3844)
+++ trunk/sandbox/samples/rex-demo/src/main/webapp/richfaces/resizable/examples/simple.xhtml 2007-11-09 03:04:24 UTC (rev 3845)
@@ -7,10 +7,12 @@
xmlns:rich="http://richfaces.org/rich">
<f:view contentType="text/html">
-
- <rex:resizable name="mypanel" preserveRatio="false" easing="easingInStrong" animate="true"
+
+
+
+ <rex:resizable draggable="true" name="mypanel" preserveRatio="false" easing="easingInStrong" animate="true"
minWidth="480" minHeight="130" width="429" height="200"
- style="padding-bottom:4px;z-index:2000">
+ style="padding-bottom:4px;padding-right:4px;z-index:2000">
<rich:panel style="height:100%">
<f:facet name="header">
Dialog Title
@@ -25,26 +27,9 @@
</rex:resizable>
-<p>
- <b>Confirm</b><br />
- Standard Yes/No dialog.
- <button id="mb1" onclick="go();">Show</button>
-</p>
-<script>
-
-
- function showResult(btn){
- alert('You clicked the '+btn+' button');
- };
-
-
- function go() {
-
- Ext.MessageBox.confirm('Confirm', 'Are you sure you want to do that?', showResult, document.body);
- }
-</script>
+
</f:view>
</ui:composition>
\ No newline at end of file
Property changes on: trunk/sandbox/ui/componentControl
___________________________________________________________________
Name: svn:ignore
+ .classpath
.project
.settings
target
Added: trunk/sandbox/ui/componentControl/pom.xml
===================================================================
--- trunk/sandbox/ui/componentControl/pom.xml (rev 0)
+++ trunk/sandbox/ui/componentControl/pom.xml 2007-11-09 03:04:24 UTC (rev 3845)
@@ -0,0 +1,49 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>ui</artifactId>
+ <groupId>org.richfaces.sandbox</groupId>
+ <version>3.2.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.richfaces.sandbox.ui</groupId>
+ <artifactId>componentControl</artifactId>
+ <name>componentControl</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.richfaces.cdk</groupId>
+ <artifactId>maven-cdk-plugin</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <library>
+ <prefix>org.richfaces.sandbox</prefix>
+ <taglib>
+ <shortName>componentControl</shortName>
+ </taglib>
+ </library>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.framework</groupId>
+ <artifactId>richfaces-impl</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: trunk/sandbox/ui/componentControl/src/main/config/component/componentControl.xml
===================================================================
--- trunk/sandbox/ui/componentControl/src/main/config/component/componentControl.xml (rev 0)
+++ trunk/sandbox/ui/componentControl/src/main/config/component/componentControl.xml 2007-11-09 03:04:24 UTC (rev 3845)
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN" "https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
+<components>
+ <component>
+ <name>org.richfaces.sandbox.ComponentControl</name>
+ <family>org.richfaces.sandbox.ComponentControl</family>
+ <classname>org.richfaces.sandbox.component.html.HtmlComponentControl</classname>
+ <superclass>org.richfaces.sandbox.component.UIComponentControl</superclass>
+ <description>
+ <![CDATA[
+ ]]>
+ </description>
+ <renderer generate="true" override="true">
+ <name>org.richfaces.sandbox.ComponentControlRenderer</name>
+ <template>htmlComponentControl.jspx</template>
+ </renderer>
+ <tag>
+ <name>componentControl</name>
+ <classname>org.richfaces.sandbox.taglib.ComponentControlTag</classname>
+ <superclass>
+ org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
+ </superclass>
+ </tag>
+ <!--
+ <taghandler>
+ <classname>org.ajax4jsf.tag.TestHandler</classname>
+ </taghandler>
+ -->
+ &ui_component_attributes;
+
+ <property>
+ <name>event</name>
+ <classname>java.lang.String</classname>
+ <description>
+ The Event that is used to trigger the operation on the target component
+ </description>
+ <defaultvalue>""</defaultvalue>
+ </property>
+ <property>
+ <name>name</name>
+ <classname>java.lang.String</classname>
+ <description>
+ The optional name of the function that might be used to trigger the operation on the target component
+ </description>
+ <defaultvalue>""</defaultvalue>
+ </property>
+ <property>
+ <name>for</name>
+ <classname>java.lang.String</classname>
+ <description>
+ Client identifier of the target component.
+ </description>
+ <defaultvalue>""</defaultvalue>
+ </property>
+ <property>
+ <name>operation</name>
+ <classname>java.lang.String</classname>
+ <description>
+ The function of Javascript API that will be invoked. The API method
+ is attached to the 'component' property of the root DOM element that represents
+ the target component. The function has two parameters - event and params. See: 'params'
+ attribute for details.
+ </description>
+ <defaultvalue>""</defaultvalue>
+ </property>
+ <property>
+ <name>params</name>
+ <classname>java.lang.String</classname>
+ <description>
+ The set of parameters passed to the function of Javascript API that will be invoked.
+ The JSON syntax is used to define the parameters, but without open and closed curve
+ bracket.
+ As an alternative, the set of f:param can be used to define the parameters passed to the
+ API function. If both way are used to define the parameters, both set are concatenated.
+ if names are equals, the f:param has a priority.
+ </description>
+ <defaultvalue>""</defaultvalue>
+ </property>
+ <property>
+ <name>attachTo</name>
+ <classname>java.lang.String</classname>
+ <description>
+ Client identifier of the component or id of the existing DOM element that is a source
+ for given event. If attachTo is defined, the event is attached on the client according
+ to the AttachTiming attribute.
+ If attachTo is not defined, the event is attached on the server to the closest in the
+ component tree parent component.
+ </description>
+ <defaultvalue>""</defaultvalue>
+ </property>
+ <property>
+ <name>attachTiming</name>
+ <classname>java.lang.String</classname>
+ <description>
+ </description>
+ <defaultvalue>"immediate"</defaultvalue>
+ </property>
+ </component>
+</components>
Added: trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/renderkit/ComponentControlRendererBase.java
===================================================================
--- trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/renderkit/ComponentControlRendererBase.java (rev 0)
+++ trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/renderkit/ComponentControlRendererBase.java 2007-11-09 03:04:24 UTC (rev 3845)
@@ -0,0 +1,58 @@
+package org.richfaces.renderkit;
+
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.javascript.JSEncoder;
+import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
+import org.richfaces.sandbox.component.UIComponentControl;
+import org.richfaces.component.util.HtmlUtil;
+
+
+public class ComponentControlRendererBase extends HeaderResourcesRendererBase {
+
+ protected Class getComponentClass() {
+ return UIComponentControl.class;
+ }
+
+
+
+ protected void checkValidity(String clientId, String name, String attachTiming, String forAttr, String operation) {
+
+ if ( ! "onJScall".equals(attachTiming) &&
+ ! "onload".equals(attachTiming) &&
+ ! "immediate".equals(attachTiming) ) {
+ throw new FacesException(
+ "The attachTiming attribute of the controlComponent (id='"+clientId+"') has an invalid value:'"+ attachTiming +
+ "'. It may have only the following values: 'immediate', 'onload', 'onJScall'");
+ }
+
+ if ( name == null ) {
+ throw new FacesException(
+ "The name attribute of the controlComponent (id='"+clientId+"') might not be null" );
+
+ }
+
+ if ( "".equals(operation.trim()) || operation==null ) {
+ throw new FacesException(
+ "The operation attribute of the controlComponent (id='"+clientId+"') must be specified" );
+ }
+
+
+ if ( "".equals(name.trim()) && "onJScall".equals(attachTiming) ) {
+ throw new FacesException(
+ "The name attribute of the controlComponent (id='"+clientId+"') must be specified when timing attribute equals to 'onJScall'" );
+ }
+
+
+ }
+ protected String replaceClientIds(FacesContext context, UIComponent component, String selector) {
+ return HtmlUtil.expandIdSelector(selector, component, context);
+ }
+
+
+
+
+
+}
Added: trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/sandbox/component/README
===================================================================
Added: trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/sandbox/component/UIComponentControl.java
===================================================================
--- trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/sandbox/component/UIComponentControl.java (rev 0)
+++ trunk/sandbox/ui/componentControl/src/main/java/org/richfaces/sandbox/component/UIComponentControl.java 2007-11-09 03:04:24 UTC (rev 3845)
@@ -0,0 +1,19 @@
+/**
+ *
+ */
+
+package org.richfaces.sandbox.component;
+
+import javax.faces.component.UIComponentBase;
+
+/**
+ * JSF component class
+ *
+ */
+public abstract class UIComponentControl extends UIComponentBase {
+
+ public static final String COMPONENT_TYPE = "org.richfaces.sandbox.ComponentControl";
+
+ public static final String COMPONENT_FAMILY = "org.richfaces.sandbox.ComponentControl";
+
+}
Modified: trunk/sandbox/ui/pom.xml
===================================================================
--- trunk/sandbox/ui/pom.xml 2007-11-09 02:06:22 UTC (rev 3844)
+++ trunk/sandbox/ui/pom.xml 2007-11-09 03:04:24 UTC (rev 3845)
@@ -20,5 +20,7 @@
<module>columns</module>
<module>rex-resizable</module>
<module>rex-messageBox</module>
+ <module>rex-button</module>
+ <module>componentControl</module>
</modules>
</project>
\ No newline at end of file
Property changes on: trunk/sandbox/ui/rex-button
___________________________________________________________________
Name: svn:ignore
+ .classpath
.project
.settings
target
Modified: trunk/sandbox/ui/rex-messageBox/pom.xml
===================================================================
--- trunk/sandbox/ui/rex-messageBox/pom.xml 2007-11-09 02:06:22 UTC (rev 3844)
+++ trunk/sandbox/ui/rex-messageBox/pom.xml 2007-11-09 03:04:24 UTC (rev 3845)
@@ -5,10 +5,9 @@
<version>3.2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.richfaces.sandbox</groupId>
+ <groupId>org.richfaces.sandbox.ui</groupId>
<artifactId>rex-messageBox</artifactId>
<name>rex-messageBox</name>
- <version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
Modified: trunk/sandbox/ui/rex-messageBox/src/main/templates/htmlMessageBox.jspx
===================================================================
--- trunk/sandbox/ui/rex-messageBox/src/main/templates/htmlMessageBox.jspx 2007-11-09 02:06:22 UTC (rev 3844)
+++ trunk/sandbox/ui/rex-messageBox/src/main/templates/htmlMessageBox.jspx 2007-11-09 03:04:24 UTC (rev 3845)
@@ -9,16 +9,29 @@
baseclass="org.ajax4jsf.renderkit.AjaxComponentRendererBase"
component="org.richfaces.sandbox.component.UIMessageBox"
>
+
+ <h:styles>extjs/ext-all.css,extjs/ext-css-patch.xcss</h:styles>
+ <h:scripts>extjs/ext-base.js,extjs/ext-all.js,/org/richfaces/renderkit/html/scripts/jquery/jquery.js</h:scripts>
+
+
<f:clientid var="clientId"/>
<script type="text/javascript">
-
+ Ext.MessageBox.show({
+ title: 'Address',
+ msg: 'Please enter your address:',
+ width:300,
+ buttons: Ext.MessageBox.OKCANCEL,
+ multiline: true,
+ fn: showResultText,
+ animEl: 'mb3'
+ });
</script>
- <!--
+
<div id="#{clientId}"
x:passThruWithExclusions="value,name,type,id"
>
</div>
- -->
+
</f:root>
\ No newline at end of file
18 years, 6 months
JBoss Rich Faces SVN: r3844 - in trunk/sandbox/ui/orderingList/src/main: java/org/richfaces/renderkit and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-11-08 21:06:22 -0500 (Thu, 08 Nov 2007)
New Revision: 3844
Modified:
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx
Log:
latest changes for orderingList
Modified: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java 2007-11-09 02:06:15 UTC (rev 3843)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java 2007-11-09 02:06:22 UTC (rev 3844)
@@ -174,8 +174,8 @@
private Object value;
private boolean localValueSet;
- private SubmittedValue submittedValueHolder = null;
- private EditableState editableState = new EditableState();
+ private transient SubmittedValue submittedValueHolder = null;
+ private transient EditableState editableState = new EditableState();
public void restoreState(FacesContext faces, Object object) {
Object[] state = (Object[]) object;
@@ -276,7 +276,6 @@
this.editableState = (EditableState) values[1];
} else {
this.submittedValueHolder = null;
- this.editableState = null;
}
}
@@ -869,4 +868,13 @@
return ScriptUtils.toScript(order);
}
+
+ public abstract boolean isOrderControlsVisible();
+ public abstract void setOrderControlsVisible(boolean visible);
+
+ public abstract boolean isFastOrderControlsVisible();
+ public abstract void setFastOrderControlsVisible(boolean visible);
+
+ public abstract String getControlsType();
+ public abstract void setControlsType(String type);
}
Modified: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-09 02:06:15 UTC (rev 3843)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-09 02:06:22 UTC (rev 3844)
@@ -14,11 +14,14 @@
import org.ajax4jsf.component.UIDataAdaptor;
import org.ajax4jsf.renderkit.RendererUtils.HTML;
-import org.ajax4jsf.renderkit.compiler.FacetElement;
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections.iterators.FilterIterator;
import org.richfaces.component.Column;
import org.richfaces.component.UIOrderingList;
+import org.richfaces.renderkit.html.images.OrderingListIconBottom;
+import org.richfaces.renderkit.html.images.OrderingListIconDown;
+import org.richfaces.renderkit.html.images.OrderingListIconTop;
+import org.richfaces.renderkit.html.images.OrderingListIconUp;
public abstract class OrderingListRendererBase extends AbstractRowsRenderer {
@@ -28,13 +31,13 @@
private final static String ITEM_SEPARATOR = ",";
- private final static String FACET_TOP = "Top";
+ private final static String FACET_TOP = "topControl";
- private final static String FACET_BOTTOM = "Bottom";
+ private final static String FACET_BOTTOM = "bottomControl";
- private final static String FACET_UP = "Up";
+ private final static String FACET_UP = "upControl";
- private final static String FACET_DOWN = "Down";
+ private final static String FACET_DOWN = "downControl";
private final static String CONTROL_TYPE_LINK = "link";
@@ -52,6 +55,92 @@
private final static String CONTROL_ID_BOTTOM = "_bottom";
+ protected static abstract class ControlsHelper {
+ private String name;
+
+ private String text;
+
+ private String imageURI;
+
+ private String facetName;
+
+ private String styleClassName;
+
+ private String idSuffix;
+
+ public abstract boolean isRendered(FacesContext context, UIOrderingList list);
+
+ public ControlsHelper(String name, String text, String imageURI,
+ String facetName, String styleClassName, String idSuffix) {
+ super();
+ this.name = name;
+ this.text = text;
+ this.imageURI = imageURI;
+ this.facetName = facetName;
+ this.styleClassName = styleClassName;
+ this.idSuffix = idSuffix;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public String getImageURI() {
+ return imageURI;
+ }
+
+ public String getFacetName() {
+ return facetName;
+ }
+
+ public String getStyleClassName() {
+ return styleClassName;
+ }
+
+ public String getIdSuffix() {
+ return idSuffix;
+ }
+ };
+
+ protected static final ControlsHelper[] HELPERS = new ControlsHelper[] {
+ new ControlsHelper("top", "↟", OrderingListIconTop.class.getName(), FACET_TOP,
+ "rich-ordering-control-top", CONTROL_ID_TOP) {
+
+ public boolean isRendered(FacesContext context, UIOrderingList list) {
+ return list.isFastOrderControlsVisible();
+ }
+
+ },
+ new ControlsHelper("up", "↑", OrderingListIconUp.class.getName(), FACET_UP,
+ "rich-ordering-control-up", CONTROL_ID_UP) {
+
+ public boolean isRendered(FacesContext context, UIOrderingList list) {
+ return list.isOrderControlsVisible();
+ }
+
+ },
+ new ControlsHelper("down", "↡", OrderingListIconDown.class.getName(), FACET_DOWN,
+ "rich-ordering-control-down", CONTROL_ID_DOWN) {
+
+ public boolean isRendered(FacesContext context, UIOrderingList list) {
+ return list.isFastOrderControlsVisible();
+ }
+
+ },
+ new ControlsHelper("botton", "↓", OrderingListIconBottom.class.getName(), FACET_BOTTOM,
+ "rich-ordering-control-bottom", CONTROL_ID_BOTTOM) {
+
+ public boolean isRendered(FacesContext context, UIOrderingList list) {
+ return list.isOrderControlsVisible();
+ }
+
+ }
+ };
+
protected Class getComponentClass() {
return UIOrderingList.class;
}
@@ -98,48 +187,72 @@
writer.endElement("thead");
}
- public void encodeControlsList(FacesContext context, UIOrderingList orderingList)
+ public void encodeControlsFacets(FacesContext context, UIOrderingList orderingList)
throws IOException {
+ String clientId = orderingList.getClientId(context);
ResponseWriter writer = context.getResponseWriter();
- writer.startElement(HTML.td_ELEM, orderingList);
- writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_button_layout", null);
- encodeContolsFacets(context, orderingList, writer);
- writer.endElement(HTML.td_ELEM);
+
+ for (int i = 0; i < HELPERS.length; i++) {
+ if (HELPERS[i].isRendered(context, orderingList)) {
+ encodeControlFacet(context, orderingList, HELPERS[i], clientId, writer);
+ }
+ }
}
- protected void encodeContolsFacets(FacesContext context, UIOrderingList orderingList, ResponseWriter writer)
+ protected void encodeControlFacet(FacesContext context, UIOrderingList orderingList, ControlsHelper helper, String clientId, ResponseWriter writer)
throws IOException {
- Map facets = orderingList.getFacets();
- String clientId = orderingList.getClientId(context);
- encodeControlFacet(context, orderingList, writer, (UIComponent) facets.get(FACET_TOP), "rich-ordering-control-top", clientId.concat(CONTROL_ID_TOP));
- encodeControlFacet(context, orderingList, writer, (UIComponent) facets.get(FACET_UP), "rich-ordering-control-up", clientId.concat(CONTROL_ID_UP));
- encodeControlFacet(context, orderingList, writer, (UIComponent) facets.get(FACET_DOWN), "rich-ordering-control-down", clientId.concat(CONTROL_ID_DOWN));
- encodeControlFacet(context, orderingList, writer, (UIComponent) facets.get(FACET_BOTTOM), "rich-ordering-control-bottom", clientId.concat(CONTROL_ID_BOTTOM));
- }
-
- protected void encodeControlFacet(FacesContext context, UIOrderingList orderingList, ResponseWriter writer, UIComponent facet, String facetClass, String controlId)
- throws IOException {
- if (facet != null && facet.isRendered()) {
- String controlType = (String) orderingList.getAttributes().get(ATTRIBUTE_CONTROLS_TYPE);
- String htmlElem = null;
- if (CONTROL_TYPE_BUTTON.equals(controlType)) {
- htmlElem = HTML.BUTTON;
- } else if (CONTROL_TYPE_LINK.equals(controlType)) {
- htmlElem = HTML.a_ELEMENT;
- } else {
- return;
- }
-
+
+
+ UIComponent facet = orderingList.getFacet(helper.getFacetName());
+ boolean isButton = false;
+ boolean useFacet = (facet != null && facet.isRendered());
+
+ String controlType = (String) orderingList.getAttributes().get(ATTRIBUTE_CONTROLS_TYPE);
+ String htmlElem = null;
+ if (CONTROL_TYPE_BUTTON.equals(controlType)) {
+ isButton = true;
+ htmlElem = HTML.BUTTON;
+ } else if (CONTROL_TYPE_LINK.equals(controlType)) {
+ htmlElem = HTML.a_ELEMENT;
+ } else {
+ //none
+ }
+
+ boolean encodeDiv = useFacet || htmlElem != null;
+
+ if (encodeDiv) {
writer.startElement(HTML.DIV_ELEM, orderingList);
writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_button", null);
-
+ }
+
+ if (htmlElem != null) {
writer.startElement(htmlElem, orderingList);
- writer.writeAttribute(HTML.id_ATTRIBUTE, controlId, null);
- writer.writeAttribute(HTML.class_ATTRIBUTE, facetClass, null);
- //writer.writeAttribute(HTML.TYPE_ATTR, HTML.BUTTON, null);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, clientId + helper.getIdSuffix(), null);
+ writer.writeAttribute(HTML.class_ATTRIBUTE, helper.getStyleClassName(), null);
+ }
+
+ if (useFacet) {
renderChild(context, facet);
+ } else {
+ if (isButton) {
+ writer.writeAttribute("style", "font-size: 1.5em;", null);
+ writer.write(helper.getText());
+ } else {
+ writer.startElement(HTML.IMG_ELEMENT, orderingList);
+
+ writer.writeAttribute("border", "0", null);
+ writer.writeAttribute("alt", helper.getFacetName(), null);
+ writer.writeAttribute("src", getResource(helper.getImageURI()).getUri(context, null), null);
+
+ writer.endElement(HTML.IMG_ELEMENT);
+ }
+ }
+
+ if (htmlElem != null) {
writer.endElement(htmlElem);
-
+ }
+
+ if (encodeDiv) {
writer.endElement(HTML.DIV_ELEM);
}
}
Modified: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-09 02:06:15 UTC (rev 3843)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-09 02:06:22 UTC (rev 3844)
@@ -21,8 +21,8 @@
}
.ol_list {
- width : 200px;
- height : 150px;
+ width : 300px;
+ height : 250px;
background : #FFFFFF;
border : 1px solid #bfbfc0;
margin : 0px 8px 8px 8px;
@@ -30,13 +30,13 @@
.ol_list_content {
overflow : auto;
- width: 200px;
- height: 132px;
+ width: 300px;
+ height: 232px;
}
.ol_list_header {
overflow: hidden;
- width: 200px;
+ width: 300px;
height: 18px;
}
Modified: trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx 2007-11-09 02:06:15 UTC (rev 3843)
+++ trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx 2007-11-09 02:06:22 UTC (rev 3844)
@@ -36,10 +36,11 @@
var="bottomIcon" />
<div id="#{clientId}" x:passThruWithExclusions="id">
- <input id="#{clientId}focusKeeper" type="button" value="" style="position: absolute; left: -32767px;" name="focusKeeper"/>
+ <input id="#{clientId}focusKeeper" type="button" value="" style="width: 1px; position: absolute; left: -32767px;" name="focusKeeper"/>
<input id="#{clientId}valueKeeper" type="hidden" name="#{clientId}" value="#{component.submittedValueAsString}"/>
<table id="#{clientId}table" cellpadding="0" cellspacing="0" class="ol_body">
+ <tbody>
<tr>
<td>
<div id="#{clientId}headerBox" class="ol_list">
@@ -57,10 +58,11 @@
</div>
</div>
</td>
- <td>
- <f:call name="encodeControlsList"/>
+ <td class="ol_button_layout">
+ <f:call name="encodeControlsFacets"/>
</td>
</tr>
+ </tbody>
</table>
<f:clientId var="clientId"/>
<a id="#{clientId}sortLabel" href="#">Header</a>
18 years, 6 months
JBoss Rich Faces SVN: r3843 - in trunk/sandbox/samples/orderingListDemo/src/main: webapp/pages and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-11-08 21:06:15 -0500 (Thu, 08 Nov 2007)
New Revision: 3843
Modified:
trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OptionItem.java
trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OrderingListDemoBean.java
trunk/sandbox/samples/orderingListDemo/src/main/webapp/pages/index.jsp
Log:
latest changes for orderingList
Modified: trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OptionItem.java
===================================================================
--- trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OptionItem.java 2007-11-08 20:25:05 UTC (rev 3842)
+++ trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OptionItem.java 2007-11-09 02:06:15 UTC (rev 3843)
@@ -19,7 +19,7 @@
public void setName(String name) {
this.name = name;
}
-
+
public int getPrice() {
return price;
}
Modified: trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OrderingListDemoBean.java
===================================================================
--- trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OrderingListDemoBean.java 2007-11-08 20:25:05 UTC (rev 3842)
+++ trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OrderingListDemoBean.java 2007-11-09 02:06:15 UTC (rev 3843)
@@ -10,7 +10,7 @@
private List<OptionItem> items = new ArrayList<OptionItem>();
- private String controlsType = "button";
+ private String controlsType = "link";
private String controlsHorizontalAlign = "right";
private String controlsVerticalAlign = "center";
private String headerLabel = "headerLabel";
Modified: trunk/sandbox/samples/orderingListDemo/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/sandbox/samples/orderingListDemo/src/main/webapp/pages/index.jsp 2007-11-08 20:25:05 UTC (rev 3842)
+++ trunk/sandbox/samples/orderingListDemo/src/main/webapp/pages/index.jsp 2007-11-09 02:06:15 UTC (rev 3843)
@@ -10,7 +10,8 @@
<style type="text/css">
.columnClass {
vertical-align: top;
- }
+ }
+
</style>
<title></title>
</head>
@@ -108,6 +109,7 @@
</h:selectOneRadio>
<h:commandButton value="Submit" />
+ <h:commandButton value="Submit immediate" immediate="true" />
</h:panelGrid>
</h:panelGroup>
<h:panelGroup>
18 years, 6 months
JBoss Rich Faces SVN: r3842 - trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-08 15:25:05 -0500 (Thu, 08 Nov 2007)
New Revision: 3842
Modified:
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
Log:
cosmetic changes
Modified: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-08 20:20:48 UTC (rev 3841)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-08 20:25:05 UTC (rev 3842)
@@ -67,10 +67,22 @@
Shuttle.prototype.init = function(contentTableId, headerTableId, upControlId, downControlId, firstControlId, lastControlId, onclickControlId, focusKeeperId) {
var obj = this;
Shuttle.setFocus(focusKeeperId);
- document.getElementById(upControlId).onclick = function() {obj.moveSelectedItems('up');return false;};
- document.getElementById(downControlId).onclick = function() {obj.moveSelectedItems('down');return false;};
- document.getElementById(firstControlId).onclick = function() {obj.moveSelectedItems('first');return false;};
- document.getElementById(lastControlId).onclick = function() {obj.moveSelectedItems('last');return false;};
+ var upControl = document.getElementById(upControlId);
+ var downControl = document.getElementById(downControlId);
+ var topControl = document.getElementById(lastControlId);
+ var bottomControl = document.getElementById(lastControlId);
+ if (upControl) {
+ upControl.onclick = function() {obj.moveSelectedItems('up');return false;};
+ }
+ if (downControl) {
+ downControl.onclick = function() {obj.moveSelectedItems('last');return false;};
+ }
+ if (topControl) {
+ topControl.onclick = function() {obj.moveSelectedItems('first');return false;};
+ }
+ if (bottomControl) {
+ bottomControl.onclick = function() {obj.moveSelectedItems('last');return false;};
+ }
document.getElementById(contentTableId).onclick = function(e) {obj.onclickHandler(window.event || e);};
this.shuttleTop = LayoutManager.getElemXY(this.shuttleTable).top;
}
18 years, 6 months
JBoss Rich Faces SVN: r3841 - trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-08 15:20:48 -0500 (Thu, 08 Nov 2007)
New Revision: 3841
Modified:
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
Log:
control list was added
Modified: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-08 20:18:29 UTC (rev 3840)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-08 20:20:48 UTC (rev 3841)
@@ -119,15 +119,15 @@
protected void encodeControlFacet(FacesContext context, UIOrderingList orderingList, ResponseWriter writer, UIComponent facet, String facetClass, String controlId)
throws IOException {
- if (facet != null) {
+ if (facet != null && facet.isRendered()) {
String controlType = (String) orderingList.getAttributes().get(ATTRIBUTE_CONTROLS_TYPE);
String htmlElem = null;
if (CONTROL_TYPE_BUTTON.equals(controlType)) {
htmlElem = HTML.BUTTON;
} else if (CONTROL_TYPE_LINK.equals(controlType)) {
htmlElem = HTML.a_ELEMENT;
- } else if (CONTROL_TYPE_NONE.equals(controlType)) {
- //TODO
+ } else {
+ return;
}
writer.startElement(HTML.DIV_ELEM, orderingList);
18 years, 6 months
JBoss Rich Faces SVN: r3840 - trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-08 15:18:29 -0500 (Thu, 08 Nov 2007)
New Revision: 3840
Modified:
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
Log:
control list was added
Modified: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-08 20:18:10 UTC (rev 3839)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-08 20:18:29 UTC (rev 3840)
@@ -19,7 +19,7 @@
}
Shuttle = function(containerId, contentTableId, headerTableId, focusKeeperId, valueKeeperId,
- upControlId, downControlId, firstControlId, lastControlId, onclickControlId) {
+ upControlIdPr, downControlIdPr, firstControlIdPr, lastControlIdPr, onclickControlId) {
this.container = document.getElementById(containerId);
this.shuttleTable = document.getElementById(contentTableId);
this.shuttleTbody = this.shuttleTable.tBodies[0];
@@ -41,7 +41,7 @@
this.focusKeeper.onkeydown = function(e) {
obj.onkeydownHandler(window.event || e);
}
- this.init(contentTableId, headerTableId, upControlId, downControlId, firstControlId, lastControlId, onclickControlId, focusKeeperId);
+ this.init(contentTableId, headerTableId, containerId + upControlIdPr, containerId + downControlIdPr, containerId + firstControlIdPr, containerId + lastControlIdPr, onclickControlId, focusKeeperId);
}
Shuttle.ASC = "acs";
@@ -67,10 +67,10 @@
Shuttle.prototype.init = function(contentTableId, headerTableId, upControlId, downControlId, firstControlId, lastControlId, onclickControlId, focusKeeperId) {
var obj = this;
Shuttle.setFocus(focusKeeperId);
- document.getElementById(upControlId).onclick = function() {obj.moveSelectedItems('up');};
- document.getElementById(downControlId).onclick = function() {obj.moveSelectedItems('down');};
- document.getElementById(firstControlId).onclick = function() {obj.moveSelectedItems('first');};
- document.getElementById(lastControlId).onclick = function() {obj.moveSelectedItems('last');};
+ document.getElementById(upControlId).onclick = function() {obj.moveSelectedItems('up');return false;};
+ document.getElementById(downControlId).onclick = function() {obj.moveSelectedItems('down');return false;};
+ document.getElementById(firstControlId).onclick = function() {obj.moveSelectedItems('first');return false;};
+ document.getElementById(lastControlId).onclick = function() {obj.moveSelectedItems('last');return false;};
document.getElementById(contentTableId).onclick = function(e) {obj.onclickHandler(window.event || e);};
this.shuttleTop = LayoutManager.getElemXY(this.shuttleTable).top;
}
@@ -161,8 +161,7 @@
for (var i = 0; i < rows.length; i++) {
this.shuttleItems.push(rows[i].item);
}
-
- this.saveState();
+ this.saveState();
}
}
18 years, 6 months
JBoss Rich Faces SVN: r3839 - in trunk/sandbox/ui/orderingList/src/main: templates/org/richfaces and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-08 15:18:10 -0500 (Thu, 08 Nov 2007)
New Revision: 3839
Modified:
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx
Log:
control list was added
Modified: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-08 20:01:59 UTC (rev 3838)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-08 20:18:10 UTC (rev 3839)
@@ -14,6 +14,7 @@
import org.ajax4jsf.component.UIDataAdaptor;
import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.ajax4jsf.renderkit.compiler.FacetElement;
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections.iterators.FilterIterator;
import org.richfaces.component.Column;
@@ -27,6 +28,30 @@
private final static String ITEM_SEPARATOR = ",";
+ private final static String FACET_TOP = "Top";
+
+ private final static String FACET_BOTTOM = "Bottom";
+
+ private final static String FACET_UP = "Up";
+
+ private final static String FACET_DOWN = "Down";
+
+ private final static String CONTROL_TYPE_LINK = "link";
+
+ private final static String CONTROL_TYPE_BUTTON = "button";
+
+ private final static String CONTROL_TYPE_NONE = "none";
+
+ private final static String ATTRIBUTE_CONTROLS_TYPE = "controlsType";
+
+ private final static String CONTROL_ID_UP = "_up";
+
+ private final static String CONTROL_ID_DOWN = "_down";
+
+ private final static String CONTROL_ID_TOP = "_top";
+
+ private final static String CONTROL_ID_BOTTOM = "_bottom";
+
protected Class getComponentClass() {
return UIOrderingList.class;
}
@@ -35,15 +60,6 @@
return true;
}
- public void encodeOrderingListStructure(FacesContext context, UIOrderingList orderingList)
- throws IOException {
- ResponseWriter writer = context.getResponseWriter();
- //encodeCaption(context, orderingList);
- encodeHeader(context, orderingList);
- //encodeFooter(context, orderingList);
-
- }
-
protected Iterator columnFacets(UIOrderingList orderingList, final String name){
return new FilterIterator(orderingList.columns(), new Predicate() {
@@ -59,6 +75,10 @@
}});
}
+ public void encodeCaption(FacesContext context, UIOrderingList orderingList) {
+
+ }
+
public void encodeHeader(FacesContext context, UIOrderingList orderingList)
throws IOException {
ResponseWriter writer = context.getResponseWriter();
@@ -78,6 +98,52 @@
writer.endElement("thead");
}
+ public void encodeControlsList(FacesContext context, UIOrderingList orderingList)
+ throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement(HTML.td_ELEM, orderingList);
+ writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_button_layout", null);
+ encodeContolsFacets(context, orderingList, writer);
+ writer.endElement(HTML.td_ELEM);
+ }
+
+ protected void encodeContolsFacets(FacesContext context, UIOrderingList orderingList, ResponseWriter writer)
+ throws IOException {
+ Map facets = orderingList.getFacets();
+ String clientId = orderingList.getClientId(context);
+ encodeControlFacet(context, orderingList, writer, (UIComponent) facets.get(FACET_TOP), "rich-ordering-control-top", clientId.concat(CONTROL_ID_TOP));
+ encodeControlFacet(context, orderingList, writer, (UIComponent) facets.get(FACET_UP), "rich-ordering-control-up", clientId.concat(CONTROL_ID_UP));
+ encodeControlFacet(context, orderingList, writer, (UIComponent) facets.get(FACET_DOWN), "rich-ordering-control-down", clientId.concat(CONTROL_ID_DOWN));
+ encodeControlFacet(context, orderingList, writer, (UIComponent) facets.get(FACET_BOTTOM), "rich-ordering-control-bottom", clientId.concat(CONTROL_ID_BOTTOM));
+ }
+
+ protected void encodeControlFacet(FacesContext context, UIOrderingList orderingList, ResponseWriter writer, UIComponent facet, String facetClass, String controlId)
+ throws IOException {
+ if (facet != null) {
+ String controlType = (String) orderingList.getAttributes().get(ATTRIBUTE_CONTROLS_TYPE);
+ String htmlElem = null;
+ if (CONTROL_TYPE_BUTTON.equals(controlType)) {
+ htmlElem = HTML.BUTTON;
+ } else if (CONTROL_TYPE_LINK.equals(controlType)) {
+ htmlElem = HTML.a_ELEMENT;
+ } else if (CONTROL_TYPE_NONE.equals(controlType)) {
+ //TODO
+ }
+
+ writer.startElement(HTML.DIV_ELEM, orderingList);
+ writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_button", null);
+
+ writer.startElement(htmlElem, orderingList);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, controlId, null);
+ writer.writeAttribute(HTML.class_ATTRIBUTE, facetClass, null);
+ //writer.writeAttribute(HTML.TYPE_ATTR, HTML.BUTTON, null);
+ renderChild(context, facet);
+ writer.endElement(htmlElem);
+
+ writer.endElement(HTML.DIV_ELEM);
+ }
+ }
+
protected void encodeHeaderFacets(FacesContext context, ResponseWriter writer,
Iterator headers, String skinCellClass,
String headerClass, String facetName, String element)
@@ -108,7 +174,6 @@
public void encodeOneRow(FacesContext context, TableHolder holder)
throws IOException {
-
ResponseWriter writer = context.getResponseWriter();
UIDataAdaptor table = holder.getTable();
String clientId = holder.getTable().getClientId(context);
@@ -130,9 +195,25 @@
writer.endElement(HTML.TR_ELEMENT);
}
- public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
+ /*public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+ String clientId = component.getClientId(context);
+
+ writer.startElement(HTML.TR_ELEMENT, component);
+ writer.startElement(HTML.td_ELEM, component);
+ encodeCaption(context, (UIOrderingList) component);
+ writer.endElement(HTML.td_ELEM);
+ writer.endElement(HTML.TR_ELEMENT);
+
+ writer.startElement(HTML.TR_ELEMENT, component);
+ writer.startElement(HTML.td_ELEM, component);
+ writer.startElement(HTML.DIV_ELEM, component);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, clientId.concat("headerBox"), null);
+ writer.writeAttribute(HTML.class_ATTRIBUTE, "ol_list", null);
+
+
encodeRows(context, component);
- }
+ }*/
public void doDecode(FacesContext context, UIComponent component) {
UIOrderingList orderingList = (UIOrderingList) component;
Modified: trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx 2007-11-08 20:01:59 UTC (rev 3838)
+++ trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx 2007-11-08 20:18:10 UTC (rev 3839)
@@ -12,9 +12,9 @@
<h:styles>css/orderingList.xcss</h:styles>
<h:scripts>
- scripts/SelectItem.js,
- scripts/OrderingList.js,
+ scripts/SelectItem.js,
scripts/LayoutManager.js
+ scripts/OrderingList.js,
</h:scripts>
<f:clientId var="clientId"/>
@@ -40,45 +40,31 @@
<input id="#{clientId}valueKeeper" type="hidden" name="#{clientId}" value="#{component.submittedValueAsString}"/>
<table id="#{clientId}table" cellpadding="0" cellspacing="0" class="ol_body">
- <tr>
- <td>
- <div id="#{clientId}headerBox" class="ol_list">
- <div class="ol_list_header">
- <table id="#{clientId}internal_header_tab" class="ol_internal_header_tab" cellpadding="0" cellspacing="0">
- <f:call name="encodeOrderingListStructure"/>
- </table>
+ <tr>
+ <td>
+ <div id="#{clientId}headerBox" class="ol_list">
+ <div class="ol_list_header">
+ <table id="#{clientId}internal_header_tab" class="ol_internal_header_tab" cellpadding="0" cellspacing="0">
+ <f:call name="encodeHeader"/>
+ </table>
+ </div>
+ <div id="#{clientId}contentBox" class="ol_list_content">
+ <table id="#{clientId}internal_tab" class="ol_internal_tab" cellpadding="0" cellspacing="0">
+ <tbody id="#{clientId}tbody"><vcp:body>
+ <f:call name="encodeRows" /></vcp:body>
+ </tbody>
+ </table>
+ </div>
</div>
- <div id="#{clientId}contentBox" class="ol_list_content">
- <table id="#{clientId}internal_tab" class="ol_internal_tab" cellpadding="0" cellspacing="0">
- <tbody id="#{clientId}tbody">
- <vcp:body>
- <f:call name="renderChildren" />
- </vcp:body>
- </tbody>
- </table>
- </div>
- </div>
- </td>
- </tr>
+ </td>
+ <td>
+ <f:call name="encodeControlsList"/>
+ </td>
+ </tr>
</table>
<f:clientId var="clientId"/>
- <a id="#{clientId}sortLabel" href="#">Header</a>
- <img src="#{spacer}" border="0" width="1" height="1"/>
- <a id="#{clientId}up" href="#" >
- <img src="#{upIcon}" border="0" />
- </a>
- <img src="#{spacer}" border="0" width="1" height="1"/>
- <a id="#{clientId}down" href="#" >
- <img src="#{downIcon}" border="0" />
- </a>
- <img src="#{spacer}" border="0" width="1" height="1"/>
- <a id="#{clientId}first" href="#" >
- <img src="#{topIcon}" border="0" />
- </a>
- <img src="#{spacer}" border="0" width="1" height="1"/>
- <a id="#{clientId}last" href="#" >
- <img src="#{bottomIcon}" border="0" />
- </a>
+ <a id="#{clientId}sortLabel" href="#">Header</a>
+
</div>
<f:clientId var="cId"/>
<script type="text/javascript">
@@ -90,9 +76,8 @@
}
document.body.onselectstart = function() {return false;};
document.body.className = "body";
- var shuttle = new Shuttle('#{cId}', '#{cId}internal_tab', '#{cId}internal_header_tab', '#{cId}focusKeeper', '#{cId}valueKeeper','#{cId}up', '#{cId}down', '#{cId}first', '#{cId}last', '#{cId}sortLabel');
-
function init() {
+ var shuttle = new Shuttle('#{cId}', '#{cId}internal_tab', '#{cId}internal_header_tab', '#{cId}focusKeeper', '#{cId}valueKeeper','_up', '_down', '_top', '_bottom', '#{cId}sortLabel');
var layoutManager = new LayoutManager('#{clientId}internal_header_tab', '#{clientId}internal_tab');
layoutManager.widthSynchronization();
}
18 years, 6 months
JBoss Rich Faces SVN: r3838 - branches/3.1.x/framework/api/src/main/java/org/richfaces/model.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-11-08 15:01:59 -0500 (Thu, 08 Nov 2007)
New Revision: 3838
Modified:
branches/3.1.x/framework/api/src/main/java/org/richfaces/model/SequenceDataModel.java
Log:
http://jira.jboss.com/jira/browse/RF-1242
Modified: branches/3.1.x/framework/api/src/main/java/org/richfaces/model/SequenceDataModel.java
===================================================================
--- branches/3.1.x/framework/api/src/main/java/org/richfaces/model/SequenceDataModel.java 2007-11-08 19:59:47 UTC (rev 3837)
+++ branches/3.1.x/framework/api/src/main/java/org/richfaces/model/SequenceDataModel.java 2007-11-08 20:01:59 UTC (rev 3838)
@@ -5,7 +5,9 @@
import java.io.IOException;
import java.util.AbstractList;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -111,6 +113,13 @@
this.wrappedData = data;
if (data instanceof List) {
this.list = (List) data;
+ } else if (data instanceof Collection) {
+ this.list = new ArrayList((Collection) data);
+ //copying all collection content into new collection here should prevent us
+ //from possible issues caused by iteration tricks. e.g.: returning custom iterator
+ //caching current element and comparing indices inside get()
+ //
+ //possible concurrent collection modifications and multithreading will break the magic
} else if (data instanceof NodeList) {
this.list = new AbstractList() {
18 years, 6 months
JBoss Rich Faces SVN: r3837 - in branches/3.1.x/framework: test/src/test/java/org/richfaces/renderkit and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-11-08 14:59:47 -0500 (Thu, 08 Nov 2007)
New Revision: 3837
Added:
branches/3.1.x/framework/test/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java
Modified:
branches/3.1.x/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java
Log:
http://jira.jboss.com/jira/browse/RF-1130
Modified: branches/3.1.x/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java
===================================================================
--- branches/3.1.x/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java 2007-11-08 19:51:52 UTC (rev 3836)
+++ branches/3.1.x/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java 2007-11-08 19:59:47 UTC (rev 3837)
@@ -20,12 +20,15 @@
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
+import org.ajax4jsf.javascript.JSReference;
+import org.ajax4jsf.javascript.ScriptUtils;
+import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
import org.ajax4jsf.webapp.tidy.TidyParser;
import org.ajax4jsf.webapp.tidy.TidyXMLFilter;
-import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
import org.richfaces.component.TemplateComponent;
import org.richfaces.json.JSContentHandler;
import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -65,39 +68,51 @@
TidyParser tidyParser = new TidyParser(tidyProperties);
Document parsedHtml = tidyParser.parseHtmlByTidy(new StringReader(string), null);
- NodeList nodeList = parsedHtml.getDocumentElement().getChildNodes();
- Node bodyNode = nodeList.item(nodeList.getLength() - 1);
- NodeList bodyChildren = bodyNode.getChildNodes();
- int bodyChildrenLength = bodyChildren.getLength();
- writer.write("[");
+ Element documentElement = null;
+
+ if (parsedHtml != null) {
+ documentElement = parsedHtml.getDocumentElement();
+ }
+
+ if (documentElement != null) {
+ writer.write("[");
+
+ NodeList nodeList = documentElement.getChildNodes();
+ Node bodyNode = nodeList.item(nodeList.getLength() - 1);
+ NodeList bodyChildren = bodyNode.getChildNodes();
+ int bodyChildrenLength = bodyChildren.getLength();
- try {
- Transformer transformer;
+ try {
+ Transformer transformer;
- TransformerFactory factory = getTransformerFactory();
-
- synchronized (factory) {
- transformer = factory.newTransformer();
- }
+ TransformerFactory factory = getTransformerFactory();
+
+ synchronized (factory) {
+ transformer = factory.newTransformer();
+ }
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
- transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
- JSContentHandler contentHandler = new MacroDefinitionJSContentHandler(writer, "Richfaces.evalMacro(\"", "\", context)");
- Result result = new SAXResult(contentHandler);
+ JSContentHandler contentHandler = new MacroDefinitionJSContentHandler(writer, "Richfaces.evalMacro(\"", "\", context)");
+ Result result = new SAXResult(contentHandler);
- for (int i = 0; i < bodyChildrenLength; i++) {
- if (i != 0) {
- writer.write(", ");
+ for (int i = 0; i < bodyChildrenLength; i++) {
+ if (i != 0) {
+ writer.write(", ");
+ }
+ transformer.transform(new DOMSource(bodyChildren.item(i)), result);
}
- transformer.transform(new DOMSource(bodyChildren.item(i)), result);
+ } catch (TransformerException e) {
+ throw new IOException(e.getMessage());
}
- } catch (TransformerException e) {
- throw new IOException(e.getMessage());
+
+ writer.write("]");
+
+ } else {
+ writer.write(ScriptUtils.toScript(JSReference.NULL));
}
-
- writer.write("]");
}
protected void writeScriptBody(FacesContext context, UIComponent component, boolean children)
Copied: branches/3.1.x/framework/test/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java (from rev 3555, trunk/framework/test/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java)
===================================================================
--- branches/3.1.x/framework/test/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java (rev 0)
+++ branches/3.1.x/framework/test/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java 2007-11-08 19:59:47 UTC (rev 3837)
@@ -0,0 +1,63 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.renderkit;
+
+import javax.faces.component.UIOutput;
+
+import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+
+/**
+ * Created 26.10.2007
+ * @author Nick Belaevski - mailto:nbelaevski@exadel.com
+ * @since 3.2
+ */
+
+public class TemplateEncoderRendererBaseTest extends AbstractAjax4JsfTestCase {
+
+ public TemplateEncoderRendererBaseTest(String name) {
+ super(name);
+ }
+
+ public void testEncodeNonRendered() throws Exception {
+ setupResponseWriter();
+
+ TemplateEncoderRendererBase rendererBase = new TemplateEncoderRendererBase() {
+
+ protected Class getComponentClass() {
+ return UIOutput.class;
+ }
+
+ };
+
+ UIOutput output = new UIOutput();
+
+ UIOutput c = new UIOutput();
+ c.setRendered(false);
+ c.setValue("");
+ output.getChildren().add(c);
+
+ //that should not fail
+ rendererBase.writeScriptBody(facesContext, c, true);
+
+ processResponseWriter();
+ }
+}
18 years, 6 months