JBoss Rich Faces SVN: r4096 - trunk/ui/message/src/main/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2007-11-19 19:08:09 -0500 (Mon, 19 Nov 2007)
New Revision: 4096
Modified:
trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessage.java
trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java
Log:
Fix http://jira.jboss.org/jira/browse/JBSEAM-2276
Modified: trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessage.java
===================================================================
--- trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessage.java 2007-11-19 19:24:59 UTC (rev 4095)
+++ trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessage.java 2007-11-20 00:08:09 UTC (rev 4096)
@@ -39,6 +39,11 @@
super.decode(context);
}
+ public void encodeBegin(FacesContext context) throws IOException {
+ isPassed = true;
+ super.encodeBegin(context);
+ }
+
public void encodeEnd(FacesContext context) throws IOException {
super.encodeEnd(context);
isPassed = false;
Modified: trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java
===================================================================
--- trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java 2007-11-19 19:24:59 UTC (rev 4095)
+++ trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java 2007-11-20 00:08:09 UTC (rev 4096)
@@ -15,7 +15,7 @@
public abstract class UIRichMessages extends UIMessages implements AjaxOutput{
- private boolean isPassed = false;
+ private boolean isPassed = true;
public boolean isPassed(){
return isPassed;
@@ -32,7 +32,7 @@
}
public void decode(FacesContext context){
- isPassed = true;
+// isPassed = true;
super.decode(context);
}
18 years, 5 months
JBoss Rich Faces SVN: r4095 - branches/3.1.x/ui/orderingList.
by richfaces-svn-commits@lists.jboss.org
Author: sergeyhalipov
Date: 2007-11-19 14:24:59 -0500 (Mon, 19 Nov 2007)
New Revision: 4095
Modified:
branches/3.1.x/ui/orderingList/pom.xml
Log:
Ordering list: test generation added to pom.xml
Modified: branches/3.1.x/ui/orderingList/pom.xml
===================================================================
--- branches/3.1.x/ui/orderingList/pom.xml 2007-11-19 18:10:41 UTC (rev 4094)
+++ branches/3.1.x/ui/orderingList/pom.xml 2007-11-19 19:24:59 UTC (rev 4095)
@@ -22,6 +22,13 @@
<goal>generate</goal>
</goals>
</execution>
+ <execution>
+ <id>generate-test-sources</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>generate-tests</goal>
+ </goals>
+ </execution>
</executions>
<configuration>
<library>
@@ -42,4 +49,4 @@
</dependency>
</dependencies>
-</project>
\ No newline at end of file
+</project>
18 years, 5 months
JBoss Rich Faces SVN: r4094 - in branches/3.1.x/ui/orderingList/src/test/java/org/richfaces: renderkit and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: sergeyhalipov
Date: 2007-11-19 13:10:41 -0500 (Mon, 19 Nov 2007)
New Revision: 4094
Added:
branches/3.1.x/ui/orderingList/src/test/java/org/richfaces/renderkit/
branches/3.1.x/ui/orderingList/src/test/java/org/richfaces/renderkit/OrderingListRenderingTest.java
Log:
Ordering list: JUnit tests for rendering.
Added: branches/3.1.x/ui/orderingList/src/test/java/org/richfaces/renderkit/OrderingListRenderingTest.java
===================================================================
--- branches/3.1.x/ui/orderingList/src/test/java/org/richfaces/renderkit/OrderingListRenderingTest.java (rev 0)
+++ branches/3.1.x/ui/orderingList/src/test/java/org/richfaces/renderkit/OrderingListRenderingTest.java 2007-11-19 18:10:41 UTC (rev 4094)
@@ -0,0 +1,355 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * 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 java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.faces.component.UIColumn;
+import javax.faces.component.UIForm;
+import javax.faces.component.html.HtmlForm;
+import javax.faces.component.html.HtmlOutputText;
+import javax.servlet.http.HttpServletResponse;
+
+import org.ajax4jsf.resource.InternetResource;
+import org.ajax4jsf.resource.InternetResourceBuilder;
+import org.ajax4jsf.resource.ResourceBuilderImpl;
+import org.ajax4jsf.resource.image.ImageInfo;
+import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+import org.apache.commons.lang.StringUtils;
+import org.richfaces.component.UIOrderingList;
+
+import com.gargoylesoftware.htmlunit.Page;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlScript;
+
+/**
+ * @author Siarhej Chalipau
+ *
+ */
+public class OrderingListRenderingTest extends AbstractAjax4JsfTestCase {
+ private static Set javaScripts = new HashSet();
+ private static Set imageClasses = new HashSet();
+
+ static {
+ javaScripts.add("org.ajax4jsf.javascript.PrototypeScript");
+ javaScripts.add("scripts/SelectItem.js");
+ javaScripts.add("scripts/LayoutManager.js");
+ javaScripts.add("scripts/Control.js");
+ javaScripts.add("scripts/OrderingList.js");
+
+ imageClasses.add("org.richfaces.renderkit.html.images.OrderingListIconUp");
+ imageClasses.add("org.richfaces.renderkit.html.images.OrderingListIconDown");
+ imageClasses.add("org.richfaces.renderkit.html.images.OrderingListIconTop");
+ imageClasses.add("org.richfaces.renderkit.html.images.OrderingListIconBottom");
+ imageClasses.add("org.richfaces.renderkit.html.images.OrderingListIconUpDisabled");
+ imageClasses.add("org.richfaces.renderkit.html.images.OrderingListIconDownDisabled");
+ imageClasses.add("org.richfaces.renderkit.html.images.OrderingListIconTopDisabled");
+ imageClasses.add("org.richfaces.renderkit.html.images.OrderingListIconBottomDisabled");
+ }
+
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public OrderingListRenderingTest( String testName )
+ {
+ super( testName );
+ }
+
+ private UIForm form = null;
+ private UIOrderingList orderingList = null;
+ private List items = null;
+ private HtmlOutputText output1 = null;
+ private HtmlOutputText output2 = null;
+ private UIColumn column1 = null;
+ private UIColumn column2 = null;
+
+ public void setUp() throws Exception {
+ super.setUp();
+
+ form = new HtmlForm();
+ form.setId("form");
+ facesContext.getViewRoot().getChildren().add(form);
+
+ orderingList = (UIOrderingList)application.createComponent("org.richfaces.OrderingList");
+ orderingList.setId("orderingList");
+ orderingList.setControlsType("link");
+ orderingList.setVar("item");
+
+ items = new ArrayList();
+ items.add(new SimpleItem("Michael", 2000));
+ items.add(new SimpleItem("John", 500));
+ items.add(new SimpleItem("George", 4000));
+
+ orderingList.setValue(items);
+
+ output1 = new HtmlOutputText();
+ output1.setValueBinding("value", application.createValueBinding("#{item.name}"));
+ column1 = new UIColumn();
+ column1.getChildren().add(output1);
+ orderingList.getChildren().add(column1);
+
+ output2 = new HtmlOutputText();
+ output2.setValueBinding("value", application.createValueBinding("#{item.salary}"));
+ column2 = new UIColumn();
+ column2.getChildren().add(output2);
+ orderingList.getChildren().add(column2);
+
+ form.getChildren().add(orderingList);
+ }
+
+ public void tearDown() throws Exception {
+ items = null;
+ output1 = null;
+ output2 = null;
+ column1 = null;
+ column2 = null;
+ orderingList = null;
+ form = null;
+
+ super.tearDown();
+ }
+
+ /**
+ * Test script rendering
+ *
+ * @throws Exception
+ */
+ public void testRenderScript() throws Exception {
+ HtmlPage page = renderView();
+ //System.out.println(page.asXml());
+ assertNotNull(page);
+ List scripts = page.getDocumentElement().getHtmlElementsByTagName("script");
+ int foundCount = 0;
+ for (Iterator it = scripts.iterator(); it.hasNext();) {
+ HtmlScript item = (HtmlScript) it.next();
+ String srcAttr = item.getSrcAttribute();
+
+ if (StringUtils.isNotBlank(srcAttr)) {
+ boolean found = false;
+ for (Iterator srcIt = javaScripts.iterator(); srcIt.hasNext();) {
+ String src = (String) srcIt.next();
+
+ found = srcAttr.contains(src);
+ if (found) {
+ foundCount++;
+ break;
+ }
+ }
+
+ assertTrue(found);
+ }
+ }
+ assertEquals(foundCount, javaScripts.size());
+ }
+
+ /**
+ * Test default images rendering
+ *
+ * @throws Exception
+ */
+ public void testRenderImages() throws Exception {
+ HtmlPage view = renderView();
+ assertNotNull(view);
+
+ InternetResourceBuilder builder = ResourceBuilderImpl.getInstance();
+
+ for (Iterator it = imageClasses.iterator(); it.hasNext(); ) {
+ String clazz = (String) it.next();
+ InternetResource resource = builder.getResource(clazz);
+ assertNotNull(resource);
+ String uri = "http:" + resource.getUri(facesContext, null);
+ Page page = webClient.getPage(uri);
+ assertTrue(page.getWebResponse().getStatusCode() == HttpServletResponse.SC_OK);
+ ImageInfo info = new ImageInfo();
+ info.setInput(page.getWebResponse().getContentAsStream());
+
+ assertTrue(info.check());
+ assertEquals(ImageInfo.FORMAT_GIF, info.getFormat());
+ assertTrue(info.getHeight() > 0);
+ assertTrue(info.getWidth() > 0);
+ }
+ }
+
+ /**
+ * Test style rendering
+ *
+ * @throws Exception
+ */
+ public void testRenderStyle() throws Exception {
+ HtmlPage view = renderView();
+ assertNotNull(view);
+ List links = view.getDocumentElement().getHtmlElementsByTagName("link");
+ assertNotNull(links);
+ assertEquals(1, links.size());
+ HtmlElement link = (HtmlElement) links.get(0);
+ assertTrue(link.getAttributeValue("href").contains("css/orderingList.xcss"));
+
+ String uri = "http:" + link.getAttributeValue("href");
+ Page page = webClient.getPage(uri);
+ assertNotNull(page);
+ assertTrue(page.getWebResponse().getStatusCode() == HttpServletResponse.SC_OK);
+ }
+
+ /**
+ * Test controls rendering
+ *
+ * @throws Exception
+ */
+ public void testRenderControls() throws Exception {
+ HtmlPage view = renderView();
+ assertNotNull(view);
+
+ List images = view.getDocumentElement().getHtmlElementsByTagName("img");
+ assertNotNull(images);
+ assertEquals(8, images.size());
+
+ for (Iterator it = images.iterator(); it.hasNext(); ) {
+ HtmlElement img = (HtmlElement) it.next();
+ assertNotNull(img);
+
+ String uri = "http:" + img.getAttributeValue("src");
+ Page page = webClient.getPage(uri);
+ assertNotNull(page);
+ assertTrue(page.getWebResponse().getStatusCode() == HttpServletResponse.SC_OK);
+
+ HtmlElement div = (HtmlElement) img.getParentNode();
+ assertNotNull(div);
+ assertEquals("div", div.getNodeName());
+
+ div = (HtmlElement) div.getParentNode();
+ assertNotNull(div);
+ assertEquals("div", div.getNodeName());
+
+ div = (HtmlElement) div.getParentNode();
+ assertNotNull(div);
+ assertEquals("div", div.getNodeName());
+ String clazz = div.getAttributeValue("class");
+ assertNotNull(clazz);
+ assertTrue(clazz.contains("rich-ordering-control"));
+ }
+ }
+
+ /**
+ * Test items rendering
+ *
+ * @throws Exception
+ */
+ public void testRenderItems() throws Exception {
+ HtmlPage view = renderView();
+ assertNotNull(view);
+
+ HtmlElement div = view.getHtmlElementById(orderingList.getClientId(facesContext) + "contentBox");
+ assertNotNull(div);
+ assertEquals("div", div.getNodeName());
+
+ HtmlElement table = (HtmlElement)div.getFirstChild();
+ assertNotNull(table);
+ assertEquals("table", table.getNodeName());
+
+ HtmlElement tbody = (HtmlElement)table.getFirstChild();
+ assertNotNull(tbody);
+ assertEquals("tbody", tbody.getNodeName());
+
+ int rowsCount = 0;
+ for (Iterator it = tbody.getChildIterator(); it.hasNext(); ) {
+ HtmlElement tr = (HtmlElement)it.next();
+ assertNotNull(tr);
+ assertEquals("tr", tr.getNodeName());
+
+ String clazz = tr.getAttributeValue("class");
+ assertNotNull(clazz);
+ assertTrue(clazz.contains("rich-ordering-list-row"));
+
+ int cellsCount = 0;
+ for (Iterator it2 = tr.getChildIterator(); it2.hasNext(); ) {
+ HtmlElement td = (HtmlElement)it2.next();
+ assertNotNull(td);
+ assertEquals("td", td.getNodeName());
+
+ String clazz2 = td.getAttributeValue("class");
+ assertNotNull(clazz2);
+ assertTrue(clazz2.contains("rich-ordering-list-cell"));
+
+ cellsCount++;
+ }
+ assertEquals(2, cellsCount);
+
+ rowsCount++;
+ }
+ assertEquals(items.size(), rowsCount);
+ }
+
+ /**
+ * Test common rendering
+ *
+ * @throws Exception
+ */
+ public void testRender() throws Exception {
+ HtmlPage view = renderView();
+ assertNotNull(view);
+
+ HtmlElement div = view.getHtmlElementById(orderingList.getClientId(facesContext));
+ assertNotNull(div);
+ assertEquals("div", div.getNodeName());
+
+ HtmlElement hidden1 = view.getHtmlElementById(orderingList.getClientId(facesContext) + "focusKeeper");
+ assertNotNull(hidden1);
+ assertEquals("input", hidden1.getNodeName());
+ assertEquals("button", hidden1.getAttributeValue("type"));
+ hidden1.getAttributeValue("style").contains("left: -32767px");
+
+ HtmlElement hidden2 = view.getHtmlElementById(orderingList.getClientId(facesContext) + "valueKeeper");
+ assertNotNull(hidden2);
+ assertEquals("input", hidden2.getNodeName());
+ assertEquals("hidden", hidden2.getAttributeValue("type"));
+ }
+
+ protected class SimpleItem {
+ String name;
+ int salary;
+
+ public SimpleItem(String name, int salary) {
+ this.name = name;
+ this.salary = salary;
+ }
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public int getSalary() {
+ return salary;
+ }
+ public void setSalary(int salary) {
+ this.salary = salary;
+ }
+ }
+}
18 years, 5 months
JBoss Rich Faces SVN: r4093 - in trunk/ui/simpleTogglePanel/src/main: java/org/richfaces/renderkit/html and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-11-19 12:32:54 -0500 (Mon, 19 Nov 2007)
New Revision: 4093
Modified:
trunk/ui/simpleTogglePanel/src/main/config/component/simpleTogglePanel.xml
trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java
trunk/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
trunk/ui/simpleTogglePanel/src/main/templates/simpleTogglePanel.jspx
Log:
add onexpand oncollapse client Event (in the context of the RF-256)
Modified: trunk/ui/simpleTogglePanel/src/main/config/component/simpleTogglePanel.xml
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/config/component/simpleTogglePanel.xml 2007-11-19 17:05:18 UTC (rev 4092)
+++ trunk/ui/simpleTogglePanel/src/main/config/component/simpleTogglePanel.xml 2007-11-19 17:32:54 UTC (rev 4093)
@@ -97,7 +97,20 @@
</description>
<defaultvalue>true</defaultvalue>
</property>
-
-
+
+ <property>
+ <name>onexpand</name>
+ <classname>java.lang.String</classname>
+ <description> Event must occurs on befor panel expanded</description>
+ <defaultvalue><![CDATA[""]]></defaultvalue>
+ </property>
+
+ <property>
+ <name>oncollapse</name>
+ <classname>java.lang.String</classname>
+ <description> Event must occurs on befor panel collapsed</description>
+ <defaultvalue><![CDATA[""]]></defaultvalue>
+ </property>
</component>
+
</components>
Modified: trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java 2007-11-19 17:05:18 UTC (rev 4092)
+++ trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java 2007-11-19 17:32:54 UTC (rev 4093)
@@ -24,7 +24,11 @@
*/
package org.richfaces.renderkit.html;
+import org.ajax4jsf.component.AjaxSupport;
+import org.ajax4jsf.javascript.JSFunction;
+import org.ajax4jsf.javascript.JSReference;
import org.ajax4jsf.renderkit.AjaxRendererUtils;
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
import org.richfaces.component.UISimpleTogglePanel;
import org.richfaces.event.SimpleToggleEvent;
@@ -114,10 +118,6 @@
}
}
-
-
-
-
}
public String getdivdisplay(FacesContext context, UIComponent component) {
@@ -136,6 +136,9 @@
String switchType = tgComp.getSwitchType();
StringBuffer onClick = new StringBuffer();
+ JSReference eventRef = new JSReference("event");
+ String panelId = tgComp.getClientId(context);
+
//String userOnClick = (String)component.getAttributes().get("onclick");
//if(userOnClick!=null) {
// onClick.append(userOnClick);
@@ -144,28 +147,41 @@
// }
//}
-
- if (UISimpleTogglePanel.CLIENT_SWITCH_TYPE.equals(switchType)) {
+ if (UISimpleTogglePanel.CLIENT_SWITCH_TYPE.equals(switchType)) {
// Client
- String panelId = tgComp.getClientId(context);
- onClick.append("SimpleTogglePanelManager.toggleOnClient('")
- .append(panelId)
- .append("');");
+ JSFunction function = new JSFunction("SimpleTogglePanelManager.toggleOnClient");
+ function.addParameter(eventRef);
+ function.addParameter(panelId);
+ function.appendScript(onClick);
+ onClick.append(";");
+
} else if (UISimpleTogglePanel.AJAX_SWITCH_TYPE.equals(switchType)) {
- // Ajax
- // writer.writeAttribute(HTML.onclick_ATTRIBUTE,AjaxRendererUtils.buildOnClick(tab,context),"ajaxOnclick");
- onClick.append(AjaxRendererUtils.buildOnClick(component, context));
- //return super.getOnClick(context, component);
+// Ajax
+
+ JSFunction function = new JSFunction("SimpleTogglePanelManager.toggleOnAjax");
+ function.addParameter(eventRef);
+ function.addParameter(panelId);
+ function.appendScript(onClick);
+ onClick.append(";");
+
+ JSFunction ajaxFunction = AjaxRendererUtils.buildAjaxFunction(tgComp, context);
+ ajaxFunction.addParameter(AjaxRendererUtils.buildEventOptions(context, tgComp));
+ ajaxFunction.appendScript(onClick);
+
+ if (tgComp instanceof AjaxSupport) {
+ AjaxSupport support = (AjaxSupport) tgComp;
+ if (support.isDisableDefault()) {
+ onClick.append("; return false;");
+ }
+ }
+
} else {
// Server
-
-
- onClick.append("SimpleTogglePanelManager.toggleOnServer('")
- .append(component.getClientId(context))
- .append("'")
-
-
- .append(");");
+ JSFunction function = new JSFunction("SimpleTogglePanelManager.toggleOnServer");
+ function.addParameter(eventRef);
+ function.addParameter(panelId);
+ function.appendScript(onClick);
+ onClick.append(";");
//.append(tgComp.getSwitch()==null?"'0'":"'" + tgComp.getSwitch() + "'")
//.append("")
}
Modified: trunk/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js 2007-11-19 17:05:18 UTC (rev 4092)
+++ trunk/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js 2007-11-19 17:32:54 UTC (rev 4093)
@@ -2,15 +2,28 @@
SimpleTogglePanel = Class.create();
SimpleTogglePanel.prototype = {
- initialize: function(panelId, status) {
+ initialize: function(panelId, status, options) {
this.panelId = panelId;
- this.panelId_head = panelId+"_header";
- this.status = status;
- if (!this.status){
- this.status="true";
- }
-
+ this.panelId_head = panelId+"_header";
+ this.options = options;
+ this.status = status;
+
+ if (!this.status) {
+ this.status="true";
+ }
+
+ var onexpand = this.options.onexpand;
+ var oncollapse = this.options.oncollapse
+
+ if (oncollapse) {
+ this.onCollapseEvent = new Function("event",oncollapse).bindAsEventListener(this);
+ }
+
+ if (onexpand) {
+ this.onExpandEvent = new Function("event",onexpand).bindAsEventListener(this);
+ }
+
// this.timer = setTimeout(this.windowOnLoad.bind(this), 100);
},
@@ -28,13 +41,14 @@
},
*/
- toggleToState: function() {
+ toggleToState: function(event) {
var body = $(this.panelId+"_body");
var switch_on = $(this.panelId+"_switch_on");
var switch_off = $(this.panelId+"_switch_off");
if (this.status=="false"){
Element.show(body);
this.status="true";
+ this.onExpandEvent(event);
switch_off.style.display="none";
switch_on.style.display="";
// this.timer = setTimeout(this.windowOnLoad.bind(this), 100);
@@ -43,6 +57,7 @@
Element.hide(body);
body.firstChild.style.width="100%";
this.status="false";
+ this.onCollapseEvent(event);
switch_on.style.display="none";
switch_off.style.display="";
@@ -66,7 +81,7 @@
this.panels=this.panels.merge(tmp);
}
-SimpleTogglePanelManager.toggleOnServer = function (clientId) {
+SimpleTogglePanelManager.toggleOnServer = function (event,clientId) {
var parentForm = A4J.findForm($(clientId + "_header"));
if(!parentForm || !parentForm.appendChild /* findForm returns surrogate form object */) return;
@@ -78,11 +93,18 @@
parentForm.appendChild(fInput);
}
- if (this.panels[clientId].status==0){
- this.panels[clientId].status=1;
- }
- else{
- this.panels[clientId].status=0;
+ if (this.panels[clientId].status == "true"){
+ this.panels[clientId].status="false";
+ if(this.panels[clientId].options.oncollapse){
+ this.panels[clientId].onCollapseEvent(event);
+ }
+
+
+ } else {
+ this.panels[clientId].status="true";
+ if(this.panels[clientId].options.onexpand){
+ this.panels[clientId].onExpandEvent(event);
+ }
}
fInput.value = this.panels[clientId].status;
@@ -90,7 +112,21 @@
return false;
}
-SimpleTogglePanelManager.toggleOnClient = function (panelId) {
- this.panels[panelId].toggleToState();
+SimpleTogglePanelManager.toggleOnClient = function (event,panelId) {
+ this.panels[panelId].toggleToState(event);
return false;
}
+
+SimpleTogglePanelManager.toggleOnAjax = function(event,panelId) {
+ if (this.panels[panelId].status == "true") {
+ if(this.panels[panelId].options.oncollapse){
+ this.panels[panelId].onCollapseEvent(event);
+ }
+ } else {
+ if (this.panels[panelId].options.onexpand) {
+ this.panels[panelId].onExpandEvent(event);
+ }
+ }
+}
+
+
Modified: trunk/ui/simpleTogglePanel/src/main/templates/simpleTogglePanel.jspx
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/templates/simpleTogglePanel.jspx 2007-11-19 17:05:18 UTC (rev 4092)
+++ trunk/ui/simpleTogglePanel/src/main/templates/simpleTogglePanel.jspx 2007-11-19 17:32:54 UTC (rev 4093)
@@ -25,7 +25,7 @@
style="width: #{component.attributes['width']}; #{component.attributes['style']};">
<script type="text/javascript">
- SimpleTogglePanelManager.add(new SimpleTogglePanel("#{clientId}", "#{component.attributes['opened']}"));
+ SimpleTogglePanelManager.add(new SimpleTogglePanel("#{clientId}", "#{component.attributes['opened']}", {onexpand: "#{component.attributes['onexpand']}",oncollapse: "#{component.attributes['oncollapse']}"}));
</script>
<f:call name="utils.encodeBeginFormIfNessesary"/>
18 years, 5 months
JBoss Rich Faces SVN: r4092 - in branches/3.1.x/sandbox/ui/listShuttle/src/main: templates/org/richfaces and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2007-11-19 12:05:18 -0500 (Mon, 19 Nov 2007)
New Revision: 4092
Modified:
branches/3.1.x/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js
branches/3.1.x/sandbox/ui/listShuttle/src/main/templates/org/richfaces/htmlListShuttle.jspx
Log:
listShuttle functionality
Modified: branches/3.1.x/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js
===================================================================
--- branches/3.1.x/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js 2007-11-19 16:47:05 UTC (rev 4091)
+++ branches/3.1.x/sandbox/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js 2007-11-19 17:05:18 UTC (rev 4092)
@@ -0,0 +1,101 @@
+if(!window.Richfaces) window.Richfaces = {};
+
+
+Richfaces.ListShuttle = {
+ initialize: function(listParams, controlIds) {
+ this.targetList = new ListBase(listParams[1]);
+ this.sourceList = new OrderingList(listParams[0]);
+
+ this.controlList = null;
+ this.initControlList(controlIds);
+ },
+
+ initControlList : function(ids) {
+ for (var i = 0; i < ids.length; i++) {
+ var id = ids[i];
+ var node = document.getElementById(containerId + id[0]);
+ var disNode = document.getElementById(containerId + id[1]);
+ if (node && disNode) {
+ Shuttle.addClickListener(node, Richfaces.ListShuttle.HANDLERS[id[0]].bindAsEventListener(this));
+ this.controlList[i] = new Control(node, disNode, false, false, id[0]);
+ }
+ }
+ this.controlListManager();
+ },
+
+ controlListManager : function() {
+ if (this.sourceList.shuttleItems.length < 1) {
+ this.controlsProcessing(["copyAll"]);
+ } else if (this.targetList.shuttleItems.length < 1) {
+ this.controlsProcessing(["removeAll"]);
+ } else if (this.sourceList.selectedItems.length < 1) {
+ this.controlsProcessing(["copy"]);
+ } else if (this.targetList.selectedItems.length < 1) {
+ this.controlsProcessing(["remove"]);
+ } else {
+ this.controlsProcessing();
+ }
+ },
+
+ controlsProcessing : function(disabledControls) {
+ for (var i = 0; i < this.controlList.length; i++) {
+ control = this.controlList[i];
+ if (control != null) {
+ if (disabledControls != null && disabledControls.indexOf(control.action) != -1) control.doDisable();
+ else control.doEnable();
+ }
+ }
+ },
+
+ /*addItems : function(component, items) {
+ var componentItems = list.shuttleItems;
+
+ for (var item in items) {
+ var newItem = Object.clone(item);
+ collection.push(newItem);
+ }
+ },
+
+ removeItems : function(component, items) {
+ var componentItems = component.shuttleItems;
+ var componentSelectedItems = component.selectedItems;
+
+ for (var item in items) {
+ targetCollection.remove(item);
+ }
+ }*/
+
+ moveItems : function(sourceComponent, targetComponent, items) {
+ for (var item in items) {
+ moveItem(sourceComponent, targetComponent, item);
+ }
+ },
+
+ moveItem : function(sourceComponent, targetComponent, item) {
+ addItem(targetComponent, item);
+ removeItem(sourceComponent, item);
+ },
+
+ removeItem : function(component, item) {
+ var items = component.shuttleItems;
+ var selectedItems = component.selectedItems;
+ items.remove(item);
+ selectedItems.remove(item);
+ if (item == component.activeItem) {
+ component.activeItem == null;
+ }
+ },
+
+ addItem : function(component, item) {
+ var newItem = Object.clone(item);
+ component.shuttleItems.push(newItem);
+ },
+
+}
+
+Richfaces.ListShuttle.HANDLERS = {
+ copy: function (e) { this.moveItem(this.sourceList, this.targetList, this.sourceList.selectedItems); return false; },
+ copyAll: function (e) { this.moveItems(this.sourceList, this.targetList, this.sourceList.shuttleItems); return false; },
+ remove: function (e) { this.moveItem(this.targetList, this.sourceList, this.targetList.selectedItems); return false; },
+ removeAll: function (e) { this.moveItems(this.targetList, this.sourceList, this.targetList.shuttleItems); return false; }
+};
\ No newline at end of file
Modified: branches/3.1.x/sandbox/ui/listShuttle/src/main/templates/org/richfaces/htmlListShuttle.jspx
===================================================================
--- branches/3.1.x/sandbox/ui/listShuttle/src/main/templates/org/richfaces/htmlListShuttle.jspx 2007-11-19 16:47:05 UTC (rev 4091)
+++ branches/3.1.x/sandbox/ui/listShuttle/src/main/templates/org/richfaces/htmlListShuttle.jspx 2007-11-19 17:05:18 UTC (rev 4092)
@@ -108,11 +108,12 @@
document.body.className = "body";
function init() {
var cotrolsIdPrefix = [['up', 'disup'], ['down', 'disdown'], ['last', 'dislast'], ['first','disfirst']];
- var sourceList = new Shuttle('#{cId}', '#{cId}internal_tab', '#{cId}internal_header_tab', '#{cId}focusKeeper', '#{cId}valueKeeper', cotrolsIdPrefix, '#{cId}sortLabel', function() {#{component.attributes['onorderchanged']}});
- var targetList = new Shuttle('#{cId}', '#{cId}tlInternal_tab', '#{cId}tlInternal_header_tab', '#{cId}tlFocusKeeper', '#{cId}tlValueKeeper', cotrolsIdPrefix, '#{cId}tlSortLabel', function() {#{component.attributes['onorderchanged']}});
+ var listShuttle = new ListShuttle([['#{cId}', '#{cId}internal_tab', '#{cId}internal_header_tab', '#{cId}focusKeeper', '#{cId}valueKeeper', cotrolsIdPrefix, '#{cId}sortLabel', function() {#{component.attributes['onorderchanged']}}],
+ ['#{cId}', '#{cId}tlInternal_tab', '#{cId}tlInternal_header_tab', '#{cId}tlFocusKeeper', '#{cId}tlValueKeeper', cotrolsIdPrefix, '#{cId}tlSortLabel', function() {#{component.attributes['onorderchanged']}}]]);
var sourceLayoutManager = new LayoutManager('#{cId}internal_header_tab', '#{cId}internal_tab');
- var sourceLayoutManager = new LayoutManager('#{cId}tlInternal_header_tab', '#{cId}tlInternal_tab');
+ var targetLayoutManager = new LayoutManager('#{cId}tlInternal_header_tab', '#{cId}tlInternal_tab');
layoutManager.widthSynchronization();
+ targetLayoutManager.widthSynchronization();
}
//setTimeout(init, 0);
</script>
18 years, 5 months
JBoss Rich Faces SVN: r4091 - in trunk/docs: faq and 9 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: vkorluzhenko
Date: 2007-11-19 11:47:05 -0500 (Mon, 19 Nov 2007)
New Revision: 4091
Added:
trunk/docs/faq/
trunk/docs/faq/en/
trunk/docs/faq/en/pom.xml
trunk/docs/faq/en/src/
trunk/docs/faq/en/src/main/
trunk/docs/faq/en/src/main/docbook/
trunk/docs/faq/en/src/main/docbook/master.xml
trunk/docs/faq/en/src/main/docbook/module/
trunk/docs/faq/en/src/main/docbook/module/RFCfaq.xml
trunk/docs/faq/en/src/main/resources/
trunk/docs/faq/en/src/main/resources/css/
trunk/docs/faq/en/src/main/resources/css/html.css
trunk/docs/faq/en/src/main/resources/script/
trunk/docs/faq/en/src/main/resources/script/toggle.js
trunk/docs/faq/pom.xml
Modified:
trunk/docs/pom.xml
trunk/docs/userguide/en/src/main/docbook/master.xml
Log:
http://jira.jboss.com/jira/browse/RF-1368 - building process of FAQ chapter was separated.
Property changes on: trunk/docs/faq/en
___________________________________________________________________
Name: svn:ignore
+ target
Added: trunk/docs/faq/en/pom.xml
===================================================================
--- trunk/docs/faq/en/pom.xml (rev 0)
+++ trunk/docs/faq/en/pom.xml 2007-11-19 16:47:05 UTC (rev 4091)
@@ -0,0 +1,49 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.richfaces.docs</groupId>
+ <artifactId>faq</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <groupId>org.richfaces.docs.faq</groupId>
+ <artifactId>${translation}</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <packaging>jdocbook</packaging>
+ <name>Richfaces Manual (${translation})</name>
+
+ <properties>
+ <translation>en</translation>
+ </properties>
+ <build>
+ <finalName>
+ ${project.parent.artifactId}_${translation}-${version}
+ </finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>xml-maven-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <extensions>true</extensions>
+ </plugin>
+ <!--
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-style-plugin</artifactId>
+ <version>1.0.0</version>
+ <extensions>true</extensions>
+ </plugin>
+ -->
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: trunk/docs/faq/en/src/main/docbook/master.xml
===================================================================
--- trunk/docs/faq/en/src/main/docbook/master.xml (rev 0)
+++ trunk/docs/faq/en/src/main/docbook/master.xml 2007-11-19 16:47:05 UTC (rev 4091)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
+"../../../../../resources/support/docbook-dtd/docbookx.dtd"
+[
+<!ENTITY rfcFAQ SYSTEM "module/RFCfaq.xml">
+]>
+
+<book>
+ <bookinfo>
+ <title>Frequently Asked Questions</title>
+ <subtitle>Based on RichFaces Users Forum</subtitle>
+ <copyright>
+ <year>2007</year>
+ <holder>Red Hat</holder>
+ </copyright>
+
+ </bookinfo>
+ <toc/> &rfcFAQ; </book>
Added: trunk/docs/faq/en/src/main/docbook/module/RFCfaq.xml
===================================================================
--- trunk/docs/faq/en/src/main/docbook/module/RFCfaq.xml (rev 0)
+++ trunk/docs/faq/en/src/main/docbook/module/RFCfaq.xml 2007-11-19 16:47:05 UTC (rev 4091)
@@ -0,0 +1,1029 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<chapter id="FAQ" xreflabel="FAQ">
+ <?dbhtml filename="FAQ.html"?>
+ <sectioninfo>
+ <keywordset>
+ <keyword>RichFaces</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>FAQ</title>
+
+ <section>
+ <?dbhtml filename="Wherearebinary/sourcedistributionforRichFacesrelease.html"?>
+ <title>Where are binary/source distribution for RichFaces 3.1.0 release?</title>
+ <para> Most important links for RichFaces can be found <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=104575"
+ >here</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="HowtobuildRichFacessnapshotmanually.html"?>
+ <title>How to build RichFaces snapshot manually?</title>
+ <para>This <ulink
+ url="http://labs.jboss.com/wiki/HowToBuildRichFacesSnapshotManually"
+ > wiki article</ulink> helps you to find an answer.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="WhatstructureofRichFacesSVNrepositoryis.html"?>
+ <title>What is the structure of RichFaces SVN repository?</title>
+ <para>RichFaces repository structure overview can be found <ulink
+ url="http://labs.jboss.com/wiki/RichFacesRepositoryStructureOverview"
+ >here</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtobuildrichfaces-samplesapplications.html"?>
+ <title>How to build richfaces-samples applications?</title>
+ <para>How to build and how to use richfaces-samples applications in Eclipse is
+ described <ulink
+ url="http://labs.jboss.com/wiki/RichFacesRepositoryStructureOverview"
+ >here</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="IstheredemoforRichFacescomponents.html"?>
+ <title>Where could I find a demo for RichFaces 3.1.0 components?</title>
+ <para>Online demo Web applications that show the most important functionality of
+ RichFaces components are available <ulink
+ url="http://livedemo.exadel.com/richfaces-demo/">here</ulink>.</para>
+ <para>War file of a nightly build can be found <ulink
+ url="http://maven.exadel.com/org/richfaces/samples/richfaces-demo/3.1.0-SNAPSHOT/"
+ >here</ulink>.</para>
+ <para>Source Code (SVN) can be found <ulink
+ url="http://anonsvn.jboss.org/repos/richfaces/trunk/samples/richfaces-demo/"
+ >here</ulink>.</para>
+ <para>See also <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=113454"
+ >how to prevent richfaces-demo deployment failed</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="HowtouseSkinnability.html"?>
+ <title>How to use Skinnability?</title>
+ <para><ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=111143"
+ >Here</ulink> is an article that explains the Skinnability basics.</para>
+ <para> For information you can also see discussion about this problem on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=103772"
+ >RichFaces Users Forum</ulink></para>
+ <para>Also, the effect of predefined skins on the application whole look-and-feel
+ could be seen <ulink url="http://livedemo.exadel.com/richfaces-demo/"
+ >here</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Whythereisaproblemwithprototypes.html"?>
+ <title>Why does a problem with prototypes in RichFaces 3.1.0 happen? The
+ Prototype.Browser() function can't be found.</title>
+ <para>RichFaces 3.1.0 has been released with the latest Prototype 1.5.1.1. The
+ conflict happens because on your page an older version of prototypes that
+ can be added from Tomahawk 1.1.6 is used. See the solution to the problem
+ <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=118526&a..."
+ >here.</ulink></para>
+ </section>
+
+ <section>
+ <?dbhtml filename="WhyRichFaceslibrarycondataTablecomp.html"?>
+ <title>Why RichFaces library contains <rich:dataTable> component,
+ though there is the standard <h:dataTable>?</title>
+ <para>The article about <emphasis role="bold"
+ ><rich:dataTable></emphasis> flexibility can be found <ulink
+ url="http://labs.jboss.com/wiki/RichFacesArticleDataTable"
+ >here</ulink>.</para>
+ <para>Source code (SVN) could be found <ulink
+ url="http://anonsvn.jboss.org/repos/richfaces/trunk/samples/richfaces-art-data..."
+ >here</ulink>.</para>
+ <para> Online demo for a Web application is available <ulink
+ url=" http://livedemo.exadel.com/richfaces-art-datatable/"
+ >here</ulink>.</para>
+ </section>
+
+ <section id="Organizewizards">
+ <?dbhtml filename="Organizewizards.html"?>
+ <title>How to organize wizards using the <rich:modalPanel> component?</title>
+ <para>It's necessary to put <emphasis role="bold"
+ ><a4j:include></emphasis> inside the <emphasis
+ role="bold"><rich:modalPanel></emphasis> and perform
+ navigation inside it, as it's shown in the example below:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <f:verbatim>
+ <a href="javascript:Richfaces.showModalPanel('_panel',{left:'auto', top:'auto'})">Show Modal Panel</a>
+ </f:verbatim>
+ <rich:modalPanel id="_panel">
+ <a4j:outputPanel id="view" >
+ <a4j:include viewId="/pages/included1.xhtml"></a4j:include>
+ </a4j:outputPanel>
+ </rich:modalPanel>
+...
+
+faces-config.xml:
+...
+
+ <navigation-rule>
+ <from-view-id>/pages/included1.xhtml</from-view-id>
+ <navigation-case>
+ <from-outcome>included2</from-outcome>
+ <to-view-id>/pages/included2.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+...
+
+included1.xhtml:
+...
+ <h:form>
+ <h:outputText value="Go to the step 2"/>
+ <a4j:commandButton value="next" action="included2" reRender="view"/>
+ </h:form>
+...
+
+included2.xhtml
+
+...
+ <h:form>
+ <h:outputText value="Close window"/>
+ <h:commandButton type="button" value="Close" onclick="javascript:Richfaces.hideModalPanel('_panel')"/>
+ </h:form>
+...
+
+]]></programlisting>
+ <para>The discussion about <emphasis role="bold"
+ ><a4j:include></emphasis> and navigation rules can be found on
+ the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062036#..."
+ >Ajax Users Forum</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtopreventmodalpanelfromclosure.html"?>
+ <title>How to prevent modalPanel from closing when the validation inside fails?</title>
+ <para>Examples of validation in <emphasis role="bold"
+ ><rich:modalPanel></emphasis> could be found in the
+ <ulink url="http://labs.jboss.com/wiki/ModalPanelValidation">Wiki
+ article</ulink> and on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4061517"
+ >RichFaces Users Forum</ulink>. </para>
+ </section>
+
+ <section>
+ <?dbhtml filename="HowtousesuggestionBox.html"?>
+ <title>Why when I use suggestionBox inside the modalPanel content the popup
+ suggestion list doesn't show since it is behind the modalPanel.</title>
+ <para>To solve this problem you should use the latest versions of RichFaces.</para>
+ <para> Most important links for RichFaces can be found <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=104575"
+ >here</ulink>.</para>
+
+ </section>
+
+ <section>
+ <?dbhtml filename="DoesRichFacesworkwithfacelets.html"?>
+ <title>Does RichFaces work with facelets?</title>
+ <para>Main <ulink url="http://livedemo.exadel.com/richfaces-demo/"> demo</ulink> of
+ RichFaces is a facelets based application. Full Facelets support is one of
+ the main features. Hence, the answer is yes.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Isitpossibletocreatedynamicmenu.html"?>
+ <title>Is it possible to create dynamic menu using <rich:dropDownMenu>
+ component?</title>
+ <para><emphasis role="bold"><rich:dropDownMenu></emphasis> is a
+ standard JSF component. Thus, creation of the menu dynamically from the Java
+ Script code is the same as for any other jsf component.</para>
+ <para>For more information follow the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=110983"
+ >link</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Isitpossibletocustomizelookofdatascroller.html"?>
+ <title>Is it possible to customize the look of dataScroller (the forward/back
+ buttons) and replace them with an images?</title>
+ <para>The answer is yes. </para>
+ <para>Component provides two controllers groups for switching:</para>
+ <itemizedlist>
+ <listitem>Page numbers for switching onto a particular page</listitem>
+ <listitem>The controls of fast switching: "first",
+ "last", "next",
+ "previous", "fastforward",
+ "fastrewind"</listitem>
+ </itemizedlist>
+ <para>The controls of fast switching are created adding the facets component with
+ the corresponding name:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[ ...
+ <rich:datascroller for="table" maxPages="10">
+ <f:facet name="first">
+ <h:outputText value="First"/>
+ </f:facet>
+ <f:facet name="last">
+ <h:outputText value="Last"/>
+ </f:facet>
+ </rich:datascroller>
+...
+]]></programlisting>
+ <para> There are also facets used to create the disabled states:
+ "first_disabled", "last_disabled",
+ "next_disabled", "previous_disabled",
+ "fastforward_disabled",
+ "fastrewind_disabled". </para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtoredirecttoanotherpage.html"?>
+ <title>How to place simple links inside menu?</title>
+ <para>If you want to navigate outside, when application uses an external URL, you
+ should use the following approach:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:dropDownMenu>
+ ...
+ <rich:menuItem submitMode="none"
+ onclick="document.location.href='http://labs.jboss.com/jbossrichfaces/'">
+ <h:outputLink value="http://labs.jboss.com/jbossrichfaces/">
+ <h:outputText value="RichFaces Home Page"></h:outputText>
+ </h:outputLink>
+ </rich:menuItem>
+ ...
+ </rich:dropDownMenu>
+...
+]]></programlisting>
+ <para>Also online demo <emphasis role="bold"
+ ><rich:dropDownMenu></emphasis> component is available <ulink
+ url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf"
+ >here</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="CanthedropDownMenubeincludedintreenodes.html"?>
+ <title>Can I use dropDownMenu as context menu?</title>
+ <para>The <emphasis role="bold"><rich:dropDownMenu></emphasis> is
+ designed keeping in mind that it should not be used for a contextMenu
+ purpose. We have a <emphasis role="bold"
+ ><rich:contextMenu></emphasis> component in the TODO list.
+ However, it is not schedule for the nearest versions.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="HowtocustomizesimpleTogglePanel.html"?>
+ <title>How to pass own parameters during a modalPanel opening or closing?</title>
+ <para>The answer could be found in the "Details of usage" of <link
+ linkend="modalPanel"><rich:modalPanel>
+ component</link>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtoaddalinktothetreenode.html"?>
+ <title>How to add a simple link to the tree node?</title>
+ <para>Simple code is placed below:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:tree ...>
+ ...
+ <rich:treeNode submitMode="none"
+ onclick="document.location.href='http://labs.jboss.com/jbossrichfaces/'">
+ <h:outputLink value="http://labs.jboss.com/jbossrichfaces/">
+ <h:outputText value="RichFaces Home Page"></h:outputText>
+ </h:outputLink>
+ </rich:treeNode>
+ ...
+</rich:tree ...>
+...
+]]></programlisting>
+ </section>
+
+ <section>
+ <?dbhtml filename="Isitpossibletoplacetabsvertically.html"?>
+ <title>Is it possible to place tabs upright in the tabPanel?</title>
+ <para>It's not possible to place tabs upright in the tabPanel. For this
+ purporse use togglePanel. Toggle controls can be placed anywhere in the
+ layout.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="HowtogetaacommandButton.html"?>
+ <title>How to get a commandButton working within the modalPanel?</title>
+ <para>Simple code is placed below:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:modalPanel>
+ <f:facet name="header">
+ <h:outputText value="Test" />
+ </f:facet>
+ <f:facet name="controls">
+ <h:commandLink value="Close" style="cursor:pointer" onclick="Richfaces.hideModalPanel('mp')" />
+ </f:facet>
+ <h:form>
+ <t:commandButton value="Test" action="#{TESTCONTROLLER.test}" />
+ </h:form>
+ </rich:modalPanel>
+...
+]]></programlisting>
+ <para>
+ <note>
+ <title>Note:</title>Two rules are important for modalPanel: <itemizedlist>
+ <listitem>modalPanel must have its own form if it has form
+ elements (input or/and command components) inside
+ (as it was shown in the example above) </listitem>
+ <listitem>modalPanel must not be included into the form (on
+ any level up) if it has the form inside.</listitem>
+ </itemizedlist></note>
+ </para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtodefinecurrentselectedtab.html"?>
+ <title>How to define the currently selected tab?</title>
+ <para> Simple code is placed below:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:tabPanel selectedTab="t2">
+ <rich:tab label="tab 1" name="t1">
+ <h:outputText value="tab 1" />
+ </rich:tab>
+ <rich:tab label="tab 1" name="t2">
+ <h:outputText value="tab 2" />
+ </rich:tab>
+ <rich:tab label="tab 1" name="t3">
+ <h:outputText value="tab 3" />
+ </rich:tab>
+ </rich:tabPanel>
+...
+]]></programlisting>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtoremembercurrentselectedtab.html"?>
+ <title>How to remember the current selected tab?</title>
+ <para> For necessary information you can see discussion about this problem on the
+ <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=111761"
+ >RichFaces Users Forum</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtonavigatefromonetabtoanother.html"?>
+ <title>How to navigate from one tab to another using buttons (apart from tabPanel
+ functionality)?</title>
+ <para> For necessary information you can see <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085931#..."
+ >RichFaces Users Forum</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtoretrievethecurrentvalue.html"?>
+ <title>How to retrieve the current value from the inputNumberSlider?</title>
+ <para>To catch the value of the inputNumberSlider from the JavaScrip, use the
+ following approach:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:inputNumberSlider width="500" step="20"
+ onchange="someFunctionCall(this.input.value)"
+ minValue="0"
+ maxValue="500"
+ value="0"
+ showInput="false"
+ showToolTip="false"
+ showBoundaryValues="false"/>
+ ...
+ <script>
+ function someFunctionCall(value) {
+ alert(value);
+ }
+ </script>
+...
+]]></programlisting>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtoapplyskins.html"?>
+ <title>How to apply skins to the standard input components?</title>
+ <para>The answer could be found <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=103494"
+ >here</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Isthereawaytocapturetherowdata.html"?>
+ <title>Is there a way to capture the rowdata of dataTable and subTable?</title>
+ <para> For necessary information you can see discussion about this problem on the
+ <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=111965"
+ >RichFaces Users Forum</ulink></para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Isitpossibletouse thedatascroller.html"?>
+ <title>Is it possible to use datascroller without its table border and styles (to
+ show only links)?</title>
+ <para> It' necessary to redefine rich* classes for example like this:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA"><![CDATA[.rich-datascr-button {
+border: 0px;
+}
+.rich-dtascroller-table {
+border: 0px;
+}
+.rich-datascr-button {
+background-color: transparent;
+}]]></programlisting>
+ </section>
+
+ <section>
+ <?dbhtml filename="subTableincombinationwithdataTable.html"?>
+ <title>How to use subTable in combination with dataTable?</title>
+ <para>The answer could be found <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4059044#..."
+ >here</ulink>.</para>
+ </section>
+
+ <section id="Truepagination">
+ <?dbhtml filename="Howtodotruepagination.html"?>
+ <title>How to do correct pagination using datascroller (load a part of data from
+ database)?</title>
+ <para>The answer could be found on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4060199#..."
+ >RichFaces Users Forum</ulink>.</para>
+ <para>How to use <emphasis role="bold"><rich:dataTable></emphasis> and
+ <emphasis role="bold"><rich:dataScroller></emphasis>
+ in a context of Extended Data Model see <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=115636"
+ >here</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtomakehtmlscrollbars.html"?>
+ <title>How to make html scrollbars in modalPanel?</title>
+ <para>The answer could be found on the RichFaces Users Forum:</para>
+ <itemizedlist>
+ <listitem>
+ <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062877#..."
+ >http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062877#...</ulink>
+ </listitem>
+ <listitem>
+ <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=105412"
+ >http://www.jboss.com/index.html?module=bb&op=viewtopic&t=105412</ulink>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+
+ <section>
+ <?dbhtml filename="HowtoExpand/CollapseTreeNodesfromcode.html"?>
+ <title>How to expand/collapse tree nodes from code?</title>
+ <para>The answer could be found <ulink
+ url="http://labs.jboss.com/wiki/ExpandCollapseTreeNodes"
+ >here</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="HowtouseJavaScriptAPI.html"?>
+ <title>How to use JavaScript API?</title>
+ <para>The simple code is placed below:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <a4j:form id="form">
+ <h:panelGroup id="test" columns="2" style="width: 300px">
+ <h:selectBooleanCheckbox value="#{bean.check}">
+ <a4j:support event="onchange" reRender="test" />
+ <f:selectItem itemValue="true" itemLabel="Show" />
+ <f:selectItem itemValue="false" itemLabel="Hide" />
+ </h:selectBooleanCheckbox>
+ <rich:calendar popup="true"
+ rendered="#{!bean.check}" value="#{bean.date}" id="c"/>
+ <a onclick="$('form:c').component.doExpand()" href="#">Show</a>
+ </h:panelGroup>
+ </a4j:form>
+...
+]]></programlisting>
+ </section>
+
+ <section>
+ <?dbhtml filename="HowtoloadtheScriptaculouslibrary.html"?>
+ <title>How to load the Scriptaculous library?</title>
+ <para>To load the whole Scriptaculous library shipped with RichFaces use <emphasis
+ role="bold"><a4j:loadScript></emphasis> tag.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<a4j:loadScript src="resource://scriptaculous.js" />
+...
+]]></programlisting>
+ <para> Thus, this command allows loading an integrated version of the library that
+ includes all existing scriptaculous files except unittest.js. </para>
+ <para> If you don't want to load the whole library, but only the particular
+ file, for example, effect.js, use the following line: </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<a4j:loadScript src="resource://scriptaculous/effect.js" />
+...
+]]></programlisting>
+ <para> Remember, it does not make sense to load the particular file if you already
+ load the whole version. </para>
+
+ <para>For more information see <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=119044"
+ >RichFaces Users Forum</ulink>.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtosaveeffectstatus.html"?>
+ <title>How to save <rich:effect> status?</title>
+ <para><emphasis role="bold"><rich:effect></emphasis> component has
+ several callback methods such as beforeStart, afterFinish. You can use them
+ to save the status.</para>
+ <para> See also <ulink
+ url="http://wiki.script.aculo.us/scriptaculous/show/CoreEffects"
+ >core effects</ulink> in scriptaculous.</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtosaveeffectstatus.html"?>
+ <title>How to send an additional parameter to server working with
+ <rich:suggestionbox>?</title>
+ <para>An example is placed below:</para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:suggestionbox width="200" height="200" for="test" suggestionAction="#{bean.autocomplete}" var="cap">
+ <h:column>
+ <f:facet name="header">
+ <h:outputText value="Sometext"></h:outputText>
+ </f:facet>
+ <h:outputText value="#{cap.text}"></h:outputText>
+ </h:column>
+ <a4j:support event="onselect" action="#{bean.action}">
+ <f:setPropertyActionListener value="#{cap.label}" target="#{bean.property1}" />
+ </a4j:support>
+ </rich:suggestionbox>
+...
+]]></programlisting>
+ <para>In the example <property>"onselect"</property> event is used
+ for sending selected value to the server. It's also possible to
+ pass additional fields of selected object (which don't belong to <emphasis>
+ <property>"fetchvalue"</property>
+ </emphasis> attribute.)</para>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtosetrich:dataTableborder.html"?>
+ <title>How to set <rich:dataTable> border to 0px?</title>
+ <para>Add the following code to your css file:</para>
+ <programlisting role="CSS"><![CDATA[...
+ .rich-table, .rich-table-header,.rich-table-headercell, .rich-table-cell,
+ .rich-subtable-cell, .rich-table-footercell, .rich-subtable-footercell {
+ border-width:0px;
+ }
+...
+]]></programlisting>
+ </section>
+
+ <section>
+ <?dbhtml filename="Howtosetrich:dataTableborder.html"?>
+ <title>How to create <rich:suggestionBox> dynamically?</title>
+ <para>This is a working example:</para>
+ <programlisting role="JAVA"><![CDATA[...
+ org.apache.myfaces.component.html.ext.HtmlInputText searchBox = new org.apache.myfaces.component.html.ext.HtmlInputText();
+ searchBox.setId( "inputQuery" );
+ bar.getChildren().add( searchBox );
+
+ org.richfaces.component.html.HtmlSuggestionBox suggestions = new org.richfaces.component.html.HtmlSuggestionBox();
+ suggestions.setId( "sugg" );
+ suggestions.setFor( "inputQuery" );
+ suggestions.setTokens( ",[" );
+ suggestions.setRules( "none" );
+
+ javax.faces.el.MethodBinding mb = app.createMethodBinding( "#{suggestionBox.autocomplete}", new Class[] { Object.class } );
+ suggestions.setSuggestionAction( mb );
+ suggestions.setVar( "result" );
+
+ suggestions.setRows( 0 );
+ suggestions.setFirst( 0 );
+ suggestions.setMinChars( "#{suggestionBox.minchars}" );
+ suggestions.setShadowOpacity( "4" );
+ suggestions.setBorder( "1" );
+ suggestions.setWidth( "200" );
+ suggestions.setHeight( "150" );
+ suggestions.setShadowDepth( "4" );
+ suggestions.setCellpadding( "2" );
+
+ org.apache.myfaces.custom.column.HtmlSimpleColumn column = new org.apache.myfaces.custom.column.HtmlSimpleColumn();
+ column.setId( "col1" );
+ org.apache.myfaces.component.html.ext.HtmlOutputText text = new org.apache.myfaces.component.html.ext.HtmlOutputText();
+ text.setId( "text1" );
+
+ javax.faces.el.ValueBinding vb = app.createValueBinding( "#{result.text}" );
+ text.setValueBinding( "value", vb );
+ column.getChildren().add( text );
+ suggestions.getChildren().add( column );
+ bar.getChildren().add( suggestions );
+...
+]]></programlisting>
+ <para> See also <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4099047#..."
+ >RichFaces User Forum</ulink>.</para>
+ </section>
+
+
+
+ <section id="DecidingWhatToChangeOnTheServerSide">
+ <?dbhtml filename="DecidingWhatToChangeOnTheServerSide.html"?>
+ <title>What should I change on the server side?</title>
+ <para> As it was mentioned <ulink url="index.html#DecideWhatToChange"
+ >before</ulink>, the list of zones to be reRendered can be specified as EL
+ expression. But there is a question that must be specified more exactly. </para>
+ <para> The list of Ids is formed during beforePhase of RENDER_RESPONSE. Therefore,
+ in this case one can point reRender to the Set type Bean's property
+ and fill the Set during a tracking request. </para>
+ <para> It's the way to form a list of updatable areas dynamically. </para>
+ </section>
+ <section id="CheckSendingRequestConditions.CustomJavaScriptBeforeRequest.OnSubmitAttribute">
+ <?dbhtml filename="CheckSendingRequestConditions.CustomJavaScriptBeforeRequest.OnSubmitAttribute.html"?>
+
+ <title>How to check sending request conditions? Custom JavaScript before request
+ "OnSubmit" attribute.</title>
+ <para> To check on the client some terms of request sending, the <emphasis>
+ <property>"onSubmit</property>
+ </emphasis>" attribute is added to all components, which may cause
+ the request. </para>
+ <para>
+ <emphasis role="bold">Example: </emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[<h:inputText id="i" value="#{beanText.kennung}">
+ <a4j:support event="onfocus" onsubmit="doSomething();" reRender="panelToReRender"/>
+</h:inputText>]]></programlisting>
+ <para> So in this case
+ "<emphasis><property>doSomething()</property>"</emphasis>
+ function is executed before the Ajax request. </para>
+ <para> Besides, if this function returns "false", Ajax request
+ isn't fired. </para>
+ <note>
+ <title>Note:</title>
+ <para>Behavior of our <emphasis>
+ <property>"onsubmit"</property>
+ </emphasis>slightly differs from the standard one. Do not return <emphasis>
+ <property>"true"</property>
+ </emphasis> if you want to fire the request - because <emphasis
+ role="bold">
+ <property><xxx><a4j:support
+ event="onclick"
+ onsubmit="return
+ true;"></property>
+ </emphasis> is transformed into <xxx onclick="return
+ true; A4J.Submit(.... );" > and the request
+ isn't fired also in this case (but the standard event
+ processing fired). You must only return <emphasis>
+ <property>"false"</property>
+ </emphasis> if your conditions weren't completed or perform
+ some actions (if needed) without any returns in case you need to
+ fire it. </para>
+ </note>
+ </section>
+ <section id="onCompleteAttribute.DifferencesAfterRelease1.0">
+ <?dbhtml filename="onCompleteAttribute.DifferencesAfterRelease1.0.html"?>
+ <title> What is differences of "onCompelete" attribute after
+ release 1.0?</title>
+ <para> To avoid differences with other JavaScript attributes, a function placement
+ in a JavaScript call is changed, instead of simple inserting of attribute
+ content (..oncomplete :anotherFunction(this)..), it places (oncomplete:
+ function(){anotherFunction(this);}..) in anonymous function, to allow put
+ "chain" of statements in attribute. </para>
+ <para> Since, <emphasis>
+ <property>"this"</property>
+ </emphasis> keyword will point to a parameters map instead of a control
+ element as it was before. You may use <emphasis>
+ <property>document.findElementById()</property>
+ </emphasis>to get references to this object after a request is processed as
+ when a page is updated in Ajax you will have reference to a control, removed
+ from a DOM tree. </para>
+ <para> Or, if you are sure that your element is not updated, you can add <emphasis>
+ <property>"onsubmit"</property>
+ </emphasis> in <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> (or onclick in <emphasis role="bold">
+ <property><a4j:commandLink/Button></property>
+ </emphasis>) to place reference to known variable (<emphasis role="bold">
+ <property><a4j:commandLink onclick="var myControl=this;"
+ oncomplete="anotherFunction(myControl)"/></property>
+ </emphasis>). </para>
+ <important>
+ <title>New:</title>
+ <para> The onComplete syntax now is: </para>
+ <programlisting role="XML">
+ <![CDATA[<someAjaxActionComponent ...oncomplete="myFunc(req,event,data)".../>]]>
+ </programlisting>
+ <para> where the <property>event</property> is a variable where the JS event
+ copy that fires the request is placed into. One may use it to get
+ the element instead of this. and <property>data</property> is a
+ variable that contains deserialized value from the
+ <property>data</property> attribute. </para>
+ </important>
+ </section>
+ <section id="InvokeOnComponentUsingWithJSF1.2">
+ <?dbhtml filename="InvokeOnComponentUsingWithJSF1.2.html"?>
+ <title>Is it possible to use InvokeOnComponent with JSF 1.2?</title>
+ <para> RichFaces currently does not use <emphasis>invokeOnComponent</emphasis>
+ because of the 2 reasons: </para>
+ <itemizedlist>
+ <listitem> Compatibility with JSF 1.1 and MyFaces applications is kept, due
+ to a big amount of code used in corporate applications. </listitem>
+ <listitem>
+ <emphasis> InvokeOnComponent</emphasis> works with already known
+ clientId, and works fine for communication between widget and backed
+ component, or updates content of already rendered component. But
+ there are some troubles to use this method for more complex
+ use-cases implemented in RichFaces, as there is a choice for
+ updatable components in application logic, where it's
+ necessary to navigate in a components tree by the native id, with
+ <property>findComponent()</property> methods. </listitem>
+ </itemizedlist>
+ <para> Thus, for example, only entire dataTable can be updated in response (but all
+ Ajax core action components inside table work properly). </para>
+ </section>
+ <!--<section id="RegionsInDataTables">
+ <?dbhtml filename="RegionsInDataTables.html"?>
+ <title>Regions in Data Tables</title>
+ <para>The regions in Data Tables aren't supported now, but the feature will be implemented in a new Ajax4jsf version for JSF 1.2.</para>
+ </section>-->
+ <section id="keepAliveComponentGeneratesException">
+ <?dbhtml filename="keepAliveComponentGeneratesException.html"?>
+ <title>How to avoid generating exception for "keepAlive"
+ component?</title>
+ <para>To avoid exception, don't forget that the component stores beans in
+ serialized view, but your bean should implement java.io.Serializable.</para>
+ </section>
+
+ <section id="AFormIsNotSubmittedOrASetterIsNotCalledAfterAJAXrequest">
+ <?dbhtml filename="AFormIsNotSubmittedOrASetterIsNotCalledAfterAJAXrequest.html"?>
+ <title>Why form isn't submitted or setter isn't called after AJAX
+ request?</title>
+ <para>This situation could happen because of conversion/validation errors on form
+ submission. In order to verify this, it's necessary to place this
+ updating via an Ajax error message inside a form:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[<a4j:outputPanel ajaxRendered="true">
+ <h:messages/>
+</a4j:outpurPanel>]]></programlisting>
+ </section>
+
+ <section id="DelayedRenderZone">
+ <?dbhtml filename="DelayedRenderZone.html"?>
+ <title>How to create "a4j delayed render zone"?</title>
+ <para>The <emphasis role="bold"><a4j:support></emphasis> component has
+ a "requestDelay" attribute where you can define the delay.</para>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=104969"
+ >Ajax4Jsf Users Forum.</ulink>
+ </para>
+ </section>
+
+
+ <section id="HowToStopPoll">
+ <?dbhtml filename="HowToStopPoll.html"?>
+ <title>How to stop "a4j:poll"?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=104951"
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="IgnoreDupResponsesAndRequestDelay">
+ <?dbhtml filename="IgnoreDupResponsesAndRequestDelay.html"?>
+
+ <title>How to use IgnoreDupResponses and requestDelay?</title>
+ <para>The <emphasis>
+ <property>"IgnoreDupResponses"</property>
+ </emphasis> attribute appeared from 1.0.4 RC1 version and is used on the
+ client for response ignoring after an Ajax request if a newer request has
+ been already sent. <para> The additional information could be found <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=105766"
+ >here</ulink>. </para>
+ <emphasis>
+ <property>"RequestDelay"</property>
+ </emphasis> attribute also defines the client behavior. It sets the time
+ delay, after which another request could be sent, all other requests are
+ taken away from a queue except the last one. </para>
+ </section>
+
+
+ <section id="RefreshImage">
+ <?dbhtml filename="RefreshImage.html"?>
+ <title>How to refresh an image using <a4j:support> component?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=105995"
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="EventQueueUsage">
+ <?dbhtml filename="EventQueueUsage.html"?>
+ <title>How to use "EventQueue" attribute?</title>
+ <para>The <emphasis>
+ <property>"EventQueue"</property>
+ </emphasis> attribute defines the query name where the requests are saved
+ before their sending to the server. The queue is created for redundant
+ requests deleting during frequent events, which call several requests
+ forming one after another. The queue cuts redundant requests and send only
+ the last one. The queue is created in any case and named on default, the
+ attribute usage only re-defines this name. </para>
+ </section>
+
+ <section id="PageRequiredOrNot">
+ <?dbhtml filename="PageRequiredOrNot.html"?>
+ <title>Is <a4j:page> component required or not?</title>
+ <para>
+ <emphasis role="bold"><4j:page></emphasis> is a component used
+ for solving of incompatibility problems in early Ajax4jsf and MyFaces
+ versions. The component encodes the full html page structure. </para>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=106849&p..."
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="SeveralStatusOnPage">
+ <?dbhtml filename="SeveralStatusOnPage.html"?>
+ <title>Can I have several <a4j:status> components on one page?</title>
+ <para>Yes, you can. More information about this problem could be found on the <ulink
+ url="http://livedemo.exadel.com/richfaces-demo/richfaces/status.jsf?c=status"
+ >JBoss RichFaces Online Demos</ulink>. </para>
+ </section>
+
+ <section id="SomeProblemsWithRendering">
+ <?dbhtml filename="SomeProblemsWithRendering.html"?>
+ <title>Can I use <a4j:region> within <a4j:repeat>?</title>
+ <para>
+ <emphasis role="bold"><a4j:region></emphasis> can't
+ work inside iteration components like <emphasis role="bold"
+ ><h:dataTable></emphasis> and <emphasis role="bold"
+ ><a4j:repeat></emphasis>. </para>
+ <para>The details could be found <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=109080"
+ >here. </ulink>
+ </para>
+ </section>
+
+ <section id="CustomAjaxRequest">
+ <?dbhtml filename="CustomAjaxRequest.html"?>
+ <title>Why custom Ajax request does not work?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=114025"
+ >Ajax4Jsf Users Forum.</ulink>
+ </para>
+ </section>
+
+
+ <section id="RerederingSingleDataTableColumn">
+ <?dbhtml filename="RerederingSingleDataTableColumn.html"?>
+ <title>How to reRender single dataTable column?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=105725"
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="DisableSkins">
+ <?dbhtml filename="DisableSkins.html"?>
+ <title>How to disable skinability?</title>
+ <para>There is possibility to use special skin with name "plain". It doesn't have
+ any parameters. It's necessary for embedding RichFaces components into
+ existing projecst which have its own styles.</para>
+ <para>For information you can see discussion about this problem on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4066340#..."
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="reRenderingfailed">
+ <?dbhtml filename="reRenderingfailed.html"?>
+ <title>Why does reRendering fail? Hide/Show components using rendered.</title>
+ <para> During "show/hide" functionality implementation the main
+ error happens because of the "reRender" attribute of some
+ Ajax core Action Component is set on a component that depends on rendered
+ properties, i.e. a component that is to be hidden/rendered is tried to be
+ updated. The problem is that if rendered="false" in this
+ moment, the component isn't in the DOM tree and can't be
+ updated because of the general limitations described in the Ajax Processing
+ chapter. </para>
+ <para>The correct variant of functionality implantation:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>With the rendered attribute wrap the component that is to be
+ hidden or rendered on Ajax in a wrapper component (e.g.
+ a4j:outputPanel)</para>
+ </listitem>
+
+ <listitem>
+ <para>Set reRender of an Ajax core Action component on this wrapper
+ component instead of the component itself.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML"><![CDATA[...
+<a4j:outputPanel id="panel">
+ <h:panelGroup rendered="#{bean.rendered}">
+ <!--Some nested content to be hidden/shown depending on bean.rendered -->
+ </h:panelGroup>
+</a4j:outputPanel>
+...
+<a4j:commandButton action=".." value=".." reRender="panel"/>
+...
+]]></programlisting>
+
+ <para>In this case the wrapper component always presents in the DOM tree and its
+ inner content could be updated dynamically on AJAX.</para>
+ </section>
+
+ <section id="PreventDupRerenderingPoll">
+ <?dbhtml filename="PreventDupRerenderingPoll.html"?>
+ <title>How to prevent duplicate reRendering when using <a4j:poll>?</title>
+ <para>For information you can see discussion about this problem on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4059731#..."
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="JSCallPropblemsInInclude">
+ <?dbhtml filename="JSCallPropblemsInInclude.html"?>
+ <title>Why does JavaScript call don't work in <a4j:include>?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=104317"
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="IncludeAndNavRules">
+ <?dbhtml filename="IncludeAndNavRules.html"?>
+ <title>How to use <a4j:include> and navigation rules?</title>
+ <para>For information you can see discussion about this problem on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062036#..."
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="ResourceNotRegisteredException">
+ <?dbhtml filename="ResourceNotRegisteredException.html"?>
+ <title>What does ResourceNotRegistered Exception mean?</title>
+
+ <para>RichFaces registers its resources (scripts, images) after an application is
+ accessed and then accesses it via a generated URL. During an application
+ development when a developer constantly updates it on the server, it could
+ happen that RichFaces re-registers its resources after every server restart
+ and a browser tries to access them via cashed URL.</para>
+
+ <para>The problem is solved with browser cash update (e.g. CTRL+F5).</para>
+ </section>
+
+ <section id="RerenderingPartPage">
+ <?dbhtml filename="RerenderingPartPage.html"?>
+ <title>How to reRender only particular row(s) of table?</title>
+ <para> If you use dataTable then you may use <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute to bind the rowKeys to be reRendered there.
+ After you need to point reRender on the specific rows. See also
+ <link linkend="IterationcomponentsAjaxattributes"
+ >"Iteration components Ajax attributes
+ section"</link>. </para>
+ </section>
+</chapter>
Added: trunk/docs/faq/en/src/main/resources/css/html.css
===================================================================
--- trunk/docs/faq/en/src/main/resources/css/html.css (rev 0)
+++ trunk/docs/faq/en/src/main/resources/css/html.css 2007-11-19 16:47:05 UTC (rev 4091)
@@ -0,0 +1,388 @@
+* {
+ LINE-HEIGHT: 20px; FONT-FAMILY: verdana, helvetica, sans-serif
+}
+DIV.navheader TABLE, DIV.navheader TABLE td, DIV.navfooter TABLE, DIV.navfooter TABLE td{
+ BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px; FONT-SIZE: 11px; padding : 0px;
+}
+A {
+ COLOR: #2a7bd4; FONT-FAMILY: verdana, helvetica, sans-serif
+}
+A:hover {
+ COLOR: #003399; FONT-FAMILY: verdana, helvetica, sans-serif
+}
+A:visited {
+ COLOR: #888888; FONT-FAMILY: verdana, helvetica, sans-serif
+}
+P {
+ FONT-SIZE: 12px; COLOR: #000000; margin : 5px 0px 5px 0px;
+}
+OL {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+UL {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+LI {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+DL {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+DT {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+DD {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+BLOCKQUOTE {
+ FONT-SIZE: 12px; COLOR: #000000
+}
+TD {
+ COLOR: #000000
+}
+TH {
+ COLOR: #000000
+}
+SPAN {
+ COLOR: #000000
+}
+SPAN.property {
+ COLOR: #008cca;
+}
+SPAN.italic {
+ FONT-STYLE: italic;
+}
+
+BLOCKQUOTE {
+ MARGIN-RIGHT: 0px
+}
+
+P.title {
+ MARGIN-BOTTOM: 5px;
+ MARGIN-top: 20px;
+}
+
+div.book div.chapter .title {
+ text-align: left;
+}
+
+
+div.book .title {
+ text-align: center;
+}
+
+div.book .subtitle {
+ text-align: center;
+}
+
+.mediaobject{
+ padding : 5px 10px 5px 35px;
+}
+H1 {
+ MARGIN: 0px; FONT-SIZE: 22px; COLOR: #ff6600; PADDING: 45px 0px 10px 0px;
+}
+H2 {
+ MARGIN: 0px; FONT-SIZE: 18px; COLOR: #2a7bd4; PADDING: 25px 0px 10px 0px;
+}
+H3 {
+ MARGIN: 0px; FONT-SIZE: 15px; COLOR: #000000; PADDING: 20px 0px 10px 0px;
+}
+H4 {
+ MARGIN: 0px; FONT-SIZE: 12px; COLOR: #000000; PADDING: 15px 0px 10px 0px;
+}
+H5 {
+ MARGIN: 0px; FONT-SIZE: 12px; COLOR: #000000; PADDING: 15px 0px 10px 0px;
+}
+H6 {
+ MARGIN: 0px; FONT-SIZE: 11px; COLOR: #000000; PADDING: 5px 0px 0px 0px;
+}
+
+div.book div.section div.mediaobject{
+text-align:left;
+}
+
+
+div.book div.mediaobject{
+text-align:center;
+}
+
+div.mediaobject, div.mediaobject img *{
+text-align:left;
+
+}
+
+DIV.note{
+ BORDER: #CECECE 1px solid; PADDING: 3px 10px 10px 50px; line-height : 14px; MARGIN: 10px 0px 10px 0px; FONT-SIZE: 11px; WIDTH: 500px; BACKGROUND-COLOR: #FFFDD3;
+ background-image : url('../images/ico_note.gif'); background-repeat : no-repeat; background-position :top left;
+}
+
+DIV.note *{
+ line-height : 14px;
+}
+
+.note P {
+ MARGIN-TOP: 0px; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
+}
+.important P {
+ MARGIN-TOP: 0px; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
+}
+DIV.important {
+ BORDER: #CECECE 1px solid; PADDING: 3px 10px 10px 50px; line-height : 14px; MARGIN: 10px 0px 10px 0px; FONT-SIZE: 11px; WIDTH: 500px; BACKGROUND-COLOR: #CFE3FF;
+ background-image : url('../images/ico_important.gif'); background-repeat : no-repeat; background-position :top left;
+}
+
+DIV.important *{
+ line-height : 14px;
+}
+
+.important pre.XML {
+PADDING: 1px 1px 1px 10px;
+
+}
+
+
+TABLE {
+ BORDER: #cccccc 1px solid; FONT-SIZE: 11px; BORDER-COLLAPSE: collapse; border-spacing: 0; empty-cells: hide; margin-bottom : 10px;
+}
+
+table *{
+ line-height : 14px;
+}
+
+
+.table TH {
+ WHITE-SPACE: nowrap; BACKGROUND-COLOR: #EEF5FF; TEXT-ALIGN: center; BORDER-BOTTOM: #CAE1FF 2px solid; PADDING: 2px 8px 2px 8px;
+ background-image : url('../images/bg_table.gif'); background-repeat : repeat-x; background-position :top left;
+}
+TD {
+ PADDING: 4px 8px 4px 8px; BORDER-BOTTOM: #cccccc 1px dotted; BORDER-right: #cccccc 1px dotted;
+}
+P.copyright {
+ TEXT-ALIGN: center
+}
+TT {
+ FONT-SIZE: 90%; COLOR: #000000; FONT-FAMILY: "Courier New", Courier, monospace
+}
+DL {
+ MARGIN-BOTTOM: 6px; MARGIN-LEFT: 8px
+}
+DT {
+ MARGIN-BOTTOM: 6px; MARGIN-LEFT: 8px
+}
+DD {
+ MARGIN-BOTTOM: 6px; MARGIN-LEFT: 8px
+}
+PRE {
+ BORDER: #cccccc 1px solid; PADDING: 5px 15px 5px 25px; FONT-SIZE: 11px; BACKGROUND-COLOR: #f5f5f5;
+}
+HR {
+ BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; WIDTH: 100%; COLOR: #cccccc; PADDING-TOP: 0px; HEIGHT: 1px; BACKGROUND-COLOR: #cccccc; BORDER-RIGHT-WIDTH: 0px
+}
+.variablelist {
+ PADDING-BOTTOM: 10px; MARGIN: 0px; PADDING-TOP: 10px
+}
+.itemizedlist {
+ FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px;TEXT-ALIGN: justify
+}
+.term {
+ FONT-WEIGHT: bold
+}
+PRE.JAVA {
+ LINE-HEIGHT: 0px
+}
+PRE.XML {
+ LINE-HEIGHT: 0px
+}
+PRE.JSP {
+ LINE-HEIGHT: 0px
+}
+PRE.XHTML {
+ LINE-HEIGHT: 0px
+}
+.java_type {
+ COLOR: #008cca
+}
+.java_keyword {
+ FONT-WEIGHT: bold; COLOR: rgb(0,0,0)
+}
+.java_javadoc_comment {
+ COLOR: rgb(147,147,147); FONT-STYLE: italic; BACKGROUND-COLOR: rgb(247,247,247)
+}
+.java_comment {
+ COLOR: rgb(147,147,147); BACKGROUND-COLOR: rgb(247,247,247)
+}
+.java_operator {
+ COLOR: #003399
+}
+.java_plain {
+ COLOR: rgb(0,0,0)
+}
+.java_literal {
+ COLOR: #ff6600
+}
+PRE CODE {
+ FONT-SIZE: 12px; COLOR: rgb(0,0,0); FONT-FAMILY: monospace; WHITE-SPACE: nowrap
+}
+.java_javadoc_tag {
+ FONT-WEIGHT: bold; COLOR: rgb(147,147,147); FONT-STYLE: italic; BACKGROUND-COLOR: rgb(247,247,247)
+}
+.java_separator {
+ COLOR: #008cca
+}
+.xml_plain {
+ COLOR: rgb(0,0,0)
+}
+.xml_tag_name {
+ COLOR: #008cca
+}
+.xml_comment {
+ COLOR: rgb(147,147,147); BACKGROUND-COLOR: rgb(247,247,247)
+}
+.xml_tag_symbols {
+ COLOR: #008cca
+}
+.xml_rife_tag {
+ COLOR: rgb(0,0,0); BACKGROUND-COLOR: rgb(228,230,160)
+}
+.xml_attribute_value {
+ COLOR: #ff6600
+}
+.xml_attribute_name {
+ FONT-WEIGHT: bold; COLOR: rgb(0,0,0)
+}
+.xml_char_data {
+ COLOR: rgb(0,0,0)
+}
+.xml_rife_name {
+ COLOR: #008cca; BACKGROUND-COLOR: rgb(228,230,160)
+}
+.xml_processing_instruction {
+ FONT-WEIGHT: bold; COLOR: rgb(0,0,0); FONT-STYLE: italic
+}
+TD.java {
+ VERTICAL-ALIGN: top; LINE-HEIGHT: 10px
+}
+TD.java-ln {
+ VERTICAL-ALIGN: top; LINE-HEIGHT: 10px
+}
+TT.java {
+ MARGIN-BOTTOM: 0em; LINE-HEIGHT: 10px
+}
+TT.java-ln {
+ MARGIN-BOTTOM: 0em; LINE-HEIGHT: 10px
+}
+PRE.java {
+ MARGIN-BOTTOM: 0em; LINE-HEIGHT: 10px
+}
+PRE.java-ln {
+ MARGIN-BOTTOM: 0em; LINE-HEIGHT: 10px
+}
+TD.java-ln {
+ LINE-HEIGHT: 10px; TEXT-ALIGN: right
+}
+TT.java-ln {
+ COLOR: #888888; LINE-HEIGHT: 10px
+}
+PRE.java-ln {
+ COLOR: #888888; LINE-HEIGHT: 10px
+}
+SPAN.java0 {
+ FONT-SIZE: 8pt; COLOR: #ffffff; LINE-HEIGHT: 10px
+}
+SPAN.java1 {
+ FONT-SIZE: 8pt; COLOR: #808080
+}
+SPAN.java2 {
+ FONT-SIZE: 8pt; COLOR: #3f7f5f; LINE-HEIGHT: 10px
+}
+SPAN.java3 {
+ FONT-SIZE: 8pt; COLOR: #3f7f5f; LINE-HEIGHT: 10px
+}
+SPAN.java4 {
+ FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #ff6600; LINE-HEIGHT: 10px
+}
+SPAN.java5 {
+ FONT-SIZE: 8pt; COLOR: #2a00ff; LINE-HEIGHT: 10px
+}
+SPAN.java6 {
+ FONT-SIZE: 8pt; COLOR: #990000; LINE-HEIGHT: 10px
+}
+SPAN.java7 {
+ FONT-SIZE: 8pt; COLOR: #990000; LINE-HEIGHT: 10px
+}
+SPAN.java8 {
+ FONT-SIZE: 8pt; COLOR: #000000; LINE-HEIGHT: 10px
+}
+SPAN.java9 {
+ FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #ff6600; LINE-HEIGHT: 10px
+}
+SPAN.java10 {
+ FONT-SIZE: 8pt; COLOR: #000000; LINE-HEIGHT: 10px
+}
+SPAN.java11 {
+ FONT-SIZE: 8pt; COLOR: #7f9fbf; LINE-HEIGHT: 10px
+}
+SPAN.java12 {
+ FONT-SIZE: 8pt; COLOR: #7f7f9f; LINE-HEIGHT: 10px
+}
+SPAN.java13 {
+ FONT-SIZE: 8pt; COLOR: #3f3fbf; LINE-HEIGHT: 10px
+}
+SPAN.java14 {
+ FONT-SIZE: 8pt; COLOR: #3f5fbf; LINE-HEIGHT: 10px
+}
+SPAN.java15 {
+ FONT-SIZE: 8pt; COLOR: #ff6100; LINE-HEIGHT: 10px
+}
+SPAN.java16 {
+ FONT-SIZE: 8pt; COLOR: #646464; LINE-HEIGHT: 10px
+}
+
+.expand_collapse_toc {
+ clear:both;
+ float:left;
+ font-family:monospace;
+ width:20px;
+ color: #2A7BD4;
+ cursor: pointer;
+}
+
+.css_comment {
+color:#3F5FBF;
+}
+.css_normal {
+color:#000000;
+}
+.css_semi_colon {
+color:#000000;
+}
+.css_curly_brace {
+color:#000000;
+}
+.css_atmark_rule {
+color:#3F7F7F;
+}
+.css_selector {
+color:#3F7F7F;
+}
+.css_media {
+color:#2A00FF;
+}
+.css_string {
+color:#2A00FF;
+}
+.css_uri {
+color:#2A00FF;
+}
+.css_property_value {
+color:#2A00FF;
+}
+.css_colon {
+color:#000000;
+}
+.css_error {
+color:#BF3F3F;
+}
+.css_property_name {
+color:#7F007F;
+}
Added: trunk/docs/faq/en/src/main/resources/script/toggle.js
===================================================================
--- trunk/docs/faq/en/src/main/resources/script/toggle.js (rev 0)
+++ trunk/docs/faq/en/src/main/resources/script/toggle.js 2007-11-19 16:47:05 UTC (rev 4091)
@@ -0,0 +1,43 @@
+function dbToggle(node, expandText, collapseText) {
+ var dt = node.parentNode;
+ if (dt.nodeName.toLowerCase() == 'dt') {
+ var dd = dt.nextSibling;
+
+ if (dd && dd.nodeName.toLowerCase() == 'dd') {
+
+ if (dd.style && dd.style.display == 'none') {
+ dd.style.display = '';
+ node.innerHTML = collapseText;
+ } else {
+ dd.style.display = 'none';
+ node.innerHTML = expandText;
+ }
+
+ }
+
+ }
+
+}
+
+var toc = {
+ expand: function(node) {
+ toc.show(toc.findDD(node))
+ toc.hide(node);
+ toc.show(node.nextSibling);
+ },
+ collapse : function(node) {
+ toc.hide(toc.findDD(node))
+ toc.hide(node);
+ toc.show(node.previousSibling);
+ },
+ findDD : function(node) {
+ return node.parentNode.nextSibling;
+ },
+
+ hide: function(node) {
+ node.style.display = "none";
+ },
+ show: function(node) {
+ node.style.display = "";
+ }
+};
\ No newline at end of file
Added: trunk/docs/faq/pom.xml
===================================================================
--- trunk/docs/faq/pom.xml (rev 0)
+++ trunk/docs/faq/pom.xml 2007-11-19 16:47:05 UTC (rev 4091)
@@ -0,0 +1,169 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>docs</artifactId>
+ <groupId>org.richfaces</groupId>
+ <version>3.2.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.richfaces.docs</groupId>
+ <artifactId>faq</artifactId>
+ <packaging>pom</packaging>
+ <version>3.2.0-SNAPSHOT</version>
+ <name>FAQ</name>
+ <description>Frequently asked questions</description>
+ <pluginRepositories>
+ <pluginRepository>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ <updatePolicy>never</updatePolicy>
+ </snapshots>
+ <id>repository.jboss.com</id>
+ <name>Jboss Repository for Maven</name>
+ <url>http://repository.jboss.com/maven2/</url>
+ <layout>default</layout>
+ </pluginRepository>
+ </pluginRepositories>
+ <build>
+ <pluginManagement>
+ <plugins>
+
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.0.0</version>
+ <!--
+ <executions>
+ <execution>
+ <id>generate</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>resources</id>
+ <goals>
+ <goal>resources</goal>
+ </goals>
+ </execution>
+ </executions>
+ -->
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.docs.xslt</groupId>
+ <artifactId>${translation}</artifactId>
+ <version>${project.version}</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDirectory>
+ ${basedir}/src/main/docbook
+ </sourceDirectory>
+ <imageResource>
+ <directory>
+ ${basedir}/src/main/resources
+ </directory>
+ </imageResource>
+ <cssResource>
+ <directory>
+ ${basedir}/src/main/resources
+ </directory>
+ </cssResource>
+ <sourceDocumentName>
+ master.xml
+ </sourceDocumentName>
+ <formats>
+
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>
+ /xslt/fopdf.xsl
+ </stylesheetResource>
+ <finalName>
+ faq.pdf
+ </finalName>
+ <imagePathSettingRequired>
+ true
+ </imagePathSettingRequired>
+ </format>
+ <!--format>
+ <formatName>html</formatName>
+ <stylesheetResource>
+ /xslt/html_chunk.xsl
+ </stylesheetResource>
+ <finalName>index.html</finalName>
+ <imageCopyingRequired>
+ true
+ </imageCopyingRequired>
+ <imagePathSettingRequired>
+ false
+ </imagePathSettingRequired>
+ </format-->
+
+ <format>
+ <formatName>html_single</formatName>
+ <stylesheetResource>
+ /xslt/html.xsl
+ </stylesheetResource>
+ <imageCopyingRequired>
+ true
+ </imageCopyingRequired>
+ <imagePathSettingRequired>
+ false
+ </imagePathSettingRequired>
+ <finalName>
+ faq.html
+ </finalName>
+
+ </format>
+ </formats>
+ <xincludeSupported>true</xincludeSupported>
+ <options>
+ <xincludeSupported>true</xincludeSupported>
+ <useRelativeImageUris>
+ true
+ </useRelativeImageUris>
+ <xmlTransformerType>
+ saxon
+ </xmlTransformerType>
+ <!--
+ <transformerParameters>
+ <property>
+ <name>custom.titlepage.img</name>
+ <value>
+ ${basedir}/src/main/resources/shared/images/hibernate_logo_a.png
+ </value>
+ </property>
+ </transformerParameters>
+ -->
+ <docbookVersion>1.72.0</docbookVersion>
+ </options>
+ </configuration>
+
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <!-- report plugin is currently hosed
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugin</groupId>
+ <artifactId>jboss-docbook-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+ -->
+ <properties>
+ <masterTranslation>en</masterTranslation>
+ </properties>
+
+ <modules>
+ <module>en</module>
+ </modules>
+
+</project>
\ No newline at end of file
Modified: trunk/docs/pom.xml
===================================================================
--- trunk/docs/pom.xml 2007-11-19 15:09:11 UTC (rev 4090)
+++ trunk/docs/pom.xml 2007-11-19 16:47:05 UTC (rev 4091)
@@ -39,10 +39,10 @@
<url>http://maven.exadel.com/</url>
<layout>default</layout>
</repository>
- <repository>
- <id>eclipse</id>
- <url>http://repo1.maven.org/eclipse/</url>
- </repository>
+ <repository>
+ <id>eclipse</id>
+ <url>http://repo1.maven.org/eclipse/</url>
+ </repository>
</repositories>
<pluginRepositories>
<pluginRepository>
@@ -81,12 +81,14 @@
<modules>
- <module>highlight</module>
+ <module>highlight</module>
<module>xslt</module>
<!--
<module>docbook</module>
<module>maven-docbook-plugin</module>
-->
<module>userguide</module>
+ <module>faq</module>
+
</modules>
</project>
\ No newline at end of file
Modified: trunk/docs/userguide/en/src/main/docbook/master.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/master.xml 2007-11-19 15:09:11 UTC (rev 4090)
+++ trunk/docs/userguide/en/src/main/docbook/master.xml 2007-11-19 16:47:05 UTC (rev 4091)
@@ -50,7 +50,6 @@
<!ENTITY coreComponents_table SYSTEM "../../../target/generated/a4j.xml">
-<!ENTITY rfcFAQ SYSTEM "modules/RFCfaq.xml">
]>
<book>
@@ -117,5 +116,5 @@
&rfcidesupport;
&rfclinks;
- &rfcFAQ;
+
</book>
18 years, 5 months
JBoss Rich Faces SVN: r4090 - in trunk/sandbox: ui and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: maksimkaszynski
Date: 2007-11-19 10:09:11 -0500 (Mon, 19 Nov 2007)
New Revision: 4090
Modified:
trunk/sandbox/samples/pom.xml
trunk/sandbox/ui/pom.xml
Log:
Modified: trunk/sandbox/samples/pom.xml
===================================================================
--- trunk/sandbox/samples/pom.xml 2007-11-19 15:07:47 UTC (rev 4089)
+++ trunk/sandbox/samples/pom.xml 2007-11-19 15:09:11 UTC (rev 4090)
@@ -16,6 +16,6 @@
<module>panel2-sample</module>
<module>simpleTogglePanel2-sample</module>
<module>columnsDemo</module>
- <module>contextMenuDemo</module>
+ <!--module>contextMenuDemo</module-->
</modules>
</project>
\ No newline at end of file
Modified: trunk/sandbox/ui/pom.xml
===================================================================
--- trunk/sandbox/ui/pom.xml 2007-11-19 15:07:47 UTC (rev 4089)
+++ trunk/sandbox/ui/pom.xml 2007-11-19 15:09:11 UTC (rev 4090)
@@ -19,6 +19,6 @@
<module>rex-resizable</module>
<module>rex-messageBox</module>
<!--module>rex-button</module-->
- <module>contextMenu</module>
+ <!--module>contextMenu</module-->
</modules>
</project>
\ No newline at end of file
18 years, 5 months
JBoss Rich Faces SVN: r4089 - trunk/sandbox/samples and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: maksimkaszynski
Date: 2007-11-19 10:07:47 -0500 (Mon, 19 Nov 2007)
New Revision: 4089
Added:
branches/3.1.x/sandbox/samples/contextMenuDemo/
Removed:
trunk/sandbox/samples/contextMenuDemo/
Log:
Copied: branches/3.1.x/sandbox/samples/contextMenuDemo (from rev 4088, trunk/sandbox/samples/contextMenuDemo)
18 years, 5 months
JBoss Rich Faces SVN: r4088 - trunk/sandbox/ui and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: maksimkaszynski
Date: 2007-11-19 10:06:24 -0500 (Mon, 19 Nov 2007)
New Revision: 4088
Added:
branches/3.1.x/sandbox/ui/contextMenu/
Removed:
trunk/sandbox/ui/contextMenu/
Log:
Copied: branches/3.1.x/sandbox/ui/contextMenu (from rev 4087, trunk/sandbox/ui/contextMenu)
18 years, 5 months
JBoss Rich Faces SVN: r4087 - trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages.
by richfaces-svn-commits@lists.jboss.org
Author: maksimkaszynski
Date: 2007-11-19 10:00:02 -0500 (Mon, 19 Nov 2007)
New Revision: 4087
Modified:
trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages/index.jsp
Log:
Context menu placement
Modified: trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages/index.jsp 2007-11-19 14:59:57 UTC (rev 4086)
+++ trunk/sandbox/samples/contextMenuDemo/src/main/webapp/pages/index.jsp 2007-11-19 15:00:02 UTC (rev 4087)
@@ -24,7 +24,7 @@
<h:form>
<h:panelGroup id="outputText">
<h:outputText value="Right Click Here" />
- <cm:contextMenu submitMode="ajax">
+ <cm:contextMenu submitMode="server">
<mc:menuItem id="menuItem11" action="#{bean.action}" value="Active11: ajax" submitMode="ajax" actionListener="#{bean.actionListener}">
<a4j:actionparam assignTo="#{bean.param}" name="param" value="{param}"></a4j:actionparam>
</mc:menuItem>
18 years, 5 months