JBoss Rich Faces SVN: r21453 - modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax.
by richfaces-svn-commits@lists.jboss.org
Author: ppitonak(a)redhat.com
Date: 2011-02-04 09:51:15 -0500 (Fri, 04 Feb 2011)
New Revision: 21453
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestCommand.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestSelectMany.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestSelectOne.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestTextInput.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectBooleanCheckbox.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectManyCheckbox.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectOneRadio.java
Log:
* tests for immediate and bypassUpdates extended and fixed
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestCommand.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestCommand.java 2011-02-04 14:19:23 UTC (rev 21452)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestCommand.java 2011-02-04 14:51:15 UTC (rev 21453)
@@ -23,6 +23,7 @@
import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
import static org.jboss.test.selenium.locator.LocatorFactory.jq;
+import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionLabel;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
@@ -57,6 +58,8 @@
public void testBypassUpdates(JQueryLocator command) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
@@ -67,6 +70,7 @@
assertEquals(selenium.getText(output1), "", "Output should not change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.PROCESS_VALIDATIONS, "listener invoked");
}
public void testData(JQueryLocator command) {
@@ -120,6 +124,8 @@
public void testImmediate(JQueryLocator command) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
selenium.waitForPageToLoad();
@@ -130,11 +136,14 @@
assertEquals(selenium.getText(output1), "RichFaces 4", "Output should change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.UPDATE_MODEL_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
public void testImmediateBypassUpdates(JQueryLocator command) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
@@ -145,7 +154,9 @@
waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
assertEquals(selenium.getText(output1), "", "Output should not change");
- phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
+ PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
public void testLimitRender(JQueryLocator command) {
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestSelectMany.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestSelectMany.java 2011-02-04 14:19:23 UTC (rev 21452)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestSelectMany.java 2011-02-04 14:51:15 UTC (rev 21453)
@@ -23,6 +23,7 @@
import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
import static org.jboss.test.selenium.locator.LocatorFactory.jq;
+import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionLabel;
import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionValue;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
@@ -57,6 +58,8 @@
public void testBypassUpdates(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
@@ -66,6 +69,7 @@
assertEquals(selenium.getText(output1), "[Ferrari, Lexus]", "Output should not change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.PROCESS_VALIDATIONS, "listener invoked");
}
public void testData(JQueryLocator input) {
@@ -116,6 +120,8 @@
public void testImmediate(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
selenium.waitForPageToLoad();
@@ -125,11 +131,14 @@
assertEquals(selenium.getText(output1), "[Audi, Ferrari, Lexus]", "Output should change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.UPDATE_MODEL_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
public void testImmediateBypassUpdates(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
@@ -139,7 +148,9 @@
waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
assertEquals(selenium.getText(output1), "[Ferrari, Lexus]", "Output should not change");
- phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
+ PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
public void testLimitRender(JQueryLocator input) {
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestSelectOne.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestSelectOne.java 2011-02-04 14:19:23 UTC (rev 21452)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestSelectOne.java 2011-02-04 14:51:15 UTC (rev 21453)
@@ -23,6 +23,7 @@
import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
import static org.jboss.test.selenium.locator.LocatorFactory.jq;
+import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionLabel;
import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionValue;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
@@ -57,6 +58,8 @@
public void testBypassUpdates(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
@@ -66,6 +69,7 @@
assertEquals(selenium.getText(output1), "Ferrari", "Output should not change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.PROCESS_VALIDATIONS, "listener invoked");
}
public void testData(JQueryLocator input) {
@@ -116,6 +120,8 @@
public void testImmediate(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
selenium.waitForPageToLoad();
@@ -125,11 +131,14 @@
assertEquals(selenium.getText(output1), "Audi", "Output should change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.UPDATE_MODEL_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
public void testImmediateBypassUpdates(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
@@ -139,7 +148,9 @@
waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
assertEquals(selenium.getText(output1), "Ferrari", "Output should not change");
- phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
+ PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
public void testLimitRender(JQueryLocator input) {
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestTextInput.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestTextInput.java 2011-02-04 14:19:23 UTC (rev 21452)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/AbstractTestTextInput.java 2011-02-04 14:51:15 UTC (rev 21453)
@@ -23,6 +23,7 @@
import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
import static org.jboss.test.selenium.locator.LocatorFactory.jq;
+import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionLabel;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
@@ -63,6 +64,8 @@
public void testBypassUpdates(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
@@ -72,6 +75,7 @@
assertEquals(selenium.getText(output1), "", "Output should not change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.PROCESS_VALIDATIONS, "listener invoked");
}
public void testData(JQueryLocator input) {
@@ -123,6 +127,8 @@
public void testImmediate(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
selenium.waitForPageToLoad();
@@ -132,11 +138,14 @@
assertEquals(selenium.getText(output1), "RichFaces 4", "Output should change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.UPDATE_MODEL_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
public void testImmediateBypassUpdates(JQueryLocator input) {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
@@ -146,7 +155,9 @@
waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
assertEquals(selenium.getText(output1), "", "Output should not change");
- phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
+ PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
public void testLimitRender(JQueryLocator input) {
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectBooleanCheckbox.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectBooleanCheckbox.java 2011-02-04 14:19:23 UTC (rev 21452)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectBooleanCheckbox.java 2011-02-04 14:51:15 UTC (rev 21453)
@@ -21,9 +21,10 @@
*******************************************************************************/
package org.richfaces.tests.metamer.ftest.a4jAjax;
-import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
import static org.jboss.test.selenium.locator.LocatorFactory.jq;
+import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionLabel;
+import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
@@ -68,6 +69,8 @@
public void testBypassUpdates() {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
@@ -77,6 +80,7 @@
assertEquals(selenium.getText(output1), "false", "Output should not change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.PROCESS_VALIDATIONS, "listener invoked");
}
@Test
@@ -132,6 +136,8 @@
public void testImmediate() {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
selenium.waitForPageToLoad();
@@ -141,12 +147,15 @@
assertEquals(selenium.getText(output1), "true", "Output should change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.UPDATE_MODEL_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
@Test
public void testImmediateBypassUpdates() {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
@@ -156,7 +165,9 @@
waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
assertEquals(selenium.getText(output1), "false", "Output should not change");
- phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
+ PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
@Test
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectManyCheckbox.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectManyCheckbox.java 2011-02-04 14:19:23 UTC (rev 21452)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectManyCheckbox.java 2011-02-04 14:51:15 UTC (rev 21453)
@@ -21,9 +21,10 @@
*******************************************************************************/
package org.richfaces.tests.metamer.ftest.a4jAjax;
-import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
import static org.jboss.test.selenium.locator.LocatorFactory.jq;
+import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionLabel;
+import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
@@ -68,6 +69,8 @@
public void testBypassUpdates() {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
@@ -77,6 +80,7 @@
assertEquals(selenium.getText(output1), "[Ferrari, Lexus]", "Output should not change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.PROCESS_VALIDATIONS, "listener invoked");
}
@Test
@@ -131,6 +135,8 @@
public void testImmediate() {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
selenium.waitForPageToLoad();
@@ -140,12 +146,15 @@
assertEquals(selenium.getText(output1), "[Audi, Ferrari, Lexus]", "Output should change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.UPDATE_MODEL_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
@Test
public void testImmediateBypassUpdates() {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
@@ -155,7 +164,9 @@
waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
assertEquals(selenium.getText(output1), "[Ferrari, Lexus]", "Output should not change");
- phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
+ PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
@Test
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectOneRadio.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectOneRadio.java 2011-02-04 14:19:23 UTC (rev 21452)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAjax/TestHSelectOneRadio.java 2011-02-04 14:51:15 UTC (rev 21453)
@@ -23,6 +23,7 @@
import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
import static org.jboss.test.selenium.locator.LocatorFactory.jq;
+import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionLabel;
import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
@@ -68,6 +69,8 @@
public void testBypassUpdates() {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
@@ -77,6 +80,7 @@
assertEquals(selenium.getText(output1), "Ferrari", "Output should not change");
phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.PROCESS_VALIDATIONS, "listener invoked");
}
@Test
@@ -109,21 +113,6 @@
}
@Test
- public void testImmediate() {
- String reqTime = selenium.getText(time);
-
- selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
- selenium.waitForPageToLoad();
-
- guardXhr(selenium).click(input);
- waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
-
- assertEquals(selenium.getText(output1), "Audi", "Output should change");
- phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
- PhaseId.UPDATE_MODEL_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.RENDER_RESPONSE);
- }
-
- @Test
public void testExecute() {
String reqTime = selenium.getText(time);
@@ -144,9 +133,29 @@
}
@Test
+ public void testImmediate() {
+ String reqTime = selenium.getText(time);
+
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
+ selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
+ selenium.waitForPageToLoad();
+
+ guardXhr(selenium).click(input);
+ waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
+
+ assertEquals(selenium.getText(output1), "Audi", "Output should change");
+ phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
+ PhaseId.UPDATE_MODEL_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
+ }
+
+ @Test
public void testImmediateBypassUpdates() {
String reqTime = selenium.getText(time);
+ selenium.select(pjq("select[name$=listenerInput]"), optionLabel("doubleStringListener"));
+ selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=bypassUpdatesInput][value=true]"));
selenium.waitForPageToLoad();
selenium.click(pjq("input[type=radio][name$=immediateInput][value=true]"));
@@ -156,7 +165,9 @@
waitGui.failWith("Page was not updated").waitForChange(reqTime, retrieveText.locator(time));
assertEquals(selenium.getText(output1), "Ferrari", "Output should not change");
- phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertPhases(PhaseId.RESTORE_VIEW, PhaseId.APPLY_REQUEST_VALUES, PhaseId.PROCESS_VALIDATIONS,
+ PhaseId.RENDER_RESPONSE);
+ phaseInfo.assertListener(PhaseId.APPLY_REQUEST_VALUES, "listener invoked");
}
@Test
14 years, 7 months
JBoss Rich Faces SVN: r21452 - trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2011-02-04 09:19:23 -0500 (Fri, 04 Feb 2011)
New Revision: 21452
Modified:
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.js
Log:
RF-10386: tabindex and accesskey are fixed for form elements when popupPanel is modal
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.js 2011-02-04 14:06:56 UTC (rev 21451)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/popupPanel.js 2011-02-04 14:19:23 UTC (rev 21452)
@@ -143,17 +143,17 @@
getMinimumSize : function(size) {
return Math.max(size, 2 * this.getInitialSize() + 2);
},
-
+
__getParsedOption: function(options, name) {
var value = parseInt(options[name], 10);
-
+
if (value < 0 || isNaN(value)) {
- value = this[name];
+ value = this[name];
}
-
+
return value;
},
-
+
destroy: function() {
this._contentElement = null;
@@ -403,18 +403,16 @@
}
},
-
- formElements: "|a|input|select|button|textarea|",
-
processAllFocusElements: function(root, callback) {
var idx = -1;
var tagName;
+ var formElements = "|a|input|select|button|textarea|";
if (root.focus && root.nodeType == 1 && (tagName = root.tagName) &&
// Many not visible elements have focus method, we is had to avoid processing them.
- (idx = this.formElements.indexOf(tagName.toLowerCase())) != -1 &&
- this.formElements.charAt(idx - 1) === '|' &&
- this.formElements.charAt(idx + tagName.length) === '|' &&
+ (idx = formElements.indexOf(tagName.toLowerCase())) != -1 &&
+ formElements.charAt(idx - 1) === '|' &&
+ formElements.charAt(idx + tagName.length) === '|' &&
!root.disabled && root.type != "hidden") {
callback.call(this, root);
} else {
@@ -434,24 +432,33 @@
if (!this.firstOutside) {
this.firstOutside = input;
}
- if (input.tabIndex && !input.prevTabIndex) {
+ if (!input.prevTabIndex) {
input.prevTabIndex = input.tabIndex;
+ input.tabIndex = -1;
}
- input.tabIndex = undefined;
- if (input.accesskey && !input.prevAccesskey) {
- input.prevAccesskey = input.accesskey;
+
+ if (!input.prevAccessKey) {
+ input.prevAccessKey = input.accessKey;
+ input.accessKey = "";
}
- input.accesskey = undefined;
},
restoreTabindexes: function(input) {
- if (input.prevTabIndex) {
- input.tabIndex = input.prevTabIndex;
+ if (input.prevTabIndex != undefined) {
+ if (input.prevTabIndex == 0) {
+ $(input).removeAttr('tabindex');
+ } else {
+ input.tabIndex = input.prevTabIndex;
+ }
input.prevTabIndex = undefined;
}
- if (input.prevAccesskey) {
- input.accesskey = input.prevAccesskey;
- input.prevAccesskey = undefined;
+ if (input.prevAccessKey != undefined) {
+ if (input.prevAccessKey == "") {
+ $(input).removeAttr('accesskey');
+ } else {
+ input.accessKey = input.prevAccessKey;
+ }
+ input.prevAccessKey = undefined;
}
},
14 years, 7 months
JBoss Rich Faces SVN: r21451 - in modules/tests/metamer/trunk: application/src/main/webapp/components/a4jLog and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: ppitonak(a)redhat.com
Date: 2011-02-04 09:06:56 -0500 (Fri, 04 Feb 2011)
New Revision: 21451
Modified:
modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean/A4JLogBean.properties
modules/tests/metamer/trunk/application/src/main/webapp/components/a4jLog/list.xhtml
modules/tests/metamer/trunk/application/src/main/webapp/components/a4jLog/simple.xhtml
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jLog/TestA4JLog.java
Log:
* added 4 tests for a4j:log
Modified: modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean/A4JLogBean.properties
===================================================================
--- modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean/A4JLogBean.properties 2011-02-04 13:42:51 UTC (rev 21450)
+++ modules/tests/metamer/trunk/application/src/main/resources/org/richfaces/tests/metamer/bean/A4JLogBean.properties 2011-02-04 14:06:56 UTC (rev 21451)
@@ -1,4 +1,10 @@
attr.level.error=error
attr.level.debug=debug
attr.level.info=info
-attr.level.warn=warn
\ No newline at end of file
+attr.level.warn=warn
+attr.level.null=
+
+attr.mode.popup=popup
+attr.mode.inline=inline
+attr.mode.console=console
+attr.mode.null=
Modified: modules/tests/metamer/trunk/application/src/main/webapp/components/a4jLog/list.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/a4jLog/list.xhtml 2011-02-04 13:42:51 UTC (rev 21450)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/a4jLog/list.xhtml 2011-02-04 14:06:56 UTC (rev 21451)
@@ -5,7 +5,7 @@
<!--
JBoss, Home of Professional Open Source
-Copyright 2010, Red Hat, Inc. and individual contributors
+Copyright 2010-2011, Red Hat, Inc. and individual contributors
by the @authors tag. See the copyright.txt in the distribution for a
full listing of individual contributors.
Modified: modules/tests/metamer/trunk/application/src/main/webapp/components/a4jLog/simple.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/a4jLog/simple.xhtml 2011-02-04 13:42:51 UTC (rev 21450)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/a4jLog/simple.xhtml 2011-02-04 14:06:56 UTC (rev 21451)
@@ -6,7 +6,7 @@
<!--
JBoss, Home of Professional Open Source
-Copyright 2010, Red Hat, Inc. and individual contributors
+Copyright 2010-2011, Red Hat, Inc. and individual contributors
by the @authors tag. See the copyright.txt in the distribution for a
full listing of individual contributors.
@@ -59,8 +59,12 @@
<br/><br/>
- <a4j:log id="log" rendered="#{a4jLogBean.attributes['rendered'].value}" level="#{a4jLogBean.attributes['level'].value}"
- style="#{a4jLogBean.attributes['style'].value}" styleClass="#{a4jLogBean.attributes['styleClass'].value}"/>
+ <a4j:log id="log"
+ level="#{a4jLogBean.attributes['level'].value}"
+ mode="#{a4jLogBean.attributes['mode'].value}"
+ rendered="#{a4jLogBean.attributes['rendered'].value}"
+ style="#{a4jLogBean.attributes['style'].value}"
+ styleClass="#{a4jLogBean.attributes['styleClass'].value}"/>
</ui:define>
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jLog/TestA4JLog.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jLog/TestA4JLog.java 2011-02-04 13:42:51 UTC (rev 21450)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jLog/TestA4JLog.java 2011-02-04 14:06:56 UTC (rev 21451)
@@ -19,10 +19,11 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*******************************************************************************/
-
package org.richfaces.tests.metamer.ftest.a4jLog;
+import java.awt.event.KeyEvent;
import static org.jboss.test.selenium.locator.LocatorFactory.jq;
+import static org.jboss.test.selenium.locator.option.OptionLocatorFactory.optionLabel;
import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
@@ -46,13 +47,12 @@
* Enumeration representing all possible levels for a4j:log.
*/
public enum LogLevel {
- DEBUG, INFO, WARN, ERROR;
+
+ DEBUG, NULL, INFO, WARN, ERROR;
}
-
private JQueryLocator input = pjq("input[id$=nameInput]");
private JQueryLocator submitButton = pjq("input[id$=submitButton]");
private JQueryLocator output = pjq("span[id$=out]");
-
private JQueryLocator log = pjq("div.rf-log");
private JQueryLocator levelSelect = pjq("div.rf-log select");
private JQueryLocator logMsg = pjq("div.rf-log div.rf-log-contents div");
@@ -113,6 +113,11 @@
}
@Test
+ public void testDebugFilterNull() {
+ testLogging(LogLevel.DEBUG, LogLevel.NULL);
+ }
+
+ @Test
public void testDebugFilterDebug() {
testLogging(LogLevel.DEBUG, LogLevel.DEBUG);
}
@@ -133,6 +138,11 @@
}
@Test
+ public void testInfoFilterNull() {
+ testLogging(LogLevel.INFO, LogLevel.NULL);
+ }
+
+ @Test
public void testInfoFilterDebug() {
testLogging(LogLevel.INFO, LogLevel.DEBUG);
}
@@ -153,6 +163,11 @@
}
@Test
+ public void testWarnFilterNull() {
+ testLogging(LogLevel.WARN, LogLevel.NULL);
+ }
+
+ @Test
public void testWarnFilterDebug() {
testLogging(LogLevel.WARN, LogLevel.DEBUG);
}
@@ -173,6 +188,11 @@
}
@Test
+ public void testErrorFilterNull() {
+ testLogging(LogLevel.ERROR, LogLevel.NULL);
+ }
+
+ @Test
public void testErrorFilterDebug() {
testLogging(LogLevel.ERROR, LogLevel.DEBUG);
}
@@ -194,29 +214,32 @@
private void testLogging(LogLevel logLevel, LogLevel filterLevel) {
JQueryLocator logButton = pjq("input[id$=" + logLevel.toString().toLowerCase() + "Button]");
- JQueryLocator levelInput = pjq("input[type=radio][value=" + filterLevel.toString().toLowerCase() + "]");
JQueryLocator msgType = logMsg.getChild(jq("span.rf-log-entry-lbl"));
JQueryLocator msgContent = logMsg.getChild(jq("span.rf-log-entry-msg"));
if (filterLevel != LogLevel.DEBUG) {
- selenium.click(levelInput);
- selenium.waitForPageToLoad(TIMEOUT);
+ selenium.select(pjq("select[name$=levelInput]"), optionLabel(filterLevel.toString().toLowerCase()));
+ selenium.waitForPageToLoad();
}
-
+
String selectedLevel = selenium.getSelectedLabel(levelSelect);
- assertEquals(selectedLevel, filterLevel.toString().toLowerCase(), "Log level in select wasn't changed.");
+ if (filterLevel == LogLevel.NULL) {
+ assertEquals(selectedLevel, "info", "Log level in select wasn't changed.");
+ } else {
+ assertEquals(selectedLevel, filterLevel.toString().toLowerCase(), "Log level in select wasn't changed.");
+ }
selenium.typeKeys(input, logLevel.toString());
selenium.click(logButton);
int count = selenium.getCount(logMsg);
assertEquals(count, filterLevel.ordinal() <= logLevel.ordinal() ? 1 : 0,
- "There should be only one message in log.");
+ "There should be only one message in log.");
if (count == 0) {
return;
}
-
+
String loggedValue = selenium.getText(msgType).replaceAll(" *\\[.*\\]:$", "");
assertEquals(loggedValue, logLevel.toString().toLowerCase(), "Message type in log.");
loggedValue = selenium.getText(msgContent);
14 years, 7 months
JBoss Rich Faces SVN: r21450 - trunk/ui/input/ui/src/main/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: pyaschenko
Date: 2011-02-04 08:42:51 -0500 (Fri, 04 Feb 2011)
New Revision: 21450
Modified:
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java
Log:
https://jira.jboss.org/browse/RF-9666
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java 2011-02-04 13:28:33 UTC (rev 21449)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java 2011-02-04 13:42:51 UTC (rev 21450)
@@ -176,13 +176,13 @@
this.encodeItem(facesContext, comboBox, nextItem, strategy);
if (comboBox.getFetchValue() != null) {
- fetchValues.add(comboBox.getFetchValue());
+ fetchValues.add(comboBox.getFetchValue().toString());
} else {
// TODO use converter
if (comboBox.getItemConverter() != null) {
fetchValues.add(comboBox.getItemConverter().getAsString(facesContext, component, nextItem));
} else {
- fetchValues.add(nextItem);
+ fetchValues.add(nextItem.toString());
}
}
14 years, 7 months
JBoss Rich Faces SVN: r21449 - trunk/examples/richfaces-showcase.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2011-02-04 08:28:33 -0500 (Fri, 04 Feb 2011)
New Revision: 21449
Modified:
trunk/examples/richfaces-showcase/readme.txt
Log:
http://jira.jboss.org/browse/RF-9831
Modified: trunk/examples/richfaces-showcase/readme.txt
===================================================================
--- trunk/examples/richfaces-showcase/readme.txt 2011-02-04 12:33:53 UTC (rev 21448)
+++ trunk/examples/richfaces-showcase/readme.txt 2011-02-04 13:28:33 UTC (rev 21449)
@@ -9,7 +9,7 @@
1.1. Requirements
- Maven 2.1.0 or later
-- Apache Tomcat 6.0
+- Servers: Apache Tomcat 6.0 or any JEE6 application server (e.g. JBoss AS 6)
- JDK 1.6
1.2 Optional Additional Software
@@ -17,8 +17,9 @@
- You're free to use any other IDE also but we haven't tested an application in other environments.
-1.3 Building the application
+1.3 Build/Deploy
+1.3.1) Tomcat
To build the project you need to navigate to the /examples/richfaces-showcase and run
mvn clean package
@@ -26,25 +27,21 @@
When you see the BUILD SUCCESSFUL message you can deploy the application on the server. You can deploy it on the server by copying .war file from 'target' folder to
the TOMCAT_HOME/webapps folder. Then, launch the startup.sh or startup.bat script from TOMCAT_HOME/bin/ directory to start the server.
-In order to explore, run and deploy the application in Eclipse IDE you can use one of the following options:
+1.3.2) JEE6 server(JBoss AS 6)
+To build the project you need to navigate to the /examples/richfaces-showcase and run
- * Just import as maven project if using m2eclipse plugin.
-
- * without m2eclipse - build it with the
+mvn clean package -Pjee6
- mvn clean install eclipse:clean eclipse:eclipse
+When you see the BUILD SUCCESSFUL message you can deploy the application on the server. You can deploy it on the server by copying .war file from 'target' folder to
+the JBOSS_HOME/server/default/deploy folder(or change "default/" to used profile folder). Then, launch the run.sh or run.bat script from JBOSS_HOME/bin/ directory to start the server.
- comand and just import as existent project.
-
-You can find more details in the RichFaces Getting Started Guide (visit documentation page at http://jboss.org/richfaces)
-
2) Publishing to Google Application Engine
In M2 we completed resource plugin which generates static resources and that allow us to create Google App Engine compatible application using RichFaces.
just execute
* mvn clean package -Pgae -Denforcer.skip=true
-(enforcer skipped as resource plugin using snapshot plugin)
+(enforcer skipped as resource plugin using snapshot plugin, and required only if you using snapshots sources)
And now you're ready to publish the application to GAE. just use appcfg as for any other one like described at google documentation. Do not forget to register your
own application name and rename the demo application accordingly.
@@ -56,3 +53,17 @@
* WebConfiguration class from com.sun.faces were patched removing code which is not compatible with GAE
* web.xml with additional properties for GAE created and placed at src\main\webapp-gae\WEB-INF\ (it replaces common one durinf build with GAE profile)
* check pom.xml GAE profile section in order to check additional dependencies for that configuration.
+
+3) Working with the project in Eclipse IDE:
+In order to explore, run and deploy the application in Eclipse IDE you can use one of the following options:
+
+ * Just import as maven project if using m2eclipse plugin.
+
+ * without m2eclipse - build it with the
+
+ mvn clean install eclipse:clean eclipse:eclipse
+
+ comand and just import as existent project.
+
+You can find more details in the RichFaces Getting Started Guide (visit documentation page at http://jboss.org/richfaces)
+
14 years, 7 months
JBoss Rich Faces SVN: r21448 - in trunk: examples/output-demo/src/main/webapp/examples and 7 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2011-02-04 07:33:53 -0500 (Fri, 04 Feb 2011)
New Revision: 21448
Added:
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelItemInterface.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AjaxProps.java
Modified:
trunk/examples/output-demo/src/main/java/org/richfaces/ModalPanel.java
trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml
trunk/examples/output-demo/src/main/webapp/qunit/accordionHeaders.xhtml
trunk/examples/output-demo/src/main/webapp/qunit/panelMenu.xhtml
trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml
trunk/examples/output-demo/src/main/webapp/qunit/togglePanel.xhtml
trunk/examples/output-demo/src/main/webapp/qunit/togglePanelItem.xhtml
trunk/ui/output/api/pom.xml
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordion.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordionItem.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDivPanel.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTab.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelItem.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelTitledItem.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTooltip.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/behavior/ToggleControl.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/AccordionItemHeaderRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/AccordionItemRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/DivPanelRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuItemRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelItemRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuGroup.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuItem.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/togglePanel.js
trunk/ui/output/ui/src/test/java/org/richfaces/component/AbstractAccordionTest.java
Log:
RF-10384: Redesign of switchable panels
Modified: trunk/examples/output-demo/src/main/java/org/richfaces/ModalPanel.java
===================================================================
--- trunk/examples/output-demo/src/main/java/org/richfaces/ModalPanel.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/examples/output-demo/src/main/java/org/richfaces/ModalPanel.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -4,6 +4,7 @@
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
+import java.util.Date;
@ManagedBean
@SessionScoped
@@ -27,6 +28,7 @@
private boolean resizeable;
private String inputTextTest;
private String domElementAttachment;
+ private Date date;
public String getInputTextTest() {
return inputTextTest;
@@ -213,4 +215,13 @@
public void action() {
System.out.println("ModalPanel.action");
}
+
+ public Date getDate() {
+ date = new Date();
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
}
\ No newline at end of file
Modified: trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml 2011-02-04 12:33:53 UTC (rev 21448)
@@ -14,15 +14,18 @@
<ui:define name="body">
<p>Page</p>
+ <h:outputText id="date-t1" value="Current date-t1 #{modalPanel.date}" /><br />
+ <h:outputText id="date-t2" value="Current date-t2 #{modalPanel.date}" /><br />
+
<h:form id="f">
<pn:tabPanel id="panel" switchType="ajax" tabDisabledHeaderClass="myClass_01" itemChangeListener="#{togglePanelBean.itemChangeActionListener}">
- <pn:tab header="tab1 header" headerDisabledClass="myClass_02" onenter="alert('onenter 01')">
+ <pn:tab header="tab1 header" headerDisabledClass="myClass_02" onenter="alert('onenter 01')" execute="date-t1" render="date-t1">
Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here. Content will be here.
</pn:tab>
<pn:tab header="tab 1a (disabled) header" disabled="true">
Disabled tab content
</pn:tab>
- <pn:tab header="tab2 header" onenter="alert('onenter 02')">
+ <pn:tab header="tab2 header" onenter="alert('onenter 02')" execute="date-t2" render="date-t2">
He he
</pn:tab>
</pn:tabPanel>
Modified: trunk/examples/output-demo/src/main/webapp/qunit/accordionHeaders.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/qunit/accordionHeaders.xhtml 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/examples/output-demo/src/main/webapp/qunit/accordionHeaders.xhtml 2011-02-04 12:33:53 UTC (rev 21448)
@@ -3,8 +3,7 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:pn="http://richfaces.org/pn"
- xmlns:ou="http://richfaces.org/output">
+ xmlns:pn="http://richfaces.org/output">
<body>
<ui:composition template="/templates/template.xhtml">
@@ -45,22 +44,22 @@
</pn:accordion>
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="@first" event="click"/>
+ <pn:toggleControl targetPanel="panel" targetItem="@first" event="click"/>
|< first
</h:outputLink>
|
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="@prev" event="click"/>
+ <pn:toggleControl targetPanel="panel" targetItem="@prev" event="click"/>
<- prev
</h:outputLink>
|
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="@next" event="click"/>
+ <pn:toggleControl targetPanel="panel" targetItem="@next" event="click"/>
next ->
</h:outputLink>
|
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="@last" event="click"/>
+ <pn:toggleControl targetPanel="panel" targetItem="@last" event="click"/>
last >|
</h:outputLink>
Modified: trunk/examples/output-demo/src/main/webapp/qunit/panelMenu.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/qunit/panelMenu.xhtml 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/examples/output-demo/src/main/webapp/qunit/panelMenu.xhtml 2011-02-04 12:33:53 UTC (rev 21448)
@@ -45,12 +45,16 @@
<ui:define name="body">
<p>Page</p>
+ <h:outputText id="date-g1" value="Current date-g1 #{modalPanel.date}" /><br />
+ <h:outputText id="date-i" value="Current date-i #{modalPanel.date}" /><br />
+ <h:outputText id="date-p" value="Current date-p #{modalPanel.date}" /><br />
+
<h:form id="f" style="border:blue solid thin;">
<pn:panelMenu
id="panelMenu"
expandSingle="true"
- itemMode="server"
- groupMode="server"
+ itemMode="ajax"
+ groupMode="ajax"
activeItem="myFavariteIten"
itemDisabledLeftIcon="disc"
groupDisabledLeftIcon="disc"
@@ -59,12 +63,13 @@
itemChangeListener="#{modalPanel.itemChangeEventListener}"
expandEvent="dblclick"
collapseEvent="dblclick"
+ execute="date-p" render="date-p"
>
- <pn:panelMenuGroup label="Group 1" selectable="true">
- <pn:panelMenuItem>Item 1.1</pn:panelMenuItem>
- <pn:panelMenuItem>Item 1.2</pn:panelMenuItem>
- <pn:panelMenuItem>Item 1.3</pn:panelMenuItem>
+ <pn:panelMenuGroup label="Group 1" selectable="true" execute="date-g1" render="date-g1">
+ <pn:panelMenuItem execute="date-i" render="date-i">Item 1.1</pn:panelMenuItem>
+ <pn:panelMenuItem execute="date-i" render="date-i">Item 1.2</pn:panelMenuItem>
+ <pn:panelMenuItem execute="date-i" render="date-i">Item 1.3</pn:panelMenuItem>
</pn:panelMenuGroup>
<pn:panelMenuGroup
label="Group 2"
Modified: trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml 2011-02-04 12:33:53 UTC (rev 21448)
@@ -3,7 +3,7 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:pn="http://richfaces.org/pn">
+ xmlns:pn="http://richfaces.org/output">
<body>
<ui:composition template="/templates/template.xhtml">
Modified: trunk/examples/output-demo/src/main/webapp/qunit/togglePanel.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/qunit/togglePanel.xhtml 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/examples/output-demo/src/main/webapp/qunit/togglePanel.xhtml 2011-02-04 12:33:53 UTC (rev 21448)
@@ -3,8 +3,7 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:pn="http://richfaces.org/pn"
- xmlns:ou="http://richfaces.org/output">
+ xmlns:pn="http://richfaces.org/output">
<body>
<ui:composition template="/templates/template.xhtml">
@@ -30,15 +29,15 @@
</pn:togglePanel>
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="name1" event="click" />
+ <pn:toggleControl targetPanel="panel" targetItem="name1" event="click" />
name1
</h:outputLink>
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="name2" event="click" />
+ <pn:toggleControl targetPanel="panel" targetItem="name2" event="click" />
name2
</h:outputLink>
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="name3" event="click" />
+ <pn:toggleControl targetPanel="panel" targetItem="name3" event="click" />
name3
</h:outputLink>
</h:form>
Modified: trunk/examples/output-demo/src/main/webapp/qunit/togglePanelItem.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/qunit/togglePanelItem.xhtml 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/examples/output-demo/src/main/webapp/qunit/togglePanelItem.xhtml 2011-02-04 12:33:53 UTC (rev 21448)
@@ -3,8 +3,7 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:pn="http://richfaces.org/pn"
- xmlns:ou="http://richfaces.org/output">
+ xmlns:pn="http://richfaces.org/output">
<body>
<ui:composition template="/templates/template.xhtml">
@@ -30,15 +29,15 @@
</pn:togglePanel>
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="name1" event="click" />
+ <pn:toggleControl targetPanel="panel" targetItem="name1" event="click" />
name1
</h:outputLink>
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="name2" event="click" />
+ <pn:toggleControl targetPanel="panel" targetItem="name2" event="click" />
name2
</h:outputLink>
<h:outputLink>
- <ou:toggleControl targetPanel="panel" targetItem="name3" event="click" />
+ <pn:toggleControl targetPanel="panel" targetItem="name3" event="click" />
name3
</h:outputLink>
</h:form>
Modified: trunk/ui/output/api/pom.xml
===================================================================
--- trunk/ui/output/api/pom.xml 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/api/pom.xml 2011-02-04 12:33:53 UTC (rev 21448)
@@ -1,3 +1,4 @@
+
<?xml version="1.0" encoding="UTF-8"?>
<!--
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordion.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordion.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordion.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -103,40 +103,4 @@
@Attribute(events = @EventName("beforeitemchange"))
public abstract String getOnbeforeitemchange();
- @Attribute
- public abstract String getLang();
-
- @Attribute
- public abstract String getTitle();
-
- @Attribute
- public abstract String getStyle();
-
- @Attribute
- public abstract String getStyleClass();
-
- @Attribute
- public abstract String getDir();
-
- @Attribute(events = @EventName("click"))
- public abstract String getOnclick();
-
- @Attribute(events = @EventName("dblclick"))
- public abstract String getOndblclick();
-
- @Attribute(events = @EventName("mousedown"))
- public abstract String getOnmousedown();
-
- @Attribute(events = @EventName("mousemove"))
- public abstract String getOnmousemove();
-
- @Attribute(events = @EventName("mouseout"))
- public abstract String getOnmouseout();
-
- @Attribute(events = @EventName("mouseover"))
- public abstract String getOnmouseover();
-
- @Attribute(events = @EventName("mouseup"))
- public abstract String getOnmouseup();
-
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordionItem.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordionItem.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractAccordionItem.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -23,8 +23,8 @@
package org.richfaces.component;
import org.richfaces.cdk.annotations.*;
-import org.richfaces.component.behavior.ToggleControl;
+import javax.faces.component.UIComponent;
import javax.faces.component.behavior.ClientBehaviorHolder;
/**
@@ -32,13 +32,15 @@
* @since 2010-08-13
*/
@JsfComponent(tag = @Tag(type = TagType.Facelets), renderer = @JsfRenderer(type = "org.richfaces.AccordionItemRenderer"))
-public abstract class AbstractAccordionItem extends AbstractTogglePanelTitledItem implements ClientBehaviorHolder {
+public abstract class AbstractAccordionItem extends AbstractTogglePanelItem implements AbstractTogglePanelTitledItem, ClientBehaviorHolder {
public static final String COMPONENT_TYPE = "org.richfaces.AccordionItem";
public static final String COMPONENT_FAMILY = "org.richfaces.AccordionItem";
enum Properties {
+ header,
+
contentClass,
leftActiveIcon,
leftInactiveIcon,
@@ -56,11 +58,31 @@
setRendererType("org.richfaces.AccordionItemRenderer");
}
+ @Override
+ public AbstractAccordion getParentPanel() {
+ return ComponentIterators.getParent(this, AbstractAccordion.class);
+ }
+
public AbstractAccordion getAccordion() {
- return (AbstractAccordion) ToggleControl.getEnclosedPanel(this);
+ return getParentPanel();
}
- @Attribute(defaultValue = "getAccordion().getItemActiveLeftIcon()", generate = false)
+ public UIComponent getHeaderFacet(Enum<?> state) {
+ return AbstractTab.getHeaderFacet(this, state);
+ }
+
+ // ------------------------------------------------ Component Attributes
+
+ @Attribute(generate = false)
+ public String getHeader() {
+ return (String) getStateHelper().eval(Properties.header, getName());
+ }
+
+ public void setHeader(String header) {
+ getStateHelper().put(Properties.header, header);
+ }
+
+ @Attribute(generate = false)
public String getLeftActiveIcon() {
return (String) getStateHelper().eval(Properties.leftActiveIcon, getAccordion().getItemActiveLeftIcon());
}
@@ -69,7 +91,7 @@
getStateHelper().put(Properties.leftActiveIcon, leftActiveIcon);
}
- @Attribute(defaultValue = "getAccordion().getItemDisabledLeftIcon()", generate = false)
+ @Attribute(generate = false)
public String getLeftDisabledIcon() {
return (String) getStateHelper().eval(Properties.leftDisabledIcon, getAccordion().getItemDisabledLeftIcon());
}
@@ -79,7 +101,7 @@
}
- @Attribute(defaultValue = "getAccordion().getItemInactiveLeftIcon()", generate = false)
+ @Attribute(generate = false)
public String getLeftInactiveIcon() {
return (String) getStateHelper().eval(Properties.leftInactiveIcon, getAccordion().getItemInactiveLeftIcon());
}
@@ -88,7 +110,7 @@
getStateHelper().put(Properties.leftInactiveIcon, leftInactiveIcon);
}
- @Attribute(defaultValue = "getAccordion().getItemActiveRightIcon()", generate = false)
+ @Attribute(generate = false)
public String getRightActiveIcon() {
return (String) getStateHelper().eval(Properties.rightActiveIcon, getAccordion().getItemActiveRightIcon());
}
@@ -97,7 +119,7 @@
getStateHelper().put(Properties.rightActiveIcon, rightActiveIcon);
}
- @Attribute(defaultValue = "getAccordion().getItemDisabledRightIcon()", generate = false)
+ @Attribute(generate = false)
public String getRightDisabledIcon() {
return (String) getStateHelper().eval(Properties.rightDisabledIcon, getAccordion().getItemDisabledRightIcon());
}
@@ -106,16 +128,16 @@
getStateHelper().put(Properties.rightDisabledIcon, rightDisabledIcon);
}
- @Attribute(defaultValue = "getAccordion().getItemInactiveRightIcon()", generate = false)
- public String getRightInactiveIcon() {
+ @Attribute(generate = false)
+ public String getInactiveRightIcon() {
return (String) getStateHelper().eval(Properties.rightInactiveIcon, getAccordion().getItemInactiveRightIcon());
}
- public void setInactiveRightIcon(String rightInactiveIcon) {
- getStateHelper().put(Properties.rightInactiveIcon, rightInactiveIcon);
+ public void setInactiveRightIcon(String inactiveRightIcon) {
+ getStateHelper().put(Properties.rightInactiveIcon, inactiveRightIcon);
}
- @Attribute(defaultValue = "getAccordion().getItemHeaderActiveClass()", generate = false)
+ @Attribute(generate = false)
public String getHeaderActiveClass() {
return (String) getStateHelper().eval(Properties.headerActiveClass, getAccordion().getItemActiveHeaderClass());
}
@@ -124,7 +146,7 @@
getStateHelper().put(Properties.headerActiveClass, headerActiveClass);
}
- @Attribute(defaultValue = "getAccordion().getItemDisabledHeaderClass()", generate = false)
+ @Attribute(generate = false)
public String getHeaderDisabledClass() {
return (String) getStateHelper().eval(Properties.headerDisabledClass, getAccordion().getItemDisabledHeaderClass());
}
@@ -133,7 +155,7 @@
getStateHelper().put(Properties.headerDisabledClass, headerDisabledClass);
}
- @Attribute(defaultValue = "getAccordion().getItemInactiveHeaderClass()", generate = false)
+ @Attribute(generate = false)
public String getHeaderInactiveClass() {
return (String) getStateHelper().eval(Properties.headerInactiveClass, getAccordion().getItemInactiveHeaderClass());
}
@@ -151,9 +173,6 @@
getStateHelper().put(Properties.headerClass, headerClass);
}
- @Attribute
- public abstract String getHeaderStyle();
-
@Attribute(defaultValue = "getAccordion().getItemContentClass()")
public String getContentClass() {
return (String) getStateHelper().eval(Properties.contentClass, getAccordion().getItemContentClass());
@@ -162,63 +181,5 @@
public void setContentClass(String contentClass) {
getStateHelper().put(Properties.contentClass, contentClass);
}
-
- @Attribute(events = @EventName("headerclick"))
- public abstract String getOnheaderclick();
-
- @Attribute(events = @EventName("headerdblclick"))
- public abstract String getOnheaderdblclick();
-
- @Attribute(events = @EventName("headermousedown"))
- public abstract String getOnheadermousedown();
-
- @Attribute(events = @EventName("headermousemove"))
- public abstract String getOnheadermousemove();
-
- @Attribute(events = @EventName("headermouseup"))
- public abstract String getOnheadermouseup();
-
- @Attribute(events = @EventName("enter"))
- public abstract String getOnenter();
-
- @Attribute(events = @EventName("leave"))
- public abstract String getOnleave();
-
- @Attribute
- public abstract String getLang();
-
- @Attribute
- public abstract String getTitle();
-
- @Attribute
- public abstract String getStyle();
-
- @Attribute
- public abstract String getStyleClass();
-
- @Attribute
- public abstract String getDir();
-
- @Attribute(events = @EventName("click"))
- public abstract String getOnclick();
-
- @Attribute(events = @EventName("dblclick"))
- public abstract String getOndblclick();
-
- @Attribute(events = @EventName("mousedown"))
- public abstract String getOnmousedown();
-
- @Attribute(events = @EventName("mousemove"))
- public abstract String getOnmousemove();
-
- @Attribute(events = @EventName("mouseout"))
- public abstract String getOnmouseout();
-
- @Attribute(events = @EventName("mouseover"))
- public abstract String getOnmouseover();
-
- @Attribute(events = @EventName("mouseup"))
- public abstract String getOnmouseup();
-
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDivPanel.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDivPanel.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDivPanel.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -25,63 +25,46 @@
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
-import javax.faces.component.UIOutput;
-
/**
* @author akolonitsky
* @version 1.0
*
*/
-public abstract class AbstractDivPanel extends UIOutput {
+public interface AbstractDivPanel {
- public static final String COMPONENT_TYPE = "org.richfaces.DivPanel";
-
- public static final String COMPONENT_FAMILY = "org.richfaces.DivPanel";
-
- protected AbstractDivPanel() {
- setRendererType("org.richfaces.DivPanelRenderer");
- }
-
- @Override
- public String getFamily() {
- return COMPONENT_FAMILY;
- }
-
- // ------------------------------------------------ Html Attributes
-
@Attribute
- public abstract String getLang();
+ String getLang();
@Attribute
- public abstract String getTitle();
+ String getTitle();
@Attribute
- public abstract String getStyle();
+ String getStyle();
@Attribute
- public abstract String getStyleClass();
+ String getStyleClass();
@Attribute
- public abstract String getDir();
+ String getDir();
@Attribute(events = @EventName("click"))
- public abstract String getOnclick();
+ String getOnclick();
@Attribute(events = @EventName("dblclick"))
- public abstract String getOndblclick();
+ String getOndblclick();
@Attribute(events = @EventName("mousedown"))
- public abstract String getOnmousedown();
+ String getOnmousedown();
@Attribute(events = @EventName("mousemove"))
- public abstract String getOnmousemove();
+ String getOnmousemove();
@Attribute(events = @EventName("mouseout"))
- public abstract String getOnmouseout();
+ String getOnmouseout();
@Attribute(events = @EventName("mouseover"))
- public abstract String getOnmouseover();
+ String getOnmouseover();
@Attribute(events = @EventName("mouseup"))
- public abstract String getOnmouseup();
+ String getOnmouseup();
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenu.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -110,8 +110,6 @@
protected void setEventPhase(FacesEvent event) {
if (isImmediate()) {
event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else if (isBypassUpdates()) {
- event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
} else {
event.setPhaseId(PhaseId.INVOKE_APPLICATION);
}
@@ -121,8 +119,7 @@
public void broadcast(FacesEvent event) throws AbortProcessingException {
super.broadcast(event);
- //TODO nick - check for (isBypassUpdates() || isImmediate()) can be removed
- if (event instanceof ItemChangeEvent && (isBypassUpdates() || isImmediate())) {
+ if (event instanceof ItemChangeEvent) {
getFacesContext().renderResponse();
}
}
@@ -195,24 +192,6 @@
@Attribute
public abstract MethodExpression getItemChangeListener();
- @Attribute
- public abstract boolean isBypassUpdates();
-
- @Attribute
- public abstract boolean isLimitRender();
-
- @Attribute
- public abstract Object getData();
-
- @Attribute
- public abstract String getStatus();
-
- @Attribute
- public abstract Object getExecute();
-
- @Attribute
- public abstract Object getRender();
-
// ------------------------------------------------ Html Attributes
enum Properties {
itemRightIcon,
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractPanelMenuItem.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -23,6 +23,7 @@
package org.richfaces.component;
+import com.google.common.base.Predicate;
import org.richfaces.PanelMenuMode;
import org.richfaces.cdk.annotations.*;
@@ -33,12 +34,14 @@
* @since 2010-10-25
*/
@JsfComponent(tag = @Tag(type = TagType.Facelets))
-public abstract class AbstractPanelMenuItem extends AbstractActionComponent {
+public abstract class AbstractPanelMenuItem extends AbstractActionComponent implements AjaxProps {
public static final String COMPONENT_TYPE = "org.richfaces.PanelMenuItem";
public static final String COMPONENT_FAMILY = "org.richfaces.PanelMenuItem";
+ private static final ParentItemPredicate PARENT_ITEM_PREDICATE = new ParentItemPredicate();
+
protected AbstractPanelMenuItem() {
setRendererType("org.richfaces.PanelMenuItemRenderer");
}
@@ -47,33 +50,12 @@
return getParentItem() instanceof AbstractPanelMenu;
}
- //TODO nick - this can be replaced with ComponentIterators.parents(UIComponent) + Iterators.find(...)
- public AbstractPanelMenu getPanelMenu() { // TODO refactor
- UIComponent parentItem = getParent();
- while (parentItem != null) {
- if (parentItem instanceof AbstractPanelMenu) {
- return (AbstractPanelMenu) parentItem;
- }
-
- parentItem = parentItem.getParent();
- }
-
- return null;
+ public AbstractPanelMenu getPanelMenu() {
+ return ComponentIterators.getParent(this, AbstractPanelMenu.class);
}
- //TODO nick - this can be replaced with ComponentIterators.parents(UIComponent) + Iterators.find(...)
public UIComponent getParentItem() {
- UIComponent parentItem = getParent();
- while (parentItem != null) {
- if (parentItem instanceof AbstractPanelMenuGroup
- || parentItem instanceof AbstractPanelMenu) {
- return parentItem;
- }
-
- parentItem = parentItem.getParent();
- }
-
- return null;
+ return ComponentIterators.getParent(this, PARENT_ITEM_PREDICATE);
}
@Override
@@ -107,24 +89,22 @@
@Attribute
public abstract boolean isDisabled();
- @Attribute
- public abstract boolean isLimitRender();
+ @Attribute(generate = false)
+ public Object getExecute() {
+ Object execute = getStateHelper().eval(Properties.execute);
+ if (execute == null) {
+ execute = "";
+ }
+ return execute + " " + getPanelMenu().getId();
+ }
- @Attribute
- public abstract Object getData();
+ public void setExecute(Object execute) {
+ getStateHelper().put(Properties.execute, execute);
+ }
- @Attribute
- public abstract String getStatus();
-
- @Attribute
- public abstract Object getExecute();
-
- @Attribute
- public abstract Object getRender();
-
// ------------------------------------------------ Html Attributes
enum Properties {
- leftIcon, leftDisabledIcon, iconRight, rightDisabledIcon, styleClass, disabledClass, name
+ leftIcon, leftDisabledIcon, iconRight, rightDisabledIcon, styleClass, disabledClass, execute, name
}
@@ -197,12 +177,6 @@
getStateHelper().put(Properties.styleClass, styleClass);
}
- @Attribute(events = @EventName("beforedomupdate"))
- public abstract String getOnbeforedomupdate();
-
- @Attribute(events = @EventName("complete"))
- public abstract String getOncomplete();
-
@Attribute(events = @EventName("click"))
public abstract String getOnclick();
@@ -232,4 +206,10 @@
@Attribute(events = @EventName("beforeselect"))
public abstract String getOnbeforeselect();
+
+ private static class ParentItemPredicate implements Predicate<UIComponent> {
+ public boolean apply(UIComponent comp) {
+ return comp instanceof AbstractPanelMenuGroup || comp instanceof AbstractPanelMenu;
+ }
+ }
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTab.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTab.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTab.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -23,7 +23,9 @@
package org.richfaces.component;
import org.richfaces.cdk.annotations.*;
+import org.richfaces.renderkit.html.DivPanelRenderer;
+import javax.faces.component.UIComponent;
import javax.faces.component.behavior.ClientBehaviorHolder;
/**
@@ -31,7 +33,7 @@
* @since 2010-10-19
*/
@JsfComponent(tag = @Tag(type = TagType.Facelets), renderer = @JsfRenderer(type = "org.richfaces.TabRenderer"))
-public abstract class AbstractTab extends AbstractTogglePanelTitledItem implements ClientBehaviorHolder {
+public abstract class AbstractTab extends AbstractActionComponent implements AbstractTogglePanelTitledItem, AjaxProps, ClientBehaviorHolder {
public static final String COMPONENT_TYPE = "org.richfaces.Tab";
@@ -41,14 +43,9 @@
setRendererType("org.richfaces.TabRenderer");
}
- public AbstractTabPanel getTabPanel() {
- return (AbstractTabPanel) this.getParent();
- }
-
// ------------------------------------------------ Html Attributes
enum Properties {
- headerDisabledClass, headerInactiveClass, headerClass, contentClass, headerActiveClass
-
+ headerDisabledClass, headerInactiveClass, headerClass, contentClass, execute, headerActiveClass, header
}
@Attribute(generate = false)
@@ -108,10 +105,6 @@
getStateHelper().put(Properties.headerClass, headerClass);
}
-
- @Attribute
- public abstract String getHeaderStyle();
-
@Attribute(generate = false)
public String getContentClass() {
String value = (String) getStateHelper().eval(Properties.contentClass);
@@ -126,62 +119,78 @@
getStateHelper().put(Properties.contentClass, contentClass);
}
- @Attribute(events = @EventName("headerclick"))
- public abstract String getOnheaderclick();
+ @Attribute(generate = false)
+ public Object getExecute() {
+ Object execute = getStateHelper().eval(Properties.execute);
+ if (execute == null) {
+ execute = "";
+ }
+ return execute + " " + getTabPanel().getId();
+ }
- @Attribute(events = @EventName("headerdblclick"))
- public abstract String getOnheaderdblclick();
+ public void setExecute(Object execute) {
+ getStateHelper().put(Properties.execute, execute);
+ }
- @Attribute(events = @EventName("headermousedown"))
- public abstract String getOnheadermousedown();
- @Attribute(events = @EventName("headermousemove"))
- public abstract String getOnheadermousemove();
+ /////////////////////////////////////////////////////////////////////////
- @Attribute(events = @EventName("headermouseup"))
- public abstract String getOnheadermouseup();
+ public UIComponent getHeaderFacet(Enum<?> state) {
+ return getHeaderFacet(this, state);
+ }
- @Attribute(events = @EventName("enter"))
- public abstract String getOnenter();
+ public static UIComponent getHeaderFacet(UIComponent component, Enum<?> state) {
+ UIComponent headerFacet = null;
+ if (state != null) {
+ headerFacet = component.getFacet("header" + DivPanelRenderer.capitalize(state.toString()));
+ }
- @Attribute(events = @EventName("leave"))
- public abstract String getOnleave();
+ if (headerFacet == null) {
+ headerFacet = component.getFacet("header");
+ }
+ return headerFacet;
+ }
- @Attribute
- public abstract String getLang();
+ // ------------------------------------------------ Component Attributes
- @Attribute
- public abstract String getTitle();
+ @Attribute(generate = false)
+ public String getHeader() {
+ return (String) getStateHelper().eval(Properties.header, getName());
+ }
- @Attribute
- public abstract String getStyle();
+ public void setHeader(String header) {
+ getStateHelper().put(Properties.header, header);
+ }
- @Attribute
- public abstract String getStyleClass();
+ // ------------------------------------------------ AbstractTogglePanelItemInterface
- @Attribute
- public abstract String getDir();
+ public AbstractTabPanel getParentPanel() {
+ return ComponentIterators.getParent(this, AbstractTabPanel.class);
+ }
- @Attribute(events = @EventName("click"))
- public abstract String getOnclick();
+ public AbstractTabPanel getTabPanel() {
+ return getParentPanel();
+ }
- @Attribute(events = @EventName("dblclick"))
- public abstract String getOndblclick();
+ public boolean isActive() {
+ return getTabPanel().isActiveItem(this);
+ }
- @Attribute(events = @EventName("mousedown"))
- public abstract String getOnmousedown();
+ public boolean shouldProcess() {
+ return isActive() || getSwitchType() == SwitchType.client;
+ }
- @Attribute(events = @EventName("mousemove"))
- public abstract String getOnmousemove();
+ @Attribute(generate = false)
+ public String getName() {
+ return (String) getStateHelper().eval(AbstractTogglePanelItem.NAME, getId());
+ }
- @Attribute(events = @EventName("mouseout"))
- public abstract String getOnmouseout();
+ public void setName(String name) {
+ getStateHelper().put(AbstractTogglePanelItem.NAME, name);
+ }
- @Attribute(events = @EventName("mouseover"))
- public abstract String getOnmouseover();
-
- @Attribute(events = @EventName("mouseup"))
- public abstract String getOnmouseup();
-
+ public String toString() {
+ return "TogglePanelItem {name: " + getName() + ", switchType: " + getSwitchType() + '}';
+ }
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -33,6 +33,7 @@
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIOutput;
import javax.faces.component.UpdateModelException;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
@@ -65,7 +66,7 @@
*/
@JsfComponent(tag = @Tag(type = TagType.Facelets, handler = "org.richfaces.view.facelets.html.TogglePanelTagHandler"),
renderer = @JsfRenderer(type = "org.richfaces.TogglePanelRenderer"))
-public abstract class AbstractTogglePanel extends AbstractDivPanel implements ItemChangeSource {
+public abstract class AbstractTogglePanel extends UIOutput implements AbstractDivPanel, ItemChangeSource {
public static final String COMPONENT_TYPE = "org.richfaces.TogglePanel";
@@ -153,15 +154,15 @@
@Override
public void encodeBegin(FacesContext context) throws IOException {
- AbstractTogglePanelItem item = null;
+ AbstractTogglePanelItemInterface item = null;
String activeItem = getActiveItem();
if (!Strings.isNullOrEmpty(activeItem)) {
item = this.getItem(activeItem);
}
- if (item == null || !item.isRendered()) {
- List<AbstractTogglePanelItem> renderedItems = this.getRenderedItems();
+ if (item == null || !((UIComponent) item).isRendered()) {
+ List<AbstractTogglePanelItemInterface> renderedItems = this.getRenderedItems();
if (!renderedItems.isEmpty()) {
setActiveItem(renderedItems.get(0).getName());
}
@@ -484,15 +485,15 @@
return null;
}
- if (!(item instanceof AbstractTogglePanelItem)) {
+ if (!(item instanceof AbstractTogglePanelItemInterface)) {
throw new IllegalArgumentException();
}
- return ((AbstractTogglePanelItem) item).getName();
+ return ((AbstractTogglePanelItemInterface) item).getName();
}
- public AbstractTogglePanelItem getItemByIndex(final int index) {
- List<AbstractTogglePanelItem> children = getRenderedItems();
+ public AbstractTogglePanelItemInterface getItemByIndex(final int index) {
+ List<AbstractTogglePanelItemInterface> children = getRenderedItems();
if (index < 0 || index >= children.size()) {
return null;
} else if (isCycledSwitching()) {
@@ -503,22 +504,22 @@
}
}
- public List<AbstractTogglePanelItem> getRenderedItems() {
+ public List<AbstractTogglePanelItemInterface> getRenderedItems() {
return getItems(false);
}
- public List<AbstractTogglePanelItem> getItems(boolean isRendered) {
- List<AbstractTogglePanelItem> res = new ArrayList<AbstractTogglePanelItem>(getChildCount());
+ public List<AbstractTogglePanelItemInterface> getItems(boolean isRendered) {
+ List<AbstractTogglePanelItemInterface> res = new ArrayList<AbstractTogglePanelItemInterface>(getChildCount());
for (UIComponent child : getChildren()) {
- if ((isRendered || child.isRendered()) && child instanceof AbstractTogglePanelItem) {
- res.add((AbstractTogglePanelItem) child);
+ if ((isRendered || child.isRendered()) && child instanceof AbstractTogglePanelItemInterface) {
+ res.add((AbstractTogglePanelItemInterface) child);
}
}
return res;
}
- public AbstractTogglePanelItem getItem(String name) {
+ public AbstractTogglePanelItemInterface getItem(String name) {
if (META_NAME_FIRST.equals(name)) {
return getFirstItem();
} else if (META_NAME_PREV.equals(name)) {
@@ -532,27 +533,27 @@
}
}
- public AbstractTogglePanelItem getFirstItem() {
+ public AbstractTogglePanelItemInterface getFirstItem() {
return getItemByIndex(0);
}
- public AbstractTogglePanelItem getPrevItem() {
+ public AbstractTogglePanelItemInterface getPrevItem() {
return getPrevItem(getActiveItem());
}
- public AbstractTogglePanelItem getPrevItem(String name) {
+ public AbstractTogglePanelItemInterface getPrevItem(String name) {
return getItemByIndex(getChildIndex(name) - 1);
}
- public AbstractTogglePanelItem getNextItem() {
+ public AbstractTogglePanelItemInterface getNextItem() {
return getNextItem(getActiveItem());
}
- public AbstractTogglePanelItem getNextItem(String name) {
+ public AbstractTogglePanelItemInterface getNextItem(String name) {
return getItemByIndex(getChildIndex(name) + 1);
}
- public AbstractTogglePanelItem getLastItem() {
+ public AbstractTogglePanelItemInterface getLastItem() {
return getItemByIndex(getRenderedItems().size() - 1);
}
@@ -561,7 +562,7 @@
throw new IllegalArgumentException("Name is required parameter.");
}
- List<AbstractTogglePanelItem> items = getRenderedItems();
+ List<AbstractTogglePanelItemInterface> items = getRenderedItems();
for (int ind = 0; ind < items.size(); ind++) {
if (name.equals(items.get(ind).getName())) {
return ind;
@@ -647,42 +648,6 @@
@Attribute(events = @EventName("beforeitemchange"))
public abstract String getOnbeforeitemchange();
- @Attribute
- public abstract String getLang();
-
- @Attribute
- public abstract String getTitle();
-
- @Attribute
- public abstract String getStyle();
-
- @Attribute
- public abstract String getStyleClass();
-
- @Attribute
- public abstract String getDir();
-
- @Attribute(events = @EventName("click"))
- public abstract String getOnclick();
-
- @Attribute(events = @EventName("dblclick"))
- public abstract String getOndblclick();
-
- @Attribute(events = @EventName("mousedown"))
- public abstract String getOnmousedown();
-
- @Attribute(events = @EventName("mousemove"))
- public abstract String getOnmousemove();
-
- @Attribute(events = @EventName("mouseout"))
- public abstract String getOnmouseout();
-
- @Attribute(events = @EventName("mouseover"))
- public abstract String getOnmouseover();
-
- @Attribute(events = @EventName("mouseup"))
- public abstract String getOnmouseup();
-
// ------------------------------------------------ Event Processing Methods
public void addItemChangeListener(ItemChangeListener listener) {
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelItem.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelItem.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelItem.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -23,12 +23,13 @@
package org.richfaces.component;
import org.richfaces.cdk.annotations.Attribute;
-import org.richfaces.cdk.annotations.EventName;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.cdk.annotations.TagType;
+import javax.faces.component.UIOutput;
+
/**
* @author akolonitsky
* @version 1.0
@@ -36,12 +37,12 @@
@JsfComponent(
tag = @Tag(type = TagType.Facelets),
renderer = @JsfRenderer(type = "org.richfaces.TogglePanelItemRenderer"))
-public abstract class AbstractTogglePanelItem extends AbstractDivPanel {
+public abstract class AbstractTogglePanelItem extends UIOutput implements AbstractTogglePanelItemInterface {
public static final String COMPONENT_TYPE = "org.richfaces.TogglePanelItem";
public static final String COMPONENT_FAMILY = "org.richfaces.TogglePanelItem";
- private static final String NAME = "name";
+ protected static final String NAME = "name";
protected AbstractTogglePanelItem() {
setRendererType("org.richfaces.TogglePanelItemRenderer");
@@ -52,13 +53,6 @@
return COMPONENT_FAMILY;
}
-/*
- @Override
- public AbstractTogglePanel getParent() {
- return (AbstractTogglePanel) super.getParent();
- }
-*/
-
public AbstractTogglePanel getParentPanel() {
return ComponentIterators.getParent(this, AbstractTogglePanel.class);
}
@@ -67,9 +61,13 @@
return getParentPanel().isActiveItem(this);
}
+ public boolean shouldProcess() {
+ return isActive() || getSwitchType() == SwitchType.client;
+ }
+
// ------------------------------------------------ Component Attributes
- @Attribute(defaultValue = "getId()", generate = false)
+ @Attribute(generate = false)
public String getName() {
return (String) getStateHelper().eval(NAME, getId());
}
@@ -78,54 +76,6 @@
getStateHelper().put(NAME, name);
}
- @Attribute(defaultValue = "getParentPanel().getSwitchType()")
- public abstract SwitchType getSwitchType();
-
- // ------------------------------------------------ Html Attributes
-
- @Attribute(events = @EventName("enter"))
- public abstract String getOnenter();
-
- @Attribute(events = @EventName("leave"))
- public abstract String getOnleave();
-
- @Attribute
- public abstract String getLang();
-
- @Attribute
- public abstract String getTitle();
-
- @Attribute
- public abstract String getStyle();
-
- @Attribute
- public abstract String getStyleClass();
-
- @Attribute
- public abstract String getDir();
-
- @Attribute(events = @EventName("click"))
- public abstract String getOnclick();
-
- @Attribute(events = @EventName("dblclick"))
- public abstract String getOndblclick();
-
- @Attribute(events = @EventName("mousedown"))
- public abstract String getOnmousedown();
-
- @Attribute(events = @EventName("mousemove"))
- public abstract String getOnmousemove();
-
- @Attribute(events = @EventName("mouseout"))
- public abstract String getOnmouseout();
-
- @Attribute(events = @EventName("mouseover"))
- public abstract String getOnmouseover();
-
- @Attribute(events = @EventName("mouseup"))
- public abstract String getOnmouseup();
-
-
public String toString() {
return "TogglePanelItem {name: " + getName() + ", switchType: " + getSwitchType() + '}';
}
Added: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelItemInterface.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelItemInterface.java (rev 0)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelItemInterface.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -0,0 +1,28 @@
+package org.richfaces.component;
+
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.EventName;
+
+public interface AbstractTogglePanelItemInterface extends AbstractDivPanel {
+
+ AbstractTogglePanel getParentPanel();
+
+ boolean isActive();
+
+ boolean shouldProcess();
+
+ // ------------------------------------------------ Component Attributes
+
+ String getName();
+
+ @Attribute(defaultValue = "getParentPanel().getSwitchType()")
+ SwitchType getSwitchType();
+
+ // ------------------------------------------------ Html Attributes
+
+ @Attribute(events = @EventName("enter"))
+ String getOnenter();
+
+ @Attribute(events = @EventName("leave"))
+ String getOnleave();
+}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelTitledItem.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelTitledItem.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanelTitledItem.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -24,22 +24,15 @@
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
-import org.richfaces.renderkit.html.DivPanelRenderer;
-import javax.faces.component.UIComponent;
-
import static org.richfaces.renderkit.html.DivPanelRenderer.capitalize;
/**
* @author akolonitsky
* @since 2010-08-05
*/
-public abstract class AbstractTogglePanelTitledItem extends AbstractTogglePanelItem {
+public interface AbstractTogglePanelTitledItem extends AbstractTogglePanelItemInterface {
- public static final String COMPONENT_TYPE = "org.richfaces.TogglePanelTitledItem";
-
- public static final String COMPONENT_FAMILY = "org.richfaces.TogglePanelTitledItem";
-
public enum HeaderStates {
active("act"),
inactive("inact"),
@@ -63,43 +56,13 @@
}
}
- @Override
- public String getFamily() {
- return COMPONENT_FAMILY;
- }
-
- public UIComponent getHeaderFacet(Enum<?> state) {
- return getHeaderFacet(this, state);
- }
-
- public static UIComponent getHeaderFacet(UIComponent component, Enum<?> state) {
- UIComponent headerFacet = null;
- if (state != null) {
- headerFacet = component.getFacet("header" + DivPanelRenderer.capitalize(state.toString()));
- }
-
- if (headerFacet == null) {
- headerFacet = component.getFacet("header");
- }
- return headerFacet;
- }
-
// ------------------------------------------------ Component Attributes
- enum Properties {
- header
- }
@Attribute
- public abstract boolean isDisabled();
+ boolean isDisabled();
- @Attribute(generate = false)
- public String getHeader() {
- return (String) getStateHelper().eval(Properties.header, getName());
- }
+ String getHeader();
- public void setHeader(String header) {
- getStateHelper().put(Properties.header, header);
- }
// ------------------------------------------------ Html Attributes
@Attribute
@@ -134,47 +97,4 @@
@Attribute(events = @EventName("headermouseup"))
public abstract String getOnheadermouseup();
-
- @Attribute(events = @EventName("enter"))
- public abstract String getOnenter();
-
- @Attribute(events = @EventName("leave"))
- public abstract String getOnleave();
-
- @Attribute
- public abstract String getLang();
-
- @Attribute
- public abstract String getTitle();
-
- @Attribute
- public abstract String getStyle();
-
- @Attribute
- public abstract String getStyleClass();
-
- @Attribute
- public abstract String getDir();
-
- @Attribute(events = @EventName("click"))
- public abstract String getOnclick();
-
- @Attribute(events = @EventName("dblclick"))
- public abstract String getOndblclick();
-
- @Attribute(events = @EventName("mousedown"))
- public abstract String getOnmousedown();
-
- @Attribute(events = @EventName("mousemove"))
- public abstract String getOnmousemove();
-
- @Attribute(events = @EventName("mouseout"))
- public abstract String getOnmouseout();
-
- @Attribute(events = @EventName("mouseover"))
- public abstract String getOnmouseover();
-
- @Attribute(events = @EventName("mouseup"))
- public abstract String getOnmouseup();
-
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTooltip.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTooltip.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTooltip.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -25,6 +25,7 @@
import java.io.IOException;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIOutput;
import javax.faces.component.visit.VisitCallback;
import javax.faces.component.visit.VisitContext;
import javax.faces.component.visit.VisitResult;
@@ -48,7 +49,7 @@
*/
@JsfComponent(tag = @Tag(type = TagType.Facelets),
renderer = @JsfRenderer(type = "org.richfaces.TooltipRenderer"), attributes = {"tooltip-props.xml", "ajax-props.xml"})
-public abstract class AbstractTooltip extends AbstractDivPanel implements MetaComponentResolver, MetaComponentEncoder {
+public abstract class AbstractTooltip extends UIOutput implements AbstractDivPanel, MetaComponentResolver, MetaComponentEncoder {
public static final String COMPONENT_TYPE = "org.richfaces.Tooltip";
Added: trunk/ui/output/ui/src/main/java/org/richfaces/component/AjaxProps.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AjaxProps.java (rev 0)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AjaxProps.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -0,0 +1,31 @@
+package org.richfaces.component;
+
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.EventName;
+
+public interface AjaxProps {
+
+ @Attribute
+ Object getExecute();
+
+ @Attribute
+ Object getRender();
+
+ @Attribute(defaultValue = "false")
+ boolean isLimitRender();
+
+ @Attribute
+ String getStatus();
+
+ @Attribute
+ Object getData();
+
+ @Attribute(events = @EventName("begin"))
+ String getOnbegin();
+
+ @Attribute(events = @EventName("beforedomupdate"))
+ String getOnbeforedomupdate();
+
+ @Attribute(events = @EventName("complete"))
+ String getOncomplete();
+}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/behavior/ToggleControl.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/behavior/ToggleControl.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/behavior/ToggleControl.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -31,6 +31,7 @@
import org.ajax4jsf.component.behavior.ClientBehavior;
import org.richfaces.cdk.annotations.*;
import org.richfaces.component.AbstractTogglePanel;
+import org.richfaces.component.ComponentIterators;
import org.richfaces.renderkit.util.RendererUtils;
/**
@@ -119,17 +120,13 @@
return null;
}
- UIComponent control = comp;
- while (control != null) {
- if (control instanceof AbstractTogglePanel) {
- return (AbstractTogglePanel) control;
- }
-
- control = control.getParent();
+ AbstractTogglePanel panel = ComponentIterators.getParent(comp, AbstractTogglePanel.class);
+ if (panel == null) {
+ throw new FacesException("Parent panel for control (id="
+ + comp.getClientId(FacesContext.getCurrentInstance()) + ") has not been found.");
}
-
- throw new FacesException("Parent panel for control (id="
- + comp.getClientId(FacesContext.getCurrentInstance()) + ") has not been found.");
+
+ return panel;
}
@Override
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/AccordionItemHeaderRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/AccordionItemHeaderRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/AccordionItemHeaderRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -27,7 +27,7 @@
}
protected void encodeHeaderRightIcon(ResponseWriter writer, FacesContext context, AbstractAccordionItem panel) throws IOException {
- String iconInactive = panel.isDisabled() ? panel.getRightDisabledIcon() : panel.getRightInactiveIcon();
+ String iconInactive = panel.isDisabled() ? panel.getRightDisabledIcon() : panel.getInactiveRightIcon();
String iconActive = panel.isDisabled() ? panel.getRightDisabledIcon() : panel.getRightActiveIcon();
//TODO nick - should this be "-ico-exp"? also why expanded icon state is connected with right icon alignment?
@@ -63,9 +63,9 @@
}
}
- private static void encodeHeader(ResponseWriter writer, FacesContext context, AbstractTogglePanelTitledItem component,
+ private static void encodeHeader(ResponseWriter writer, FacesContext context, AbstractAccordionItem component,
AbstractTogglePanelTitledItem.HeaderStates state) throws IOException {
- writer.startElement(DIV_ELEM, component);
+ writer.startElement(DIV_ELEM, null);
writer.writeAttribute(CLASS_ATTRIBUTE, HtmlUtil.concatClasses("rf-ac-itm-lbl-" + state.abbreviation(), attributeAsString(component, state.headerClass())), null);
writeFacetOrAttr(writer, context, component, "header", component.getHeaderFacet(state));
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/AccordionItemRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/AccordionItemRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/AccordionItemRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -166,7 +166,7 @@
@Override
protected Class<? extends UIComponent> getComponentClass() {
- return AbstractTogglePanelTitledItem.class;
+ return AbstractAccordionItem.class;
}
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/DivPanelRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/DivPanelRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/DivPanelRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -22,28 +22,26 @@
package org.richfaces.renderkit.html;
-import static org.richfaces.renderkit.HtmlConstants.CLASS_ATTRIBUTE;
-import static org.richfaces.renderkit.HtmlConstants.ID_ATTRIBUTE;
-import static org.richfaces.renderkit.RenderKitUtils.attributes;
-import static org.richfaces.renderkit.RenderKitUtils.renderPassThroughAttributes;
+import org.richfaces.renderkit.HtmlConstants;
+import org.richfaces.renderkit.RenderKitUtils;
+import org.richfaces.renderkit.RendererBase;
-import java.io.IOException;
-import java.util.Map;
-
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
+import java.io.IOException;
+import java.util.Map;
-import org.richfaces.component.AbstractDivPanel;
-import org.richfaces.renderkit.HtmlConstants;
-import org.richfaces.renderkit.RenderKitUtils;
-import org.richfaces.renderkit.RendererBase;
+import static org.richfaces.renderkit.HtmlConstants.CLASS_ATTRIBUTE;
+import static org.richfaces.renderkit.HtmlConstants.ID_ATTRIBUTE;
+import static org.richfaces.renderkit.RenderKitUtils.attributes;
+import static org.richfaces.renderkit.RenderKitUtils.renderPassThroughAttributes;
/**
* @author akolonitsky
*
*/
-public class DivPanelRenderer extends RendererBase {
+public abstract class DivPanelRenderer extends RendererBase {
private static final RenderKitUtils.Attributes PASS_THROUGH_ATTRIBUTES = attributes(
"lang",
@@ -155,10 +153,5 @@
protected Map<String, Object> getScriptObjectOptions(FacesContext context, UIComponent component) {
return null;
}
-
- @Override
- protected Class<? extends UIComponent> getComponentClass() {
- return AbstractDivPanel.class;
- }
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -86,7 +86,7 @@
context.getPartialViewContext().getRenderIds().add(clientId);
//TODO nick - this should be done on encode, not on decode
- PanelMenuRenderer.addOnCompleteParam(context, clientId);
+ PanelMenuItemRenderer.addOnCompleteParam(context, clientId);
}
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuItemRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuItemRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuItemRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -23,29 +23,27 @@
package org.richfaces.renderkit.html;
-import static org.richfaces.renderkit.HtmlConstants.CLASS_ATTRIBUTE;
-import static org.richfaces.renderkit.HtmlConstants.TBODY_ELEMENT;
-import static org.richfaces.renderkit.HtmlConstants.TD_ELEM;
-import static org.richfaces.renderkit.HtmlConstants.TR_ELEMENT;
-import static org.richfaces.renderkit.html.TogglePanelRenderer.addEventOption;
-import static org.richfaces.renderkit.html.TogglePanelRenderer.getAjaxOptions;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-
import org.ajax4jsf.javascript.JSObject;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.component.AbstractPanelMenuItem;
+import org.richfaces.context.ExtendedPartialViewContext;
import org.richfaces.renderkit.HtmlConstants;
import org.richfaces.renderkit.RenderKitUtils;
import org.richfaces.renderkit.util.PanelIcons;
import org.richfaces.renderkit.util.PanelIcons.State;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.event.ActionEvent;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.richfaces.renderkit.HtmlConstants.*;
+import static org.richfaces.renderkit.html.TogglePanelRenderer.addEventOption;
+import static org.richfaces.renderkit.html.TogglePanelRenderer.getAjaxOptions;
+
/**
* @author akolonitsky
* @since 2010-10-25
@@ -61,6 +59,33 @@
private static final String TOP_CSS_CLASS_PREFIX = "rf-pm-top-itm";
@Override
+ protected void doDecode(FacesContext context, UIComponent component) {
+
+ Map<String, String> requestMap =
+ context.getExternalContext().getRequestParameterMap();
+
+ String compClientId = component.getClientId(context);
+ if (requestMap.get(compClientId) != null) {
+ AbstractPanelMenuItem panelItem = (AbstractPanelMenuItem) component;
+ new ActionEvent(panelItem).queue();
+
+ if (context.getPartialViewContext().isPartialRequest()) {
+
+ //TODO nick - why render item by default?
+ context.getPartialViewContext().getRenderIds().add(panelItem.getClientId(context));
+
+ //TODO nick - this should be done on encode, not on decode
+ addOnCompleteParam(context, panelItem.getClientId(context));
+ }
+ }
+ }
+
+ protected static void addOnCompleteParam(FacesContext context, String itemId) {
+ ExtendedPartialViewContext.getInstance(context).appendOncomplete(new StringBuilder()
+ .append("RichFaces.$('").append(itemId).append("').onCompleteHandler();").toString());
+ }
+
+ @Override
protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
super.doEncodeBegin(writer, context, component);
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/PanelMenuRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -26,8 +26,6 @@
import org.ajax4jsf.javascript.JSObject;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.component.AbstractPanelMenu;
-import org.richfaces.component.AbstractPanelMenuItem;
-import org.richfaces.context.ExtendedPartialViewContext;
import org.richfaces.renderkit.HtmlConstants;
import javax.faces.application.ResourceDependencies;
@@ -35,7 +33,6 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import javax.faces.event.ActionEvent;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@@ -71,31 +68,8 @@
if (newValue != null) {
panelMenu.setSubmittedActiveItem(newValue);
}
-
- //TODO nick - I suggest to get this code moved to item renderer
- String compClientId = component.getClientId(context);
- if (requestMap.get(compClientId) != null) {
- AbstractPanelMenuItem panelItem = panelMenu.getItem(newValue);
- if (panelItem != null) {
- new ActionEvent(panelItem).queue();
-
- if (context.getPartialViewContext().isPartialRequest()) {
-
- //TODO nick - why render item by default?
- context.getPartialViewContext().getRenderIds().add(panelItem.getClientId(context));
-
- //TODO nick - this should be done on encode, not on decode
- addOnCompleteParam(context, panelItem.getClientId(context));
- }
- }
- }
}
- protected static void addOnCompleteParam(FacesContext context, String itemId) {
- ExtendedPartialViewContext.getInstance(context).appendOncomplete(new StringBuilder()
- .append("RichFaces.$('").append(itemId).append("').onCompleteHandler();").toString());
- }
-
@Override
protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
super.doEncodeBegin(writer, context, component);
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -46,11 +46,9 @@
import org.ajax4jsf.javascript.JSObject;
import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.component.AbstractTabPanel;
-import org.richfaces.component.AbstractTogglePanel;
-import org.richfaces.component.AbstractTogglePanelItem;
-import org.richfaces.component.AbstractTogglePanelTitledItem;
+import org.richfaces.component.*;
import org.richfaces.component.util.HtmlUtil;
+import org.richfaces.context.ExtendedPartialViewContext;
import org.richfaces.renderkit.HtmlConstants;
import org.richfaces.renderkit.RenderKitUtils;
@@ -82,6 +80,42 @@
private static final String STYLE = STYLE_ATTRIBUTE;
private static final String CLASS = CLASS_ATTRIBUTE;
+// @Override
+// protected void doDecode(FacesContext context, UIComponent component) {
+// AbstractTogglePanel panel = (AbstractTogglePanel) component;
+//
+// Map<String, String> requestMap =
+// context.getExternalContext().getRequestParameterMap();
+//
+// // Don't overwrite the value unless you have to!
+// String newValue = requestMap.get(getValueRequestParamName(context, component));
+// if (newValue != null) {
+// panel.setSubmittedActiveItem(newValue);
+// }
+//
+// String tabClientId = component.getClientId(context);
+// if (requestMap.get(tabClientId) != null) {
+// new ActionEvent(component).queue();
+//
+// if (context.getPartialViewContext().isPartialRequest()) {
+// //TODO nick - why render item by default?
+// context.getPartialViewContext().getRenderIds().add(tabClientId);
+//
+// //TODO nick - this should be done on encode, not on decode
+// AbstractTab tab = (AbstractTab) component;
+// addOnCompleteParam(context, tab.getName(), tab.getTabPanel().getClientId(context));
+// }
+// }
+// }
+
+ protected static void addOnCompleteParam(FacesContext context, String newValue, String panelId) {
+ StringBuilder onComplete = new StringBuilder();
+ onComplete.append("RichFaces.$('").append(panelId)
+ .append("').onCompleteHandler('").append(newValue).append("');");
+
+ ExtendedPartialViewContext.getInstance(context).appendOncomplete(onComplete.toString());
+ }
+
@Override
protected void doEncodeBegin(ResponseWriter w, FacesContext context, UIComponent component) throws IOException {
super.doEncodeBegin(w, context, component);
@@ -108,8 +142,8 @@
writeTopTabFirstSpacer(w, comp);
- for (AbstractTogglePanelItem item : ((AbstractTogglePanel) comp).getRenderedItems()) {
- AbstractTogglePanelTitledItem tab = (AbstractTogglePanelTitledItem) item;
+ for (AbstractTogglePanelItemInterface item : ((AbstractTogglePanel) comp).getRenderedItems()) {
+ AbstractTab tab = (AbstractTab) item;
writeTopTabHeader(context, w, tab);
writeTopTabSpacer(w, comp);
}
@@ -137,7 +171,7 @@
return HtmlUtil.concatClasses("rf-tbp", attributeAsString(component, "styleClass"));
}
- private void writeTopTabHeader(FacesContext context, ResponseWriter writer, AbstractTogglePanelTitledItem tab) throws IOException {
+ private void writeTopTabHeader(FacesContext context, ResponseWriter writer, AbstractTab tab) throws IOException {
boolean isActive = tab.isActive();
boolean isDisabled = tab.isDisabled();
@@ -147,7 +181,7 @@
}
- private void encodeTabHeader(FacesContext context, AbstractTogglePanelTitledItem tab, ResponseWriter writer,
+ private void encodeTabHeader(FacesContext context, AbstractTab tab, ResponseWriter writer,
AbstractTogglePanelTitledItem.HeaderStates state, Boolean isDisplay) throws IOException {
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -22,24 +22,21 @@
package org.richfaces.renderkit.html;
-import static org.richfaces.renderkit.HtmlConstants.CLASS_ATTRIBUTE;
-import static org.richfaces.renderkit.HtmlConstants.DIV_ELEM;
-import static org.richfaces.renderkit.HtmlConstants.ID_ATTRIBUTE;
+import org.ajax4jsf.javascript.JSObject;
+import org.richfaces.cdk.annotations.JsfRenderer;
+import org.richfaces.component.AbstractTab;
+import org.richfaces.component.AbstractTogglePanelItemInterface;
+import org.richfaces.renderkit.HtmlConstants;
-import java.io.IOException;
-import java.util.Map;
-
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
+import java.io.IOException;
+import java.util.Map;
-import org.ajax4jsf.javascript.JSObject;
-import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.component.AbstractTab;
-import org.richfaces.component.AbstractTogglePanelTitledItem;
-import org.richfaces.renderkit.HtmlConstants;
+import static org.richfaces.renderkit.HtmlConstants.*;
/**
* @author akolonitsky
@@ -76,7 +73,7 @@
AbstractTab tab = (AbstractTab) component;
- if (!tab.isDisabled()) {
+ if (tab.shouldProcess() && !tab.isDisabled()) {
super.doEncodeChildren(writer, context, tab);
}
}
@@ -122,15 +119,15 @@
protected Map<String, Object> getScriptObjectOptions(FacesContext context, UIComponent component) {
Map<String, Object> res = super.getScriptObjectOptions(context, component);
res.put("disabled", ((AbstractTab) component).isDisabled());
- res.put("enter", ((AbstractTab) component).getOnenter());
- res.put("leave", ((AbstractTab) component).getOnleave());
+ res.put("enter", ((AbstractTogglePanelItemInterface) component).getOnenter());
+ res.put("leave", ((AbstractTogglePanelItemInterface) component).getOnleave());
return res;
}
@Override
protected Class<? extends UIComponent> getComponentClass() {
- return AbstractTogglePanelTitledItem.class;
+ return AbstractTab.class;
}
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelItemRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelItemRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelItemRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -22,22 +22,22 @@
package org.richfaces.renderkit.html;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
+import org.ajax4jsf.javascript.JSObject;
+import org.richfaces.cdk.annotations.JsfRenderer;
+import org.richfaces.component.AbstractTogglePanel;
+import org.richfaces.component.AbstractTogglePanelItem;
+import org.richfaces.component.AbstractTogglePanelItemInterface;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
-import org.ajax4jsf.javascript.JSObject;
-import org.richfaces.cdk.annotations.JsfRenderer;
-import org.richfaces.component.AbstractTogglePanel;
-import org.richfaces.component.AbstractTogglePanelItem;
-import org.richfaces.component.SwitchType;
-import org.richfaces.component.util.HtmlUtil;
+import static org.richfaces.renderkit.HtmlConstants.*;
/**
* @author akolonitsky
@@ -57,15 +57,15 @@
private static final String ENTER = "enter";
private final boolean hideInactiveItems;
-
+
public TogglePanelItemRenderer() {
this(true);
}
-
+
protected TogglePanelItemRenderer(boolean hideInactiveItems) {
this.hideInactiveItems = hideInactiveItems;
}
-
+
@Override
protected String getStyleClass(UIComponent component) {
return concatClasses("rf-tgp-itm", attributeAsString(component, "styleClass"));
@@ -79,16 +79,15 @@
@Override
protected Map<String, Object> getScriptObjectOptions(FacesContext context, UIComponent component) {
- AbstractTogglePanelItem panelItem = (AbstractTogglePanelItem) component;
+ AbstractTogglePanelItemInterface panelItem = (AbstractTogglePanelItemInterface) component;
Map<String, Object> options = new HashMap<String, Object>();
options.put("name", panelItem.getName());
- options.put("togglePanelId", panelItem.getParent().getClientId(context));
+ options.put("togglePanelId", component.getParent().getClientId(context));
options.put("switchMode", panelItem.getSwitchType());
- AbstractTogglePanelItem item = (AbstractTogglePanelItem) component;
- AbstractTogglePanel panel = item.getParentPanel();
- options.put("index", panel.getChildIndex(item.getName()));
+ AbstractTogglePanel panel = panelItem.getParentPanel();
+ options.put("index", panel.getChildIndex(panelItem.getName()));
TogglePanelRenderer.addEventOption(context, component, options, LEAVE);
TogglePanelRenderer.addEventOption(context, component, options, ENTER);
@@ -106,27 +105,21 @@
return true;
}
- protected void encodePlaceHolderWithJs(FacesContext context, AbstractTogglePanelItem item) throws IOException {
+ protected void encodePlaceHolderWithJs(FacesContext context, UIComponent item) throws IOException {
ResponseWriter writer = context.getResponseWriter();
- writer.startElement("div", null);
- writer.writeAttribute("id", item.getClientId(context), null);
- writer.writeAttribute("style", "display:none;", null);
+ writer.startElement(DIV_ELEM, null);
+ writer.writeAttribute(ID_ATTRIBUTE, item.getClientId(context), null);
+ writer.writeAttribute(STYLE_ATTRIBUTE, "display:none;", null);
writeJavaScript(writer, context, item);
- writer.endElement("div");
+ writer.endElement(DIV_ELEM);
}
- private boolean shouldEncodeItem(FacesContext context, AbstractTogglePanelItem item) {
- return item.isActive() || item.getSwitchType() == SwitchType.client;
- }
-
@Override
protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
- AbstractTogglePanelItem item = (AbstractTogglePanelItem) component;
-
- if (shouldEncodeItem(context, item)) {
+ if (((AbstractTogglePanelItemInterface) component).shouldProcess()) {
doEncodeItemBegin(writer, context, component);
}
}
@@ -135,29 +128,25 @@
protected void doEncodeChildren(ResponseWriter writer, FacesContext context, UIComponent component)
throws IOException {
- AbstractTogglePanelItem item = (AbstractTogglePanelItem) component;
-
- if (shouldEncodeItem(context, item)) {
+ if (((AbstractTogglePanelItemInterface) component).shouldProcess()) {
renderChildren(context, component);
}
}
@Override
protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
- AbstractTogglePanelItem item = (AbstractTogglePanelItem) component;
-
- if (shouldEncodeItem(context, item)) {
+ if (((AbstractTogglePanelItemInterface) component).shouldProcess()) {
doEncodeItemEnd(writer, context, component);
} else {
- encodePlaceHolderWithJs(context, item);
+ encodePlaceHolderWithJs(context, component);
}
}
@Override
protected String getStyle(UIComponent component) {
String attributeStyle = super.getStyle(component);
- if (hideInactiveItems && !((AbstractTogglePanelItem) component).isActive()) {
- return HtmlUtil.concatStyles(attributeStyle, "display: none");
+ if (hideInactiveItems && !((AbstractTogglePanelItemInterface) component).isActive()) {
+ return concatStyles(attributeStyle, "display: none");
} else {
return attributeStyle;
}
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -22,22 +22,12 @@
package org.richfaces.renderkit.html;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.faces.application.ResourceDependencies;
-import javax.faces.application.ResourceDependency;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-
import org.ajax4jsf.javascript.JSFunctionDefinition;
import org.ajax4jsf.javascript.JSObject;
import org.ajax4jsf.javascript.JSReference;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.component.AbstractTogglePanel;
-import org.richfaces.component.AbstractTogglePanelItem;
+import org.richfaces.component.AbstractTogglePanelItemInterface;
import org.richfaces.component.util.HtmlUtil;
import org.richfaces.context.ExtendedPartialViewContext;
import org.richfaces.renderkit.AjaxOptions;
@@ -46,16 +36,25 @@
import org.richfaces.renderkit.util.FormUtil;
import org.richfaces.renderkit.util.HandlersChain;
+import javax.faces.application.ResourceDependencies;
+import javax.faces.application.ResourceDependency;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* @author akolonitsky
*/
@ResourceDependencies({
- @ResourceDependency(library = "javax.faces", name = "jsf.js"),
- @ResourceDependency(name = "jquery.js"),
- @ResourceDependency(name = "richfaces.js"),
- @ResourceDependency(name = "richfaces-event.js"),
- @ResourceDependency(name = "richfaces-base-component.js"),
- @ResourceDependency(library = "org.richfaces", name = "togglePanel.js") })
+ @ResourceDependency(library = "javax.faces", name = "jsf.js"),
+ @ResourceDependency(name = "jquery.js"),
+ @ResourceDependency(name = "richfaces.js"),
+ @ResourceDependency(name = "richfaces-event.js"),
+ @ResourceDependency(name = "richfaces-base-component.js"),
+ @ResourceDependency(library = "org.richfaces", name = "togglePanel.js")})
@JsfRenderer(type = "org.richfaces.TogglePanelRenderer", family = AbstractTogglePanel.COMPONENT_FAMILY)
public class TogglePanelRenderer extends DivPanelRenderer {
@@ -68,9 +67,9 @@
@Override
protected void doDecode(FacesContext context, UIComponent component) {
AbstractTogglePanel panel = (AbstractTogglePanel) component;
-
+
Map<String, String> requestMap =
- context.getExternalContext().getRequestParameterMap();
+ context.getExternalContext().getRequestParameterMap();
// Don't overwrite the value unless you have to!
String newValue = requestMap.get(getValueRequestParamName(context, component));
@@ -79,22 +78,22 @@
}
String compClientId = component.getClientId(context);
- String clientId = requestMap.get(compClientId);
- if (clientId != null && clientId.equals(compClientId)) {
- AbstractTogglePanelItem panelItem = panel.getItem(newValue);
- if (panelItem != null) {
- context.getPartialViewContext().getRenderIds().add(panelItem.getClientId(context));
-
- //TODO nick - this should be done on encode, not on decode
- addOnCompleteParam(context, newValue, panel.getClientId(context));
- }
+// String clientId = requestMap.get(compClientId);
+// if (clientId != null && clientId.equals(compClientId)) {
+ AbstractTogglePanelItemInterface panelItem = panel.getItem(newValue);
+ if (panelItem != null) {
+ context.getPartialViewContext().getRenderIds().add(((UIComponent) panelItem).getClientId(context));
+
+ //TODO nick - this should be done on encode, not on decode
+ addOnCompleteParam(context, newValue, panel.getClientId(context));
}
+// }
}
protected static void addOnCompleteParam(FacesContext context, String newValue, String panelId) {
StringBuilder onComplete = new StringBuilder();
onComplete.append("RichFaces.$('").append(panelId)
- .append("').onCompleteHandler('").append(newValue).append("');");
+ .append("').onCompleteHandler('").append(newValue).append("');");
ExtendedPartialViewContext.getInstance(context).appendOncomplete(onComplete.toString());
}
@@ -140,7 +139,7 @@
@Override
protected JSObject getScriptObject(FacesContext context, UIComponent component) {
return new JSObject("RichFaces.ui.TogglePanel",
- component.getClientId(context), getScriptObjectOptions(context, component));
+ component.getClientId(context), getScriptObjectOptions(context, component));
}
@Override
@@ -159,7 +158,7 @@
}
public static void addEventOption(FacesContext context, UIComponent component, Map<String, Object> options,
- String eventName) {
+ String eventName) {
HandlersChain handlersChain = new HandlersChain(context, component);
handlersChain.addInlineHandlerFromAttribute(ON + eventName);
@@ -169,7 +168,7 @@
String handler = handlersChain.toScript();
if (handler != null) {
options.put(ON + eventName,
- new JSFunctionDefinition(JSReference.EVENT).addToBody(handler));
+ new JSFunctionDefinition(JSReference.EVENT).addToBody(handler));
}
}
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuGroup.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuGroup.js 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuGroup.js 2011-02-04 12:33:53 UTC (rev 21448)
@@ -129,6 +129,7 @@
var menuGroup = this;
if (!this.options.selectable) {
+
//TODO nick - this can be replaced by jQuery.delegate on menu itself
if (this.options.expandEvent == this.options.collapseEvent) {
this.__header().bind(this.options.expandEvent, function () {
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuItem.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuItem.js 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/panelMenuItem.js 2011-02-04 12:33:53 UTC (rev 21448)
@@ -78,7 +78,7 @@
execAjax : function (item) {
var oldItem = item.__changeState();
//TODO nick - check for interaction with queue
- rf.ajax(item.__panelMenu().id, null, $.extend({}, item.options["ajax"], {}));
+ rf.ajax(item.id, null, $.extend({}, item.options["ajax"], {}));
item.__restoreState(oldItem);
return true;
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.js 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.js 2011-02-04 12:33:53 UTC (rev 21448)
@@ -24,6 +24,110 @@
rf.ui = rf.ui || {};
+ var ITEMS_SWITCHER = {
+
+ /**
+ * @param {TogglePanelItem} oldPanel
+ * @param {TogglePanelItem} newPanel
+ *
+ * @return {void}
+ * */
+ exec : function (oldPanel, newPanel) {
+ if (newPanel.switchMode == "server") {
+ return this.execServer(oldPanel, newPanel);
+ } else if (newPanel.switchMode == "ajax") {
+ return this.execAjax(oldPanel, newPanel);
+ } else if (newPanel.switchMode == "client") {
+ return this.execClient(oldPanel, newPanel);
+ } else {
+ rf.log.error("SwitchItems.exec : unknown switchMode (" + newPanel.switchMode + ")");
+ }
+ },
+
+ /**
+ * @protected
+ * @param {TogglePanelItem} oldPanel
+ * @param {TogglePanelItem} newPanel
+ *
+ * @return {Boolean} false
+ * */
+ execServer : function (oldPanel, newPanel) {
+ if (oldPanel) {
+ var continueProcess = oldPanel.__leave();
+ if (!continueProcess) {
+ return false;
+ }
+ }
+
+ this.__setActiveItem(newPanel);
+
+ rf.submitForm(this.__getParentForm(newPanel));
+
+ return false;
+ },
+
+ /**
+ * @protected
+ * @param {TogglePanelItem} oldPanel
+ * @param {TogglePanelItem} newPanel
+ *
+ * @return {Boolean} false
+ * */
+ execAjax : function (oldPanel, newPanel) {
+ var options = $.extend({}, newPanel.getTogglePanel().options["ajax"], {});
+
+ this.__setActiveItem(newPanel);
+ rf.ajax(newPanel.id, null, options);
+
+ if (oldPanel) {
+ this.__setActiveItem(oldPanel);
+ }
+
+ return false;
+ },
+
+ /**
+ * @protected
+ * @param {TogglePanelItem} oldPanel
+ * @param {TogglePanelItem} newPanel
+ *
+ * @return {undefined}
+ * - false - if process has been terminated
+ * - true - in other cases
+ * */
+ execClient : function (oldPanel, newPanel) {
+ if (oldPanel) {
+ var continueProcess = oldPanel.__leave();
+ if (!continueProcess) {
+ return false;
+ }
+ }
+
+ this.__setActiveItem(newPanel);
+
+ newPanel.__enter();
+ newPanel.getTogglePanel().__fireItemChange(oldPanel, newPanel);
+
+ return true;
+ },
+
+ /**
+ * @private
+ * */
+ __getParentForm : function (comp) {
+ return $(rf.getDomElement(comp.id)).parents('form:first');
+ },
+
+ /**
+ * @private
+ * */
+ __setActiveItem : function (item) {
+ rf.getDomElement(item.togglePanelId + "-value").value = item.getName(); // todo it is should be toogle panel method
+ item.getTogglePanel().activeItem = item.getName();
+ }
+ };
+
+
rf.ui.TabPanel = rf.ui.TogglePanel.extendClass({
// class name
name:"TabPanel",
@@ -41,6 +145,11 @@
this.items = [];
this.isKeepHeight = options["isKeepHeight"] || false
+ },
+
+ __itemsSwitcher : function () {
+ return ITEMS_SWITCHER;
}
+
});
})(jQuery, RichFaces);
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/togglePanel.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/togglePanel.js 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/togglePanel.js 2011-02-04 12:33:53 UTC (rev 21448)
@@ -201,7 +201,7 @@
return false
}
- return new SwitchItems(this).exec(oldPanel, newPanel);
+ return this.__itemsSwitcher().exec(oldPanel, newPanel);
},
/**
@@ -233,7 +233,7 @@
var newItem = this.__getItemByName(newItemName);
// Don't do like this and remove it ASAP
- new SwitchItems(this).execClient(oldItem, newItem);
+ this.__itemsSwitcher().execClient(oldItem, newItem);
},
/**
@@ -320,6 +320,10 @@
/********************* Methods *************************/
+ __itemsSwitcher : function () {
+ return new SwitchItems(this);
+ },
+
__ITEMS_META_NAMES : (function () {
function goFrom (comp, ind, step) {
var res = ind;
Modified: trunk/ui/output/ui/src/test/java/org/richfaces/component/AbstractAccordionTest.java
===================================================================
--- trunk/ui/output/ui/src/test/java/org/richfaces/component/AbstractAccordionTest.java 2011-02-04 11:28:10 UTC (rev 21447)
+++ trunk/ui/output/ui/src/test/java/org/richfaces/component/AbstractAccordionTest.java 2011-02-04 12:33:53 UTC (rev 21448)
@@ -43,9 +43,9 @@
private static final String ITEM3 = "item3";
private AbstractAccordion accordion;
- private AbstractTogglePanelTitledItem item1;
- private AbstractTogglePanelTitledItem item2;
- private AbstractTogglePanelTitledItem item3;
+ private AbstractAccordionItem item1;
+ private AbstractAccordionItem item2;
+ private AbstractAccordionItem item3;
@Before
public void setUp () {
@@ -72,8 +72,8 @@
Assert.assertEquals(ITEM2, accordion.getActiveItem());
}
- private static AbstractTogglePanelTitledItem createItem(String name) {
- AbstractTogglePanelTitledItem item = createNiceMock(AbstractTogglePanelTitledItem.class); //new AbstractTogglePanelTitledItem();
+ private static AbstractAccordionItem createItem(String name) {
+ AbstractAccordionItem item = createNiceMock(AbstractAccordionItem.class);
expect(item.getName()).andReturn(name);
return item;
14 years, 7 months
JBoss Rich Faces SVN: r21447 - trunk/examples/richfaces-showcase.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2011-02-04 06:28:10 -0500 (Fri, 04 Feb 2011)
New Revision: 21447
Modified:
trunk/examples/richfaces-showcase/pom.xml
Log:
http://jira.jboss.org/browse/RF-9673
Modified: trunk/examples/richfaces-showcase/pom.xml
===================================================================
--- trunk/examples/richfaces-showcase/pom.xml 2011-02-04 11:11:48 UTC (rev 21446)
+++ trunk/examples/richfaces-showcase/pom.xml 2011-02-04 11:28:10 UTC (rev 21447)
@@ -211,10 +211,13 @@
<configuration>
<webResources>
<resource>
- <directory>src/main/webapp-gae</directory>
+ <directory>src/main/webapp</directory>
+ <excludes>
+ <exclude>WEB-INF/web.xml</exclude>
+ </excludes>
</resource>
<resource>
- <directory>src/main/webapp</directory>
+ <directory>src/main/webapp-gae</directory>
</resource>
<resource>
<directory>${project.build.directory}/generated-resources</directory>
14 years, 7 months
JBoss Rich Faces SVN: r21446 - modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richDropDownMenu.
by richfaces-svn-commits@lists.jboss.org
Author: ppitonak(a)redhat.com
Date: 2011-02-04 06:11:48 -0500 (Fri, 04 Feb 2011)
New Revision: 21446
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richDropDownMenu/TestRichDropDownMenu.java
Log:
* test for drop down menu fixed
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richDropDownMenu/TestRichDropDownMenu.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richDropDownMenu/TestRichDropDownMenu.java 2011-02-04 08:57:46 UTC (rev 21445)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richDropDownMenu/TestRichDropDownMenu.java 2011-02-04 11:11:48 UTC (rev 21446)
@@ -107,9 +107,10 @@
selenium.click(pjq("input[type=radio][name$=disabledInput][value=true]"));
selenium.waitForPageToLoad();
- assertTrue(selenium.belongsClass(fileMenu, "rf-ddm-itm-dis"), "Menu should have class \"rf-ddm-itm-dis\".");
- assertTrue(selenium.isElementPresent(emptyIcon), "Empty icon should be present.");
- assertFalse(selenium.isElementPresent(icon), "Icon should not be present.");
+ assertTrue(selenium.belongsClass(fileMenu, "rf-ddm-dis"), "Menu should have class \"rf-ddm-dis\".");
+ assertTrue(selenium.isElementPresent(icon), "Icon should be present on the page.");
+ assertFalse(selenium.isElementPresent(fileMenuLabel), "File menu should have a disabled label.");
+ assertTrue(selenium.isElementPresent(pjq("div[id$=menu1] div.rf-ddm-lbl-dis")), "File menu should have a disabled label.");
}
@Test
14 years, 7 months
JBoss Rich Faces SVN: r21445 - in trunk/examples/richfaces-showcase/src/main: webapp/richfaces/fileUpload/samples and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2011-02-04 03:57:46 -0500 (Fri, 04 Feb 2011)
New Revision: 21445
Modified:
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/fileupload/FileUploadBean.java
trunk/examples/richfaces-showcase/src/main/webapp/richfaces/fileUpload/samples/imgUpload-sample.xhtml
Log:
Modified: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/fileupload/FileUploadBean.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/fileupload/FileUploadBean.java 2011-02-04 08:43:27 UTC (rev 21444)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/fileupload/FileUploadBean.java 2011-02-04 08:57:46 UTC (rev 21445)
@@ -19,7 +19,7 @@
@SessionScoped
public class FileUploadBean implements Serializable {
- private ArrayList<UploadedFile> files = new ArrayList<UploadedFile>();
+ private ArrayList<UploadedImage> files = new ArrayList<UploadedImage>();
public void paint(OutputStream stream, Object object) throws IOException {
stream.write(getFiles().get((Integer) object).getData());
@@ -27,7 +27,12 @@
}
public void listener(FileUploadEvent event) throws Exception {
- files.add(event.getUploadedFile());
+ UploadedFile item = event.getUploadedFile();
+ UploadedImage file = new UploadedImage();
+ file.setLength(item.getData().length);
+ file.setName(item.getName());
+ file.setData(item.getData());
+ files.add(file);
}
public String clearUploadData() {
@@ -43,16 +48,16 @@
}
}
- public ArrayList<UploadedFile> getFiles() {
+ public long getTimeStamp() {
+ return System.currentTimeMillis();
+ }
+
+ public ArrayList<UploadedImage> getFiles() {
return files;
}
- public void setFiles(ArrayList<UploadedFile> files) {
+ public void setFiles(ArrayList<UploadedImage> files) {
this.files = files;
}
- public long getTimeStamp() {
- return System.currentTimeMillis();
- }
-
}
Modified: trunk/examples/richfaces-showcase/src/main/webapp/richfaces/fileUpload/samples/imgUpload-sample.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/richfaces/fileUpload/samples/imgUpload-sample.xhtml 2011-02-04 08:43:27 UTC (rev 21444)
+++ trunk/examples/richfaces-showcase/src/main/webapp/richfaces/fileUpload/samples/imgUpload-sample.xhtml 2011-02-04 08:57:46 UTC (rev 21445)
@@ -44,7 +44,7 @@
<h:outputText value="File Name:" />
<h:outputText value="#{file.name}" />
<h:outputText value="File Length(bytes):" />
- <h:outputText value="#{file.size}" />
+ <h:outputText value="#{file.length}" />
</h:panelGrid>
</h:panelGrid>
</rich:panel>
@@ -59,4 +59,4 @@
</h:form>
</ui:composition>
-</html>
\ No newline at end of file
+</html>
14 years, 7 months
JBoss Rich Faces SVN: r21444 - in modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer: bean and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: ppitonak(a)redhat.com
Date: 2011-02-04 03:43:27 -0500 (Fri, 04 Feb 2011)
New Revision: 21444
Modified:
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/CollectionConverter.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichColumnBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichDragIndicatorBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichDragSourceBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichDropListenerBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichDropTargetBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichPanelMenuGroupBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichPanelMenuItemBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTooltipBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeListenerBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeModelAdaptorBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeModelRecursiveAdaptorBean.java
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeNodeBean.java
Log:
* added svn property Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/CollectionConverter.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichColumnBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichDragIndicatorBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichDragSourceBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichDropListenerBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichDropTargetBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichPanelMenuGroupBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichPanelMenuItemBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTooltipBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeListenerBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeModelAdaptorBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeModelRecursiveAdaptorBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Property changes on: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/RichTreeNodeBean.java
___________________________________________________________________
Name: svn:keywords
+ Revision
14 years, 7 months