JBoss Rich Faces SVN: r19205 - in branches/RF-8742: core/impl/src/main/java/org/richfaces/renderkit/html and 13 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2010-09-14 14:41:14 -0400 (Tue, 14 Sep 2010)
New Revision: 19205
Added:
branches/RF-8742/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml
branches/RF-8742/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml
branches/RF-8742/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js
branches/RF-8742/ui/common/ui/richfaces-suppressions.xml
branches/RF-8742/ui/output/ui/richfaces-suppressions.xml
branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js
branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/TabPanel.js
Modified:
branches/RF-8742/
branches/RF-8742/core/impl/src/main/java/org/richfaces/renderkit/html/CustomizeableGradient.java
branches/RF-8742/examples/output-demo/src/main/webapp/templates/template.xhtml
branches/RF-8742/examples/richfaces-showcase/readme.txt
branches/RF-8742/svnmerge-commit-message.txt
branches/RF-8742/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ListRendererBase.java
branches/RF-8742/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/list.ecss
branches/RF-8742/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ListRendererTest.java
branches/RF-8742/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
branches/RF-8742/ui/output/ui/src/main/java/org/richfaces/component/UITogglePanelTitledItem.java
branches/RF-8742/ui/output/ui/src/main/resources/META-INF/pn.faces-config.xml
branches/RF-8742/ui/output/ui/src/main/resources/META-INF/pn.taglib.xml
branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss
Log:
Merged revisions 19186-19187,19190,19194,19196,19199,19203-19204 via svnmerge from
https://svn.jboss.org/repos/richfaces/trunk
.......
r19186 | Alex.Kolonitsky | 2010-09-13 23:48:24 -0700 (Mon, 13 Sep 2010) | 1 line
Suppressions for checkstyle
.......
r19187 | Alex.Kolonitsky | 2010-09-14 01:25:48 -0700 (Tue, 14 Sep 2010) | 1 line
fix build
.......
r19190 | ilya_shaikovsky | 2010-09-14 03:58:27 -0700 (Tue, 14 Sep 2010) | 1 line
.......
r19194 | nbelaevski | 2010-09-14 07:03:40 -0700 (Tue, 14 Sep 2010) | 1 line
https://jira.jboss.org/browse/RF-9295
.......
r19196 | nbelaevski | 2010-09-14 07:53:40 -0700 (Tue, 14 Sep 2010) | 1 line
https://jira.jboss.org/browse/RF-9344
.......
r19199 | Alex.Kolonitsky | 2010-09-14 08:38:08 -0700 (Tue, 14 Sep 2010) | 1 line
RF-7944 Tab Panel Component
.......
r19203 | nbelaevski | 2010-09-14 10:20:42 -0700 (Tue, 14 Sep 2010) | 1 line
Fixed broken list component unit test
.......
r19204 | Alex.Kolonitsky | 2010-09-14 10:40:55 -0700 (Tue, 14 Sep 2010) | 1 line
Tab Panel Renderer
.......
Property changes on: branches/RF-8742
___________________________________________________________________
Name: svnmerge-integrated
- /trunk:1-19178
+ /trunk:1-19204
Modified: branches/RF-8742/core/impl/src/main/java/org/richfaces/renderkit/html/CustomizeableGradient.java
===================================================================
--- branches/RF-8742/core/impl/src/main/java/org/richfaces/renderkit/html/CustomizeableGradient.java 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/core/impl/src/main/java/org/richfaces/renderkit/html/CustomizeableGradient.java 2010-09-14 18:41:14 UTC (rev 19205)
@@ -47,7 +47,7 @@
* created 02.02.2007
*/
@DynamicResource
-public class CustomizeableGradient extends Java2Dresource {
+public abstract class CustomizeableGradient extends Java2Dresource {
private static final String BASE_COLOR = "baseColor";
Copied: branches/RF-8742/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml (from rev 19204, trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml)
===================================================================
--- branches/RF-8742/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml (rev 0)
+++ branches/RF-8742/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml 2010-09-14 18:41:14 UTC (rev 19205)
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns: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/output">
+
+<body>
+<ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="title">Tab Panel Example</ui:define>
+ <ui:define name="body_head">Tab Panel Example</ui:define>
+
+ <ui:define name="body">
+ <p>Page</p>
+
+ <h:form id="f">
+ <pn:tabPanel id="panel" switchType="ajax">
+ <pn:tab header="tab1 header">
+ 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="tab2 header">
+ He he
+ </pn:tab>
+ </pn:tabPanel>
+ </h:form>
+ </ui:define>
+</ui:composition>
+</body>
+</html>
+
Copied: branches/RF-8742/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml (from rev 19204, trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml)
===================================================================
--- branches/RF-8742/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml (rev 0)
+++ branches/RF-8742/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml 2010-09-14 18:41:14 UTC (rev 19205)
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns: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/output">
+
+<body>
+<ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="scripts">
+ <h:outputScript name="qunit/qunit.js" />
+ <h:outputScript name="qunit/richfaces-qunit.js" />
+
+ <h:outputStylesheet name="qunit/qunit.css" />
+ </ui:define>
+
+ <ui:define name="title">Tab Panel Example</ui:define>
+ <ui:define name="body_head">Tab Panel Example</ui:define>
+
+ <ui:define name="body">
+ <p>Page</p>
+
+ <h:form id="f">
+ <pn:tabPanel id="panel" switchType="ajax">
+ <pn:tab header="tab1 header">
+ 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="tab2 header">
+ He he
+ </pn:tab>
+ </pn:tabPanel>
+ </h:form>
+
+ <p>Result</p>
+ <div>
+ <ol id="qunit-tests"></ol>
+
+ <div id="testDiv" style="margin-top:10px; border:1px solid #a0a0a0">Main Test Div</div>
+
+ </div>
+ <h:outputScript name="tests/richfaces-tab-panel-qunit.js" />
+ </ui:define>
+</ui:composition>
+</body>
+</html>
+
Copied: branches/RF-8742/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js (from rev 19204, trunk/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js)
===================================================================
--- branches/RF-8742/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js (rev 0)
+++ branches/RF-8742/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js 2010-09-14 18:41:14 UTC (rev 19205)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+RichFaces.QUnit.run(function() {
+ module("richfaces-tab-panel");
+
+ var TAB_PANEL_ID = "f:panel";
+
+ function handler (msg, returnValue) {
+ return function () {
+ ok(true, msg);
+
+ if (returnValue != undefined) {
+ return returnValue;
+ }
+ };
+ }
+
+ test("RichFaces.ui.TabPanel test constructor", function () {
+ var c = RichFaces.$(TAB_PANEL_ID);
+
+ ok(c instanceof RichFaces.ui.TabPanel, "inctance of RichFaces.ui.TabPanel");
+ equals(c.id, TAB_PANEL_ID, "id");
+ });
+
+ test("RichFaces.ui.TabPanel test public api", function () {
+ var c = RichFaces.$(TAB_PANEL_ID);
+
+ var PUBLIC_API = [/* ... */];
+
+ for (var i in PUBLIC_API) {
+ var funcName = PUBLIC_API[i];
+ ok(c[funcName], funcName + "present in component");
+ // TODO check other functions + check is it function
+ }
+ });
+
+ test("RichFaces.ui.TabPanel test events", function () {
+ var componentId = TAB_PANEL_ID;
+ var c = RichFaces.$(componentId);
+
+ expect(5);
+ var beforeitemchngeHandler = function (event, comp, data) {
+ ok(true, "beforeitemchnge handler invouked");
+
+ same(data.id, componentId, "component id");
+ same(data.oldItem.getName(), c.items[0].getName(), "old item");
+ same(data.newItem.getName(), c.items[1].getName(), "new item");
+
+ return true;
+ };
+
+ var beforeitemchngeHandlerWrapper = RichFaces.Event.bindById(componentId, "beforeitemchange", beforeitemchngeHandler);
+
+ var itemchangeHandler = handler("itemchnge handler invouked", undefined);
+ var itemchangeHandlerWrapper = RichFaces.Event.bindById(componentId, "itemchange", itemchangeHandler);
+
+ c.switchToItem("name2");
+
+ RichFaces.Event.unbindById(componentId, "beforeitemchange", beforeitemchngeHandlerWrapper);
+ RichFaces.Event.unbindById(componentId, "itemchange", itemchangeHandlerWrapper);
+
+ c.switchToItem("name1");
+ });
+});
Modified: branches/RF-8742/examples/output-demo/src/main/webapp/templates/template.xhtml
===================================================================
--- branches/RF-8742/examples/output-demo/src/main/webapp/templates/template.xhtml 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/examples/output-demo/src/main/webapp/templates/template.xhtml 2010-09-14 18:41:14 UTC (rev 19205)
@@ -10,157 +10,6 @@
</title>
<meta http-equiv="content-type" content="text/xhtml; charset=UTF-8" />
-
- <style type="text/css">
- * {
- font-family: verdana
- }
-
- .rftp_toptab {
- display: table-cell;
- border: 1px solid #A6A6A6;
- padding: 0px 0px 3px 0px;
- vertical-align: bottom;
- background: url(tab_bg.gif) top repeat-x #DAE7F5;
- }
-
- .rftp_active_top {
- border-bottom: 0px;
- font-weight: bold;
- padding: 3px 0px 0px 0px;
- vertical-align: top;
- background: url(acttab_bg.gif) top repeat-x #C9DBEF;
- }
-
- .rftp_active2_top {
- border-bottom: 0px;
- font-weight: bold;
- padding: 3px 0px 0px 0px;
- vertical-align: top;
- background: url(acttab2_bg.gif) top repeat-x #FFFFFF;
- }
-
- .rftp_toptab_tabline_vis {
- border: 1px solid #a6a6a6;
- background: url(tabline_bg.gif) top repeat-x #EEF4FB;
- border-bottom: 0px;
- padding-top: 2px;
- overflow: hidden;
- height: 23px;
- white-space: nowrap;
- position: relative;
- }
-
- .rftp_toptab_tabline_dis {
- border-bottom: 0px;
- padding-top: 2px;
- overflow: hidden;
- height: 25px;
- white-space: nowrap;
- position: relative;
- }
-
- .rftp_toptab_tabs {
- display: table;
- border: 0px;
- width: 100%;
- height: 100%;
- }
-
- .rftp_toptab_spacer {
- display: table-cell;
- border-bottom: 1px solid #A6A6A6;
- }
-
- .rftp_horizonttab_tabspacer_width {
- padding-left: 1px;
- }
-
- .rftp_icon {
- display: table-cell;
- vertical-align: middle;
- padding: 0px 5px 0px 5px;
- }
-
- .rftp_close {
- display: table-cell;
- vertical-align: middle;
- padding: 0px 3px 0px 15px;
- }
-
- .rftp_label {
- display: table-cell;
- vertical-align: middle;
- font-family: verdana;
- font-size: 11px;
- }
-
- .rftp_toptab_scroll_left {
- background: url(acttab_bg.gif) top repeat-x #C9DBEF;
- position: absolute;
- top: 1px;
- left: 1px;
- width: 15px;
- height: 250px;
- border: 1px solid #a6a6a6;
- font-weight: bold;
- text-align: center;
- font-family: verdana;
- font-size: 11px;
- padding-top: 6px;
- }
-
- .rftp_toptab_scroll_right {
- background: url(acttab_bg.gif) top repeat-x #C9DBEF;
- position: absolute;
- top: 1px;
- right: 17px;
- width: 15px;
- height: 250px;
- border: 1px solid #a6a6a6;
- font-weight: bold;
- text-align: center;
- font-family: verdana;
- font-size: 11px;
- padding-top: 6px;
- }
-
- .rftp_toptab_tabslist {
- background: url(acttab_bg.gif) top repeat-x #C9DBEF;
- position: absolute;
- top: 1px;
- right: 1px;
- width: 15px;
- height: 250px;
- border: 1px solid #a6a6a6;
- font-weight: bold;
- text-align: center;
- font-family: verdana;
- font-size: 14px;
- padding-top: 2px;
- }
-
- .rftp_toptab_border {
- border: 1px solid #A6A6A6;
- border-top: 0px;
- height: 2px;
- background: #C9DBEF;
- }
-
- .rftp_toptab_content {
- border: 1px solid #A6A6A6;
- border-top: 0px;
- font-family: verdana;
- font-size: 11px;
- padding: 10px;
- background: #ffffff;
- }
-
- .rftp_hidden {
- display: none
- }
- </style>
-
</h:head>
<h:body>
Modified: branches/RF-8742/examples/richfaces-showcase/readme.txt
===================================================================
--- branches/RF-8742/examples/richfaces-showcase/readme.txt 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/examples/richfaces-showcase/readme.txt 2010-09-14 18:41:14 UTC (rev 19205)
@@ -46,7 +46,8 @@
* mvn clean package -Pgae -Denforcer.skip=true
(enforcer skipped as resource plugin using snapshot plugin)
-And now you're ready to publish the application to GAE. just use appcfg as for any other one like described at google documentation.
+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.
more details about the resource plugin(it could be highly usefull not only in case of GAE usage but for general cases like serving resources at separate content systems) -
will be published at our wiki and announced at RichFaces usage space.
Modified: branches/RF-8742/svnmerge-commit-message.txt
===================================================================
--- branches/RF-8742/svnmerge-commit-message.txt 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/svnmerge-commit-message.txt 2010-09-14 18:41:14 UTC (rev 19205)
@@ -1,8 +1,34 @@
-Merged revisions 19176 via svnmerge from
+Merged revisions 19186-19187,19190,19194,19196,19199,19203-19204 via svnmerge from
https://svn.jboss.org/repos/richfaces/trunk
........
- r19176 | alexsmirnov | 2010-09-13 10:42:47 -0700 (Mon, 13 Sep 2010) | 1 line
+ r19186 | Alex.Kolonitsky | 2010-09-13 23:48:24 -0700 (Mon, 13 Sep 2010) | 1 line
- ignore working files in svn
+ Suppressions for checkstyle
........
+ r19187 | Alex.Kolonitsky | 2010-09-14 01:25:48 -0700 (Tue, 14 Sep 2010) | 1 line
+
+ fix build
+........
+ r19190 | ilya_shaikovsky | 2010-09-14 03:58:27 -0700 (Tue, 14 Sep 2010) | 1 line
+........
+ r19194 | nbelaevski | 2010-09-14 07:03:40 -0700 (Tue, 14 Sep 2010) | 1 line
+
+ https://jira.jboss.org/browse/RF-9295
+........
+ r19196 | nbelaevski | 2010-09-14 07:53:40 -0700 (Tue, 14 Sep 2010) | 1 line
+
+ https://jira.jboss.org/browse/RF-9344
+........
+ r19199 | Alex.Kolonitsky | 2010-09-14 08:38:08 -0700 (Tue, 14 Sep 2010) | 1 line
+
+ RF-7944 Tab Panel Component
+........
+ r19203 | nbelaevski | 2010-09-14 10:20:42 -0700 (Tue, 14 Sep 2010) | 1 line
+
+ Fixed broken list component unit test
+........
+ r19204 | Alex.Kolonitsky | 2010-09-14 10:40:55 -0700 (Tue, 14 Sep 2010) | 1 line
+
+ Tab Panel Renderer
+........
Copied: branches/RF-8742/ui/common/ui/richfaces-suppressions.xml (from rev 19204, trunk/ui/common/ui/richfaces-suppressions.xml)
===================================================================
--- branches/RF-8742/ui/common/ui/richfaces-suppressions.xml (rev 0)
+++ branches/RF-8742/ui/common/ui/richfaces-suppressions.xml 2010-09-14 18:41:14 UTC (rev 19205)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE suppressions PUBLIC
+ "-//Puppy Crawl//DTD Suppressions 1.0//EN"
+ "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
+
+<suppressions>
+ <suppress checks="MissingSwitchDefault" files="JSONTokener.java" />
+ <suppress checks="FallThrough" files="XMLTokener.java" />
+ <suppress checks="ModifiedControlVariable" files="Cookie.java" />
+</suppressions>
Modified: branches/RF-8742/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ListRendererBase.java
===================================================================
--- branches/RF-8742/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ListRendererBase.java 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/ui/iteration/ui/src/main/java/org/richfaces/renderkit/ListRendererBase.java 2010-09-14 18:41:14 UTC (rev 19205)
@@ -133,7 +133,7 @@
}
rendererUtils.writeAttribute(writer, HtmlConstants.CLASS_ATTRIBUTE,
- HtmlUtil.concatClasses(helper.getRowClass(), helper.getColumnClass(), "rf-dlst-t"));
+ HtmlUtil.concatClasses(helper.getRowClass(), helper.getColumnClass(), "rf-dlst-trm"));
termFacet.encodeAll(context);
writer.endElement(HtmlConstants.DT_ELEMENT);
}
@@ -145,7 +145,7 @@
}
rendererUtils.writeAttribute(writer, HtmlConstants.CLASS_ATTRIBUTE,
- HtmlUtil.concatClasses(helper.getRowClass(), helper.getColumnClass(), "rf-dlst-d"));
+ HtmlUtil.concatClasses(helper.getRowClass(), helper.getColumnClass(), "rf-dlst-dfn"));
renderHandlers(context, sequence);
rendererUtils.encodeChildren(context, sequence);
writer.endElement(HtmlConstants.DD_ELEMENT);
@@ -191,9 +191,9 @@
}
- private ItemsEncoder unorderedListItemsEncoder = new SimpleItemsEncoder("rf-ulst-i");
+ private ItemsEncoder unorderedListItemsEncoder = new SimpleItemsEncoder("rf-ulst-itm");
- private ItemsEncoder orderedListItemsEncoder = new SimpleItemsEncoder("rf-olst-i");
+ private ItemsEncoder orderedListItemsEncoder = new SimpleItemsEncoder("rf-olst-itm");
private ItemsEncoder definitionItemsEncoder = new DefinitionItemsEncoder();
Modified: branches/RF-8742/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/list.ecss
===================================================================
--- branches/RF-8742/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/list.ecss 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/list.ecss 2010-09-14 18:41:14 UTC (rev 19205)
@@ -1,4 +1,4 @@
-.rf-ulst-i, .rf-olst-i, .rf-dlst-t, .rf-dlst-d {
+.rf-ulst-itm, .rf-olst-itm, .rf-dlst-trm, .rf-dlst-dfn {
font-size: '#{richSkin.generalSizeFont}';
font-family: '#{richSkin.generalFamilyFont}';
color: '#{richSkin.generalTextColor}';
Modified: branches/RF-8742/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ListRendererTest.java
===================================================================
--- branches/RF-8742/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ListRendererTest.java 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ListRendererTest.java 2010-09-14 18:41:14 UTC (rev 19205)
@@ -73,7 +73,7 @@
HtmlElement list = (HtmlElement) nodes.get(0);
assertEquals("ol", list.getNodeName());
assertEquals("rf-olst", list.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
- verifySimpleListItems(list, "rf-olst-i");
+ verifySimpleListItems(list, "rf-olst-itm");
}
@Test
@@ -86,7 +86,7 @@
assertEquals("ul", list.getNodeName());
assertEquals("rf-ulst", list.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
- verifySimpleListItems((HtmlElement) list, "rf-ulst-i");
+ verifySimpleListItems((HtmlElement) list, "rf-ulst-itm");
}
@Test
@@ -140,7 +140,7 @@
HtmlElement item = (HtmlElement) termItems.get(i);
assertEquals("dt", item.getNodeName());
- assertEquals("rf-dlst-t", item.getAttribute("class"));
+ assertEquals("rf-dlst-trm", item.getAttribute("class"));
assertEquals(data.getTerm(), item.asText());
}
@@ -149,7 +149,7 @@
HtmlElement item = (HtmlElement) definitionItems.get(i);
assertEquals("dd", item.getNodeName());
- assertEquals("rf-dlst-d", item.getAttribute("class"));
+ assertEquals("rf-dlst-dfn", item.getAttribute("class"));
assertEquals(data.getDefinition(), item.asText());
}
}
Copied: branches/RF-8742/ui/output/ui/richfaces-suppressions.xml (from rev 19204, trunk/ui/output/ui/richfaces-suppressions.xml)
===================================================================
--- branches/RF-8742/ui/output/ui/richfaces-suppressions.xml (rev 0)
+++ branches/RF-8742/ui/output/ui/richfaces-suppressions.xml 2010-09-14 18:41:14 UTC (rev 19205)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE suppressions PUBLIC
+ "-//Puppy Crawl//DTD Suppressions 1.0//EN"
+ "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
+
+<suppressions>
+ <suppress checks="IllegalCatch" files="AbstractTogglePanel.java" />
+</suppressions>
Modified: branches/RF-8742/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
===================================================================
--- branches/RF-8742/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2010-09-14 18:41:14 UTC (rev 19205)
@@ -459,9 +459,9 @@
}
public AbstractTogglePanelItem getItemByIndex(final int index) {
- List<AbstractTogglePanelItem> children = getRenderedChildren();
+ List<AbstractTogglePanelItem> children = getRenderedItems();
if (isCycledSwitching()) {
- int size = getRenderedChildren().size();
+ int size = getRenderedItems().size();
return children.get((size + index) % size);
} else if (index < 0 || index >= children.size()) {
return null;
@@ -470,7 +470,7 @@
}
}
- private List<AbstractTogglePanelItem> getRenderedChildren() {
+ public List<AbstractTogglePanelItem> getRenderedItems() {
List<AbstractTogglePanelItem> res = new ArrayList<AbstractTogglePanelItem>(getChildCount());
for (UIComponent child : getChildren()) {
if (child.isRendered() && child instanceof AbstractTogglePanelItem) {
@@ -516,7 +516,7 @@
}
public AbstractTogglePanelItem getLastItem() {
- return getItemByIndex(getRenderedChildren().size() - 1);
+ return getItemByIndex(getRenderedItems().size() - 1);
}
public int getChildIndex(String name) {
@@ -524,7 +524,7 @@
throw new IllegalArgumentException("Name is required parameter.");
}
- List<AbstractTogglePanelItem> items = getRenderedChildren();
+ List<AbstractTogglePanelItem> items = getRenderedItems();
for (int ind = 0; ind < items.size(); ind++) {
if (name.equals(items.get(ind).getName())) {
return ind;
Modified: branches/RF-8742/ui/output/ui/src/main/java/org/richfaces/component/UITogglePanelTitledItem.java
===================================================================
--- branches/RF-8742/ui/output/ui/src/main/java/org/richfaces/component/UITogglePanelTitledItem.java 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/ui/output/ui/src/main/java/org/richfaces/component/UITogglePanelTitledItem.java 2010-09-14 18:41:14 UTC (rev 19205)
@@ -44,7 +44,7 @@
}
public String getHeader() {
- return (String) getStateHelper().eval(PropertyKeys.header);
+ return (String) getStateHelper().eval(PropertyKeys.header, getName());
}
public void setHeader(String header) {
Modified: branches/RF-8742/ui/output/ui/src/main/resources/META-INF/pn.faces-config.xml
===================================================================
--- branches/RF-8742/ui/output/ui/src/main/resources/META-INF/pn.faces-config.xml 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/ui/output/ui/src/main/resources/META-INF/pn.faces-config.xml 2010-09-14 18:41:14 UTC (rev 19205)
@@ -11,16 +11,6 @@
</behavior>
<component>
- <component-type>org.richfaces.TabPanel</component-type>
- <component-class>org.richfaces.component.html.HtmlTabPanel</component-class>
- </component>
-
- <component>
- <component-type>org.richfaces.Tab</component-type>
- <component-class>org.richfaces.component.html.HtmlTab</component-class>
- </component>
-
- <component>
<component-type>org.richfaces.CollapsiblePanel</component-type>
<component-class>org.richfaces.component.html.HtmlCollapsiblePanel</component-class>
<property>
@@ -695,16 +685,6 @@
</renderer>
<renderer>
- <component-family>org.richfaces.TabPanel</component-family>
- <renderer-type>org.richfaces.TabPanel</renderer-type>
- <renderer-class>org.richfaces.renderkit.html.TabPanelRenderer</renderer-class>
- </renderer>
- <renderer>
- <component-family>org.richfaces.TogglePanelTitledItem</component-family>
- <renderer-type>org.richfaces.Tab</renderer-type>
- <renderer-class>org.richfaces.renderkit.html.TabRenderer</renderer-class>
- </renderer>
- <renderer>
<component-family>org.richfaces.Panel</component-family>
<renderer-type>org.richfaces.PanelRenderer</renderer-type>
<renderer-class>org.richfaces.renderkit.html.PanelRenderer</renderer-class>
Modified: branches/RF-8742/ui/output/ui/src/main/resources/META-INF/pn.taglib.xml
===================================================================
--- branches/RF-8742/ui/output/ui/src/main/resources/META-INF/pn.taglib.xml 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/ui/output/ui/src/main/resources/META-INF/pn.taglib.xml 2010-09-14 18:41:14 UTC (rev 19205)
@@ -29,192 +29,6 @@
</tag>
<tag>
- <tag-name>tabPanel</tag-name>
- <component>
- <component-type>org.richfaces.TabPanel</component-type>
- <renderer-type>org.richfaces.TabPanel</renderer-type>
-
- </component>
- <attribute>
- <description></description>
- <name>cycledSwitching</name>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description></description>
- <name>switchType</name>
- <type>org.richfaces.component.SwitchType</type>
- </attribute>
- <attribute>
- <description></description>
- <name>activeItem</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>bypassUpdates</name>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description></description>
- <name>limitToList</name>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description></description>
- <name>data</name>
- <type>java.lang.Object</type>
- </attribute>
- <attribute>
- <description></description>
- <name>status</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>execute</name>
- <type>java.lang.Object</type>
- </attribute>
- <attribute>
- <description></description>
- <name>render</name>
- <type>java.lang.Object</type>
- </attribute>
- <attribute>
- <description></description>
- <name>immediate</name>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description></description>
- <name>itemChangeListener</name>
- <type>javax.el.MethodExpression</type>
- </attribute>
- <attribute>
- <description>Long long text</description>
- <name>id</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>binding description</description>
- <name>binding</name>
- <type>javax.faces.component.UIComponent</type>
- </attribute>
- <attribute>
- <description>I don't know maybe some thing strange</description>
- <name>rendered</name>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description></description>
- <name>headerPosition</name>
- <type>org.richfaces.HeaderPosition</type>
- </attribute>
- <attribute>
- <description></description>
- <name>headerAlignment</name>
- <type>org.richfaces.HeaderAlignment</type>
- </attribute>
- <attribute>
- <description></description>
- <name>tabHeaderClassActive</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>tabHeaderClassDisabled</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>tabHeaderClassInactive</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>tabContentClass</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>tabHeaderClass</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onitemchange</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onbeforeitemchange</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>lang</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>title</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>style</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>styleClass</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>dir</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onclick</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>ondblclick</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmousedown</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmousemove</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmouseout</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmouseover</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmouseup</name>
- <type>java.lang.String</type>
- </attribute>
-
- </tag>
-
-
- <tag>
<tag-name>collapsiblePanel</tag-name>
<component>
<component-type>org.richfaces.CollapsiblePanel</component-type>
@@ -1070,174 +884,4 @@
</attribute>
</tag>
- <tag>
- <tag-name>tab</tag-name>
- <component>
- <component-type>org.richfaces.TogglePanelTitledItem</component-type>
- <renderer-type>org.richfaces.Tab</renderer-type>
-
- </component>
- <attribute>
- <description></description>
- <name>disabled</name>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description></description>
- <name>header</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>name</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>switchType</name>
- <type>org.richfaces.component.SwitchType</type>
- </attribute>
- <attribute>
- <description>Long long text</description>
- <name>id</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>binding description</description>
- <name>binding</name>
- <type>javax.faces.component.UIComponent</type>
- </attribute>
- <attribute>
- <description>I don't know maybe some thing strange</description>
- <name>rendered</name>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description></description>
- <name>headerClassActive</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>headerClassDisabled</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>headerClassInactive</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>headerClass</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>headerStyle</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>contentClass</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onheaderclick</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onheaderdblclick</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onheadermousedown</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onheadermousemove</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onheadermouseup</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onenter</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onleave</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>lang</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>title</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>style</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>styleClass</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>dir</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onclick</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>ondblclick</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmousedown</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmousemove</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmouseout</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmouseover</name>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description></description>
- <name>onmouseup</name>
- <type>java.lang.String</type>
- </attribute>
- </tag>
-
-
</facelet-taglib>
Copied: branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js (from rev 19204, trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js)
===================================================================
--- branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js (rev 0)
+++ branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js 2010-09-14 18:41:14 UTC (rev 19205)
@@ -0,0 +1,130 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+(function ($, rf) {
+
+ rf.ui = rf.ui || {};
+
+ rf.ui.Tab = rf.ui.TogglePanelItem.extendClass({
+ // class name
+ name:"Tab",
+
+ /**
+ * @class AccordionItem
+ * @name AccordionItem
+ *
+ * @constructor
+ * @param {String} componentId - component id
+ * @param {Hash} options - params
+ * */
+ init : function (componentId, options) {
+ rf.ui.TogglePanelItem.call(this, componentId, options);
+ this.index = options["index"];
+ this.getTogglePanel().getItems()[this.index] = this;
+
+ rf.Event.bindById(this.id + ":header", "click", this.__onHeaderClick, this)
+ },
+
+ /***************************** Public Methods ****************************************************************/
+
+ __onHeaderClick : function (comp) {
+ this.getTogglePanel().switchToItem(this.getName());
+ },
+
+ /**
+ * @param state {string} = inactive | active | disabled
+ * in that case looking header by css class appropriate to this state
+ *
+ * @return {jQuery Object}
+ * */
+ __header : function (state) {
+ var res = $(rf.getDomElement(this.id + ":header"));
+ if (state) {
+ return $(rf.getDomElement(this.id + ":header:" + state));
+ }
+
+ return res;
+ },
+
+ /**
+ * @return {jQuery Object}
+ * */
+ __content : function () {
+ if (!this.__content_) {
+ this.__content_ = $(rf.getDomElement(this.id));
+ }
+ return this.__content_;
+ },
+
+ /**
+ * @private
+ *
+ * used in TogglePanel
+ * */
+ __enter : function () {
+
+ this.__content().show();
+ this.__header("inactive").hide();
+ this.__header("active").show();
+
+ return this.__fireEnter();
+ },
+
+ getHeight : function (recalculate) {
+ if (recalculate || !this.__height) {
+ this.__height = $(rf.getDomElement(this.id)).outerHeight(true)
+ }
+
+ return this.__height;
+ },
+
+ /**
+ * @private
+ *
+ * used in TogglePanel
+ * */
+ __leave : function () {
+ var continueProcess = this.__fireLeave();
+ if (!continueProcess) {
+ return false;
+ }
+
+ this.__content().hide();
+ this.__header("active").hide();
+ this.__header("inactive").show();
+
+ return true;
+ },
+
+ /***************************** Private Methods ********************************************************/
+
+
+ destroy: function () {
+ var parent = this.getTogglePanel();
+ delete parent.getItems()[this.index];
+
+ rf.Event.unbindById(this.id, "."+this.namespace);
+
+ this.$super.destroy.call(this);
+ }
+ });
+})(jQuery, RichFaces);
Copied: branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/TabPanel.js (from rev 19204, trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/TabPanel.js)
===================================================================
--- branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/TabPanel.js (rev 0)
+++ branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/TabPanel.js 2010-09-14 18:41:14 UTC (rev 19205)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+(function ($, rf) {
+
+ rf.ui = rf.ui || {};
+
+ rf.ui.TabPanel = rf.ui.TogglePanel.extendClass({
+ // class name
+ name:"TabPanel",
+
+ /**
+ * @class TabPanel
+ * @name TabPanel
+ *
+ * @constructor
+ * @param {String} componentId - component id
+ * @param {Hash} options - params
+ * */
+ init : function (componentId, options) {
+ rf.ui.TogglePanel.call(this, componentId, options);
+ this.items = [];
+
+ this.isKeepHeight = options["isKeepHeight"] || false
+ },
+
+ /***************************** Public Methods ****************************************************************/
+
+
+
+ /***************************** Private Methods ********************************************************/
+
+
+ destroy: function () {
+ rf.Event.unbindById(this.id, "."+this.namespace);
+
+ rf.ui.TogglePanel.destroy.call(this);
+ }
+ });
+})(jQuery, RichFaces);
Modified: branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss
===================================================================
--- branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss 2010-09-14 17:40:55 UTC (rev 19204)
+++ branches/RF-8742/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss 2010-09-14 18:41:14 UTC (rev 19205)
@@ -1,78 +1,420 @@
-*{font-family : verdana /*generalFamilyFont*/}
-.rftp_bottomtab {border : 1px solid #A6A6A6 /*panelBorderColor*/; vertical-align : top; background : url(#{resource['org.richfaces:tab_bg.gif']})/*gradient - from generalBackgroundColor to tabBackgroundColor*/ top repeat-x #DAE7F5 /*tabBackgroundColor*/;}
-.rftp_active_bottom {border-top : 0px; font-weight : bold; vertical-align : top; background : url(#{resource['org.richfaces:acttab_bottom_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ top repeat-x #C9DBEF /*additionalBackgroundColor*/;}
+.rftp_bottomtab {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ vertical-align: top;
+/*gradient - from generalBackgroundColor to tabBackgroundColor*/
+ background: "url(#{resource['org.richfaces:tab_bg.gif']}) top repeat-x #{richSkin.tabBackgroundColor}";
+}
-.rftp_bottomtab_tabline_vis {padding-bottom : 2px; overflow : hidden; height : 25px; white-space : nowrap; position : relative;}
-.rftp_bottomtab_tabs {border : 0px; width : 100%; height : 100%;}
-.rftp_bottomtab_spacer {border-top : 1px solid #A6A6A6 /*panelBorderColor*/;}
+.rftp_active_bottom {
+ border-top: 0px;
+ font-weight: bold;
+ vertical-align: top;
+/*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bottom_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+}
-.rftp_bottomtab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-bottom : 0px; height : 2px; background : #C9DBEF /*additionalBackgroundColor*/ /*tabBackgroundColor*/;}
-.rftp_bottomtab_content {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-bottom : 0px; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 10px; background : #ffffff /*generalBackgroundColor*/;}
+.rftp_bottomtab_tabline_vis {
+ padding-bottom: 2px;
+ overflow: hidden;
+ height: 25px;
+ white-space: nowrap;
+ position: relative;
+}
-.rftp_bottomtab_scroll_left {background : url(#{resource['org.richfaces:acttab_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ bottom repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; bottom : 1px; left : 1px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding-top : 6px;}
-.rftp_bottomtab_scroll_right {background : url(#{resource['org.richfaces:acttab_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ bottom repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; bottom : 1px; right : 17px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding-top : 6px;}
-.rftp_bottomtab_tabslist {background : url(#{resource['org.richfaces:acttab_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ bottom repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; bottom : 1px; right : 1px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 14px; padding-top : 2px;}
+.rftp_bottomtab_tabs {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+}
+.rftp_bottomtab_spacer {
+ border-top: "1px solid #{richSkin.panelBorderColor}";
+}
+.rftp_bottomtab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-bottom: 0px;
+ height: 2px;
+ background: '#{richSkin.additionalBackgroundColor}'
+/*tabBackgroundColor*/;
+}
-.rftp_toptab {border : 1px solid #A6A6A6 /*panelBorderColor*/; vertical-align : top; background : url(#{resource['org.richfaces:tab_bg.gif']})/*gradient - from generalBackgroundColor to tabBackgroundColor*/ top repeat-x #DAE7F5 /*tabBackgroundColor*/;}
-.rftp_active_top {border-bottom : 0px; font-weight : bold; vertical-align : top; background : url(#{resource['org.richfaces:acttab_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ top repeat-x #C9DBEF /*additionalBackgroundColor*/;}
+.rftp_bottomtab_content {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-bottom: 0px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 10px;
+ background: '#{richSkin.generalBackgroundColor}';
+}
-.rftp_toptab_tabline_vis {padding-top : 2px; overflow : hidden; height : 25px; white-space : nowrap; position : relative;}
-.rftp_toptab_tabs {border : 0px; width : 100%; height : 100%;}
-.rftp_toptab_spacer {border-bottom : 1px solid #A6A6A6 /*panelBorderColor*/;}
+.rftp_bottomtab_scroll_left {
+/*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) bottom repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ bottom: 1px;
+ left: 1px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ font-weight: bold;
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding-top: 6px;
+}
-.rftp_horizonttab_tabspacer_width {padding-left : 1px;}
+.rftp_bottomtab_scroll_right {
+/*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) bottom repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ bottom: 1px;
+ right: 17px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ font-weight: bold;
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding-top: 6px;
+}
-.rftp_icon {position : absolute; top : 4px; left : 4px}
-.rftp_close {position : absolute; top : 4px; right : 4px}
-.rftp_label {white-space : nowrap; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/;}
+.rftp_bottomtab_tabslist {
+/*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) bottom repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ bottom: 1px;
+ right: 1px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ font-weight: bold;
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: 14px;
+ padding-top: 2px;
+}
-.rftp_label_container {position : relative; padding : 5px 37px 0px 22px;}
+.rf-tb-hdr {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ vertical-align: top;
+
+ /*gradient - from generalBackgroundColor to tabBackgroundColor*/
+ background: "url(#{resource['org.richfaces:tab_bg.gif']}) top repeat-x #DAE7F5"; /* #{richSkin.tabBackgroundColor} */
+}
-.rftp_toptab_scroll_left {background : url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; top : 1px; left : 1px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding-top : 6px;}
-.rftp_toptab_scroll_right {background : url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; top : 1px; right : 17px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding-top : 6px;}
-.rftp_toptab_tabslist {background : url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; top : 1px; right : 1px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 14px; padding-top : 2px;}
+.rf-tb-hdr {
+ cursor : pointer;
+ border : 1px solid #A6A6A6;
+ padding : 0px 0px 3px 0px;
+ vertical-align : top;
+ background-image: "url(#{resource['org.richfaces:tab_bg.gif']})";
+ background-position: top;
+ background-color: #DAE7F5;
+ background-repeat: repeat-x;
+}
-.rftp_toptab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-top : 0px; height : 2px; background : #C9DBEF /*additionalBackgroundColor*/;}
-.rf-tab-cnt {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-top : 0px; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 10px; background : #ffffff /*generalBackgroundColor*/;}
-.rftp_hidden {display : none}
+.rf-tb-hdr-act {
+ border-bottom: 0px;
+ font-weight: bold;
+ vertical-align: top;
-.rftp_topmultitab_tabline_vis {border-bottom : 0px; padding-top : 2px; white-space : nowrap; position : relative;}
-.rftp_topmultitab_tabs_first { border : 0px; width : 100%; height : 100%; height : 25px}
-.rftp_topmultitab_tabs { border : 0px; width : 100%; height : 100%; height : 25px; margin-bottom : -1px;}
-.rftp_topmultitab_spacer {border-bottom : 0px;}
-.rftp_topmultitab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-top : 0px; height : 3px; background : #C9DBEF /*additionalBackgroundColor*/;}
+ /*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+}
-.rftp_multitab_line_1 {width : 17%}
-.rftp_multitab_line_2 {width : 50%}
+rf-tb-hdr-inact {
+}
+rf-tb-hdr-dis {
+}
-.rftp_bottommultitab_tabline_vis {border : 1px solid #A6A6A6 /*panelBorderColor*/; background :url(#{resource['org.richfaces:tabline_bg.gif']}) top repeat-x #EEF4FB; border-top : 0px; padding-bottom : 2px; white-space : nowrap; position : relative;}
-.rftp_bottommultitab_tabs_first { border : 0px; width : 100%; height : 100%; height : 25px}
-.rftp_bottommultitab_tabs { border : 0px; width : 100%; height : 100%; height : 25px; margin-top : -1px;}
-.rftp_bottommultitab_spacer {border-top : 0px;}
-.rftp_bottommultitab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-bottom : 0px; height : 3px; background : #C9DBEF /*additionalBackgroundColor*/;}
+.rf-tb-hdr_tabline_vis {
+ padding-top: 2px;
+ overflow: hidden;
+ height: 25px;
+ white-space: nowrap;
+ position: relative;
+}
+.rf-tb-hdr_tabs {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+}
-.rftp_label_vert {white-space : nowrap; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 5px 0px 5px 0px;}
-.rftp_label_container_vert {position : relative; padding : 0px 37px 0px 22px;}
+.rf-tb-hdr_spacer {
+ border-bottom: "1px solid #{richSkin.panelBorderColor}";
+}
+.rftp_horizonttab_tabspacer_width {
+ padding-left: 1px;
+}
+.rftp_label {
+ white-space: nowrap;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+}
-.rftp_lefttab {border : 1px solid #A6A6A6 /*panelBorderColor*/; padding : 2px 0px 2px 0px; vertical-align : middle; background : url(#{resource['org.richfaces:tab_bg.gif']}) top right repeat-x #DAE7F5; margin-right : -1px}
-.rftp_lefttab_active {border-right : 0px; font-weight : bold; vertical-align : middle; background : url(#{resource['org.richfaces:actlefttab_bg.gif']}) top left repeat-y #C9DBEF /*additionalBackgroundColor*/; width : 100%;}
-.rftp_verttab_spacer {padding-top : 1px;}
+.rftp_label_container {
+ position: relative;
+ padding: 5px 37px 0px 22px;
+}
-.rftp_lefttab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; padding-left : 2px; background : #C9DBEF /*additionalBackgroundColor*/;}
-.rftp_lefttab_content {width : 100%; border : 1px solid #A6A6A6 /*panelBorderColor*/; border-left : 0px; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 10px; background : #ffffff /*generalBackgroundColor*/; vertical-align : top;}
+.rf-tb-hdr_scroll_left {
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ top: 1px;
+ left: 1px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ text-align: center;
+ font-weight: bold;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding-top: 6px;
+}
+.rf-tb-hdr_scroll_right {
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ top: 1px;
+ right: 17px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ font-weight: bold;
+ padding-top: 6px;
+}
-.rftp_righttab {border : 1px solid #A6A6A6 /*panelBorderColor*/; padding : 2px 0px 2px 0px; vertical-align : middle; background : url(#{resource['org.richfaces:tab_bg.gif']}) top right repeat-x #DAE7F5; margin-left : -1px}
-.rftp_righttab_active {border-left : 0px; font-weight : bold; vertical-align : middle; background : url(#{resource['org.richfaces:actrighttab_bg.gif']}) top right repeat-y #C9DBEF /*additionalBackgroundColor*/; width : 100%;}
-.rftp_righttab_spacer {padding-top : 1px;}
+.rf-tb-hdr_tabslist {
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ font-weight: bold;
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: 14px;
+ padding-top: 2px;
+}
-.rftp_righttab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; padding-right : 2px; background : #C9DBEF /*additionalBackgroundColor*/;}
-.rftp_righttab_content {width : 100%; border : 1px solid #A6A6A6 /*panelBorderColor*/; border-right : 0px; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 10px; background : #ffffff /*generalBackgroundColor*/; vertical-align : top;}
+.rf-tb-hdr_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-top: 0px;
+ height: 2px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+.rf-tb-cnt {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-top: 0px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 10px;
+ background: '#{richSkin.generalBackgroundColor}';
+}
+
+.rftp_hidden {
+ display: none
+}
+
+.rftp_topmultitab_tabline_vis {
+ border-bottom: 0px;
+ padding-top: 2px;
+ white-space: nowrap;
+ position: relative;
+}
+
+.rftp_topmultitab_tabs_first {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+ height: 25px
+}
+
+.rftp_topmultitab_tabs {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+ height: 25px;
+ margin-bottom: -1px;
+}
+
+.rftp_topmultitab_spacer {
+ border-bottom: 0px;
+}
+
+.rftp_topmultitab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-top: 0px;
+ height: 3px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+
+.rftp_multitab_line_1 {
+ width: 17%
+}
+
+.rftp_multitab_line_2 {
+ width: 50%
+}
+
+.rftp_bottommultitab_tabline_vis {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ background: "url(#{resource['org.richfaces:tabline_bg.gif']}) top repeat-x #EEF4FB";
+ border-top: 0px;
+ padding-bottom: 2px;
+ white-space: nowrap;
+ position: relative;
+}
+
+.rftp_bottommultitab_tabs_first {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+ height: 25px
+}
+
+.rftp_bottommultitab_tabs {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+ height: 25px;
+ margin-top: -1px;
+}
+
+.rftp_bottommultitab_spacer {
+ border-top: 0px;
+}
+
+.rftp_bottommultitab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-bottom: 0px;
+ height: 3px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+
+.rftp_label_vert {
+ white-space: nowrap;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 5px 0px 5px 0px;
+}
+
+.rftp_label_container_vert {
+ position: relative;
+ padding: 0px 37px 0px 22px;
+}
+
+.rftp_lefttab {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ padding: 2px 0px 2px 0px;
+ vertical-align: middle;
+ background: "url(#{resource['org.richfaces:tab_bg.gif']}) top right repeat-x #DAE7F5";
+ margin-right: -1px
+}
+
+.rftp_lefttab_active {
+ border-right: 0px;
+ font-weight: bold;
+ vertical-align: middle;
+ background: "url(#{resource['org.richfaces:actlefttab_bg.gif']}) top left repeat-y #{richSkin.additionalBackgroundColor}";
+ width: 100%;
+}
+
+.rftp_verttab_spacer {
+ padding-top: 1px;
+}
+
+.rftp_lefttab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ padding-left: 2px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+
+.rftp_lefttab_content {
+ width: 100%;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-left: 0px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 10px;
+ background: '#{richSkin.generalBackgroundColor}';
+ vertical-align: top;
+}
+
+.rftp_righttab {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ padding: 2px 0px 2px 0px;
+ vertical-align: middle;
+ background: "url(#{resource['org.richfaces:tab_bg.gif']}) top right repeat-x #DAE7F5";
+ margin-left: -1px
+}
+
+.rftp_righttab_active {
+ border-left: 0px;
+ font-weight: bold;
+ vertical-align: middle;
+ background: "url(#{resource['org.richfaces:actrighttab_bg.gif']}) top right repeat-y #{richSkin.additionalBackgroundColor}";
+ width: 100%;
+}
+
+.rftp_righttab_spacer {
+ padding-top: 1px;
+}
+
+.rftp_righttab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ padding-right: 2px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+
+.rftp_righttab_content {
+ width: 100%;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-right: 0px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 10px;
+ background: '#{richSkin.generalBackgroundColor}';
+ vertical-align: top;
+}
+
+.rftp_active_top { cursor : default; border-bottom : 1px solid #C9DBEF; font-weight : bold; padding : 0px 0px 0px 0px; vertical-align : top; background : url(acttab_bg.gif) top repeat-x #C9DBEF;}
+.rftp_active2_top { cursor : default; border-bottom : 1px solid #FFFFFF; font-weight : bold; padding : 0px 0px 0px 0px; vertical-align : top; background : url(acttab2_bg.gif) top repeat-x #FFFFFF;}
+
+.rftp_toptab_tabline_vis {border : 1px solid #a6a6a6; background :url(tabline_bg.gif) top repeat-x #EEF4FB; border-bottom : 0px; padding-top : 2px; overflow : hidden; white-space : nowrap; position : relative;}
+.rftp_toptab_tabline_dis {border-bottom : 0px; padding-top : 2px; overflow : hidden; white-space : nowrap; position : relative;}
+
+.rftp_toptab_tabs {border-collapse : collapse; border : 0px; height : 100%;}
+.rftp_toptab_spacer {border-bottom : 1px solid #A6A6A6;}
+.rftp_horizonttab_tabspacer_width {padding-left : 1px;}
+
+.rftp_icon {margin : 4px 0px 0px 5px; vertical-align : top;}
+.rftp_close {margin : 4px 5px 0px 10px; vertical-align : top;}
+.rftp_label {display : inline-block; font-family : verdana; font-size : 11px; padding : 5px 0px 2px 0px;}
+
+.rftp_toptab_scroll_left {background : url(acttab_bg.gif) top repeat-x #C9DBEF; position : absolute; top : 1px; left : 1px; width : 15px; height : 250px; border : 1px solid #a6a6a6; font-weight : bold; text-align : center; font-family : verdana; font-size : 11px; padding-top : 6px;}
+.rftp_toptab_scroll_right {background : url(acttab_bg.gif) top repeat-x #C9DBEF; position : absolute; top : 1px; right : 17px; width : 15px; height : 250px; border : 1px solid #a6a6a6; font-weight : bold; text-align : center; font-family : verdana; font-size : 11px; padding-top : 6px;}
+.rftp_toptab_tabslist {background : url(acttab_bg.gif) top repeat-x #C9DBEF; position : absolute; top : 1px; right : 1px; width : 15px; height : 250px; border : 1px solid #a6a6a6; font-weight : bold; text-align : center; font-family : verdana; font-size : 14px; padding-top : 2px;}
+
+.rf-tb-hdr_border {
+ border : 1px solid #A6A6A6;
+ border-top : 0px;
+ height : 2px;
+ background : #C9DBEF;
+}
+
+.rftp_toptab_content {border : 1px solid #A6A6A6; border-top : 0px; font-family : verdana; font-size : 11px; padding : 10px; background : #ffffff;}
+.rftp_hidden {display : none}
14 years, 3 months
JBoss Rich Faces SVN: r19204 - trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2010-09-14 13:40:55 -0400 (Tue, 14 Sep 2010)
New Revision: 19204
Modified:
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss
Log:
Tab Panel Renderer
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss 2010-09-14 17:20:42 UTC (rev 19203)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss 2010-09-14 17:40:55 UTC (rev 19204)
@@ -109,7 +109,7 @@
border : 1px solid #A6A6A6;
padding : 0px 0px 3px 0px;
vertical-align : top;
- background-image: 'url(#{resource['org.richfaces:tab_bg.gif']})';
+ background-image: "url(#{resource['org.richfaces:tab_bg.gif']})";
background-position: top;
background-color: #DAE7F5;
background-repeat: repeat-x;
14 years, 3 months
JBoss Rich Faces SVN: r19203 - trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2010-09-14 13:20:42 -0400 (Tue, 14 Sep 2010)
New Revision: 19203
Modified:
trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ListRendererTest.java
Log:
Fixed broken list component unit test
Modified: trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ListRendererTest.java
===================================================================
--- trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ListRendererTest.java 2010-09-14 17:05:21 UTC (rev 19202)
+++ trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ListRendererTest.java 2010-09-14 17:20:42 UTC (rev 19203)
@@ -73,7 +73,7 @@
HtmlElement list = (HtmlElement) nodes.get(0);
assertEquals("ol", list.getNodeName());
assertEquals("rf-olst", list.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
- verifySimpleListItems(list, "rf-olst-i");
+ verifySimpleListItems(list, "rf-olst-itm");
}
@Test
@@ -86,7 +86,7 @@
assertEquals("ul", list.getNodeName());
assertEquals("rf-ulst", list.getAttribute(HtmlConstants.CLASS_ATTRIBUTE));
- verifySimpleListItems((HtmlElement) list, "rf-ulst-i");
+ verifySimpleListItems((HtmlElement) list, "rf-ulst-itm");
}
@Test
@@ -140,7 +140,7 @@
HtmlElement item = (HtmlElement) termItems.get(i);
assertEquals("dt", item.getNodeName());
- assertEquals("rf-dlst-t", item.getAttribute("class"));
+ assertEquals("rf-dlst-trm", item.getAttribute("class"));
assertEquals(data.getTerm(), item.asText());
}
@@ -149,7 +149,7 @@
HtmlElement item = (HtmlElement) definitionItems.get(i);
assertEquals("dd", item.getNodeName());
- assertEquals("rf-dlst-d", item.getAttribute("class"));
+ assertEquals("rf-dlst-dfn", item.getAttribute("class"));
assertEquals(data.getDefinition(), item.asText());
}
}
14 years, 3 months
JBoss Rich Faces SVN: r19202 - in branches/RF-8992/ui/input/ui/src/main: resources/META-INF/resources/org.richfaces and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2010-09-14 13:05:21 -0400 (Tue, 14 Sep 2010)
New Revision: 19202
Modified:
branches/RF-8992/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceInputBaseRenderer.java
branches/RF-8992/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceSelectBaseRenderer.java
branches/RF-8992/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
branches/RF-8992/ui/input/ui/src/main/templates/inplaceInput.template.xml
branches/RF-8992/ui/input/ui/src/main/templates/inplaceSelect.template.xml
Log:
add select functionality
Modified: branches/RF-8992/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceInputBaseRenderer.java
===================================================================
--- branches/RF-8992/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceInputBaseRenderer.java 2010-09-14 16:27:08 UTC (rev 19201)
+++ branches/RF-8992/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceInputBaseRenderer.java 2010-09-14 17:05:21 UTC (rev 19202)
@@ -160,7 +160,7 @@
return result;
}
- public void buildScript(ResponseWriter writer, FacesContext facesContext, UIComponent component) throws IOException {
+ public void buildScript(ResponseWriter writer, FacesContext facesContext, UIComponent component, Object additional) throws IOException {
if(!(component instanceof InplaceComponent)) {
return;
}
@@ -169,7 +169,7 @@
JSFunction function = new JSFunction(scriptName);
String clientId = component.getClientId(facesContext);
Map<String, Object> options = createInplaceComponentOptions(clientId, (InplaceComponent)component);
- addToOptions(facesContext, component, options);
+ addToOptions(facesContext, component, options, additional);
function.addParameter(clientId);
function.addParameter(options);
writer.write(function.toString());
@@ -200,7 +200,7 @@
return options;
}
- public void addToOptions(FacesContext facesContext, UIComponent component, Map<String, Object> options) {
+ public void addToOptions(FacesContext facesContext, UIComponent component, Map<String, Object> options, Object additional) {
//override this method if you need additional options
}
Modified: branches/RF-8992/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceSelectBaseRenderer.java
===================================================================
--- branches/RF-8992/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceSelectBaseRenderer.java 2010-09-14 16:27:08 UTC (rev 19201)
+++ branches/RF-8992/ui/input/ui/src/main/java/org/richfaces/renderkit/InplaceSelectBaseRenderer.java 2010-09-14 17:05:21 UTC (rev 19202)
@@ -46,17 +46,38 @@
public static final String OPTIONS_LIST_CORD = "listCord";
public static final String OPTIONS_ITEMS_CORD = "itemsCord";
+
+ public static final String OPTIONS_SELECT_ITEMS = "selectItems";
+
+ public static final String OPTIONS_SELECT_ITEM_VALUE_INPUT = "selValueInput";
+
protected static final class ClientSelectItem implements ScriptString {
- private String label;
+
+ private String clientId;
+ private String label;
private String convertedValue;
public ClientSelectItem(String convertedValue, String label) {
- super();
+ this(convertedValue, label, null);
+ }
+
+ public ClientSelectItem(String convertedValue, String label, String clientId) {
+ super();
this.convertedValue = convertedValue;
this.label = label;
+ this.clientId = clientId;
}
+
+ public String getClientId() {
+ return clientId;
+ }
+
+ public void setClientId(String clientId) {
+ this.clientId = clientId;
+ }
+
public String getLabel() {
return label;
}
@@ -68,9 +89,9 @@
public void appendScript(StringBuffer functionString) {
functionString.append(this.toScript());
}
-
+
public String toScript() {
- return "[" + ScriptUtils.toScript(label) + ", " + ScriptUtils.toScript(convertedValue) + "]";
+ return "{ 'id' : " + ScriptUtils.toScript(clientId) + " , 'label' : " + ScriptUtils.toScript(label) + ", 'value' : " + ScriptUtils.toScript(convertedValue) + "}";
}
}
@@ -92,24 +113,31 @@
}
@Override
- public void addToOptions(FacesContext facesContext, UIComponent component, Map<String, Object> options) {
+ public void addToOptions(FacesContext facesContext, UIComponent component, Map<String, Object> options, Object additional) {
options.put(OPTIONS_ITEM_CLASS, "insel_option");
options.put(OPTIONS_SELECT_ITEM_CLASS, "insel_select");
String clientId = component.getClientId(facesContext);
options.put(OPTIONS_LIST_CORD, clientId + "List");
options.put(OPTIONS_ITEMS_CORD, clientId + "Items");
+ options.put(OPTIONS_SELECT_ITEMS, additional);
+ options.put(OPTIONS_SELECT_ITEM_VALUE_INPUT, clientId + "selValue");
}
public void encodeOptions(FacesContext facesContext, UIComponent component, List<ClientSelectItem> clientSelectItems) throws IOException {
AbstractInplaceSelect inplaceSelect = (AbstractInplaceSelect)component;
if(clientSelectItems != null && !clientSelectItems.isEmpty()) {
ResponseWriter writer = facesContext.getResponseWriter();
+ String clientId = component.getClientId(facesContext);
+ int i = 0;
for(ClientSelectItem clientSelectItem: clientSelectItems) {
- writer.startElement(HTML.SPAN_ELEM, inplaceSelect);
+ String itemClientId = clientId + "Item" + (i++);
+ clientSelectItem.setClientId(itemClientId);
+
+ writer.startElement(HTML.SPAN_ELEM, inplaceSelect);
+ writer.writeAttribute(HTML.ID_ATTRIBUTE, itemClientId, null);
writer.writeAttribute(HTML.CLASS_ATTRIBUTE, getOptionCss() , null);
String label = clientSelectItem.getLabel();
-
if(label != null && label.trim().length() > 0) {
writer.writeText(label, null);
} else {
@@ -120,6 +148,33 @@
}
}
+ public String getSelectLabel(FacesContext facesContext, UIComponent component) {
+ AbstractInplaceSelect select = (AbstractInplaceSelect)component;
+ String label = getSelectInputLabel(facesContext, select);
+ if(label == null) {
+ label = select.getDefaultLabel();
+ }
+ return label;
+ }
+
+ public String getSelectInputLabel(FacesContext facesContext, UIComponent component) {
+ AbstractInplaceSelect select = (AbstractInplaceSelect)component;
+ Object value = select.getSubmittedValue();
+ if(value == null) {
+ value = select.getValue();
+ if(value != null) {
+ List<SelectItem> items = SelectUtils.getSelectItems(facesContext, component);
+ for(SelectItem item: items) {
+ if(value.equals(item.getValue())) {
+ value = item.getLabel();
+ }
+ }
+ }
+ }
+
+ return (String)value;
+ }
+
public String getListStyles(FacesContext facesContext, UIComponent component) {
return "";
}
Modified: branches/RF-8992/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
===================================================================
--- branches/RF-8992/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2010-09-14 16:27:08 UTC (rev 19201)
+++ branches/RF-8992/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2010-09-14 17:05:21 UTC (rev 19202)
@@ -5,6 +5,8 @@
rf.ui.InplaceSelect = function(id, options) {
$super.constructor.call(this, id, options)
this.select = new rf.ui.Select(options.listCord, this, options);
+ this.selectItems = options.selectItems;
+ this.selValueInput = $(document.getElementById(options.selValueInput));
}
rf.ui.InplaceInput.extend(rf.ui.InplaceSelect);
@@ -18,7 +20,7 @@
return{
name : "inplaceSelect",
- geName: function() {
+ getName: function() {
return this.name;
},
@@ -42,15 +44,41 @@
},
processItem: function(event, element) {
- var key = element.text();
- this.setValue(key);
+ var key = element.attr("id");
+ var value = this.getItemValue(key);
+ this.saveItemValue(value);
+
+ var label = this.getItemLabel(key);
+ //inplace label
+ this.setValue(label);
this.save();
},
+ getItemValue: function(key) {
+ for(var i in this.selectItems) {
+ var item = this.selectItems[i];
+ if(item && item.id == key) {
+ return item.value;
+ }
+ }
+ },
+
+ saveItemValue: function(value) {
+ this.selValueInput.val(value);
+ },
+
+ getItemLabel: function(key) {
+ for(var i in this.selectItems) {
+ var item = this.selectItems[i];
+ if(item && item.id == key) {
+ return item.label;
+ }
+ }
+ },
+
__blurHandler: function(e) {
return false;
}
-
}
})());
Modified: branches/RF-8992/ui/input/ui/src/main/templates/inplaceInput.template.xml
===================================================================
--- branches/RF-8992/ui/input/ui/src/main/templates/inplaceInput.template.xml 2010-09-14 16:27:08 UTC (rev 19201)
+++ branches/RF-8992/ui/input/ui/src/main/templates/inplaceInput.template.xml 2010-09-14 17:05:21 UTC (rev 19202)
@@ -80,7 +80,7 @@
</c:if>
</span>
<script type="text/javascript">
- <cdk:call expression="buildScript(responseWriter, facesContext, component);"/>
+ <cdk:call expression="buildScript(responseWriter, facesContext, component, null);"/>
</script>
</span>
</cc:implementation>
Modified: branches/RF-8992/ui/input/ui/src/main/templates/inplaceSelect.template.xml
===================================================================
--- branches/RF-8992/ui/input/ui/src/main/templates/inplaceSelect.template.xml 2010-09-14 16:27:08 UTC (rev 19201)
+++ branches/RF-8992/ui/input/ui/src/main/templates/inplaceSelect.template.xml 2010-09-14 17:05:21 UTC (rev 19202)
@@ -32,7 +32,7 @@
<cdk:object type="org.richfaces.component.InplaceState"
name="inplaceState" value="#{getInplaceState(component)}" />
<cdk:object type="java.lang.String" name="inplaceValue"
- value="#{getValue(facesContext, component)}" />
+ value="#{getSelectLabel(facesContext, component)}"/>
<cdk:object type="java.util.List" type-arguments="InplaceSelectBaseRenderer.ClientSelectItem" name="clientSelectItems"
value="#{getConvertedSelectItems(facesContext, component)}" />
@@ -47,8 +47,9 @@
<input id="#{clientId}:focus" type="image" style="position: absolute; top: 0px; left: 0px; outline-style: none;" class="rf-is-none" />
<span id="#{clientId}:edit" class="#{getEditStyleClass(component, inplaceState)}">
- <input id="#{clientId}:input" autocomplete="off" name="#{clientId}"
- type="text" value="#{getInputValue(facesContext, component)}"
+ <input id="#{clientId}selValue" name="#{clientId}" type="hidden" value="#{getValue(facesContext, component)}"/>
+ <input id="#{clientId}:input" autocomplete="off"
+ type="text" value="#{getSelectInputLabel(facesContext, component)}"
class="insel_field" style="width: #{component.attributes['inputWidth']};" readonly="readonly"
cdk:passThrough="tabIndex">
<cdk:call expression="renderInputHandlers(facesContext, component);" />
@@ -95,7 +96,7 @@
</span>
</span>
<script type="text/javascript">
- <cdk:call expression="buildScript(responseWriter, facesContext, component);" />
+ <cdk:call expression="buildScript(responseWriter, facesContext, component, clientSelectItems);" />
</script>
</span>
</cc:implementation>
14 years, 3 months
JBoss Rich Faces SVN: r19201 - in modules/tests/metamer/trunk/application/src/main: webapp/components/a4jAttachQueue and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2010-09-14 12:27:08 -0400 (Tue, 14 Sep 2010)
New Revision: 19201
Added:
modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/extending.xhtml
modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/nested.xhtml
modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/nestedExtension.xhtml
Removed:
modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/simple.xhtml
modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/wrapped.xhtml
Modified:
modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/A4JAttachQueueBean.java
modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/list.xhtml
Log:
a4j:attachQueue - modifications for beans and pages; added nestedExtension.xhtml page (RFPL-734)
Modified: modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/A4JAttachQueueBean.java
===================================================================
--- modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/A4JAttachQueueBean.java 2010-09-14 16:23:00 UTC (rev 19200)
+++ modules/tests/metamer/trunk/application/src/main/java/org/richfaces/tests/metamer/bean/A4JAttachQueueBean.java 2010-09-14 16:27:08 UTC (rev 19201)
@@ -59,14 +59,27 @@
// initialize attributes
attributes = Attributes.getUIComponentAttributes(UIAttachQueue.class, getClass());
- attributes.setAttribute("rendered", true);
- attributes.setAttribute("requestDelay", 1500);
+ initializeAttributes(attributes);
+ attributes.setAttribute("requestDelay", 500);
attributes2 = Attributes.getUIComponentAttributes(UIAttachQueue.class, getClass());
- attributes2.setAttribute("rendered", true);
+ initializeAttributes(attributes2);
attributes2.setAttribute("requestDelay", 1500);
-
}
+
+ private void initializeAttributes(Attributes attributes) {
+ attributes.setAttribute("rendered", true);
+
+ // hidden attributes
+ attributes.remove("queueId");
+
+ // not implemented yet
+ // TODO RFPL-734
+ attributes.remove("name");
+ attributes.remove("timeout");
+ attributes.remove("requestGroupingId");
+ attributes.remove("ignoreDupResponses");
+ }
public Attributes getAttributes() {
return attributes;
Copied: modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/extending.xhtml (from rev 19188, modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/wrapped.xhtml)
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/extending.xhtml (rev 0)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/extending.xhtml 2010-09-14 16:27:08 UTC (rev 19201)
@@ -0,0 +1,113 @@
+<!--
+JBoss, Home of Professional Open Source
+Copyright 2010, Red Hat, Inc. and individual contributors
+by the @authors tag. See the copyright.txt in the distribution for a
+full listing of individual contributors.
+
+This is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License as
+published by the Free Software Foundation; either version 2.1 of
+the License, or (at your option) any later version.
+
+This software is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this software; if not, write to the Free
+Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+02110-1301 USA, or see the FSF site: http://www.fsf.org.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:metamer="http://java.sun.com/jsf/composite/metamer" xmlns:rich="http://richfaces.org/rich">
+
+ <ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="head">
+ <f:metadata>
+ <f:viewParam name="templates" value="#{templateBean.templates}">
+ <f:converter converterId="templatesListConverter" />
+ </f:viewParam>
+ </f:metadata>
+
+ <script type="text/javascript">
+ function add(element) {
+ element.innerHTML = 1 + parseInt(element.innerHTML);
+ }
+
+ function updateDifferenceTime() {
+ var eventTime1 = parseInt(jQuery(#{rich:element('eventTime1:outputTime')}).attr('title'));
+ var eventTime2 = parseInt(jQuery(#{rich:element('eventTime2:outputTime')}).attr('title'));
+ var beginTime = parseInt(jQuery(#{rich:element('beginTime:outputTime')}).attr('title'));
+
+ var eventTime = Math.max(eventTime1, eventTime2);
+ jQuery(#{rich:element('differenceTime')}).text(beginTime - eventTime);
+ }
+ </script>
+ </ui:define>
+
+ <ui:define name="outOfTemplateBefore">
+ </ui:define>
+
+ <ui:define name="component">
+ <a4j:queue id="queue1" ignoreDupResponses="#{a4jQueueBean.attributes['ignoreDupResponses'].value}"
+ name="#{a4jQueueBean.attributes['name'].value}"
+ onbeforedomupdate="#{a4jQueueBean.attributes['onbeforedomupdate'].value}"
+ oncomplete="#{a4jQueueBean.attributes['oncomplete'].value}"
+ onerror="#{a4jQueueBean.attributes['onerror'].value}" onevent="#{a4jQueueBean.attributes['event'].value}"
+ onrequestdequeue="#{a4jQueueBean.attributes['onrequestdequeue'].value}"
+ onrequestqueue="#{a4jQueueBean.attributes['onrequestqueue'].value}"
+ onsubmit="#{a4jQueueBean.attributes['onsubmit'].value}"
+ rendered="#{a4jQueueBean.attributes['rendered'].value}"
+ requestDelay="#{a4jQueueBean.attributes['requestDelay'].value}" status="status1"
+ timeout="#{a4jQueueBean.attributes['timeout'].value}" />
+
+ <a4j:ajax event="keyup" render="output1, output2" execute="@form" onbegin="add(#{rich:element('requests')}); "
+ oncomplete="refresh(#{rich:element('completeTime:outputTime')}); updateDifferenceTime();" onbeforedomupdate="add(#{rich:element('updates')});">
+ <a4j:attachQueue id="a4jAttachQueue"
+ ignoreDupResponses="#{a4jAttachQueueBean.attributes['ignoreDupResponses'].value}"
+ name="#{a4jAttachQueueBean.attributes['name'].value}"
+ onrequestdequeue="#{a4jAttachQueueBean.attributes['onrequestdequeue'].value}"
+ onrequestqueue="#{a4jAttachQueueBean.attributes['onrequestqueue'].value}"
+ queueId="#{a4jAttachQueueBean.attributes['queueId'].value}"
+ rendered="#{a4jAttachQueueBean.attributes['rendered'].value}"
+ requestDelay="#{a4jAttachQueueBean.attributes['requestDelay'].value}"
+ requestGroupingId="#{a4jAttachQueueBean.attributes['requestGroupingId'].value}"
+ timeout="#{a4jAttachQueueBean.attributes['timeout'].value}"/>
+
+ <h:inputText id="input1" value="#{a4jAttachQueueBean.text1}" onkeyup="add(#{rich:element('events')});"/>
+ <h:inputText id="input2" value="#{a4jAttachQueueBean.text2}" onkeyup="add(#{rich:element('events')});"/>
+ </a4j:ajax>
+
+ <h:panelGrid columns="2">
+ Output 1:
+ <h:outputText id="output1" value="#{a4jAttachQueueBean.text1}" style="font-weight:bold;"/>
+ Output 2:
+ <h:outputText id="output2" value="#{a4jAttachQueueBean.text2}" style="font-weight:bold;"/>
+ Events count:
+ <h:outputText value="0" id="events" />
+ Requests count:
+ <h:outputText value="0" id="requests" />
+ DOM updates count:
+ <h:outputText value="0" id="updates" />
+ Difference time:
+ <h:outputText value="" id="differenceTime" />
+ </h:panelGrid>
+
+ </ui:define>
+
+ <ui:define name="outOfTemplateAfter">
+ Attributes for wrapping attach queue
+ <metamer:attributes value="#{a4jAttachQueueBean.attributes}" id="attributes" />
+ <br />
+ Attributes for queue1
+ <br />
+ <metamer:attributes value="#{a4jQueueBean.attributes}" id="queueAttributes" />
+ </ui:define>
+
+ </ui:composition>
+</html>
\ No newline at end of file
Modified: modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/list.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/list.xhtml 2010-09-14 16:23:00 UTC (rev 19200)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/list.xhtml 2010-09-14 16:27:08 UTC (rev 19201)
@@ -30,13 +30,26 @@
<ui:define name="links">
- <metamer:testPageLink id="simple" outcome="simple" value="Simple">
- Page containing <b>a4j:attachQueue</b>, two inputs and input boxes for all its attributes.
+ <metamer:testPageLink id="nested" outcome="nested" value="Nested">
+ Twice <b>h:inputText</b> with nested <b>a4j:ajax</b> with attached <b>a4j:attachQueue</b>.
+ <br />
+ Contains also one named <b>a4j:queue</b> to try queue naming and attaching.
</metamer:testPageLink>
- <metamer:testPageLink id="wrapped" outcome="wrapped" value="Wrapped">
- Page containing <b>a4j:attachQueue</b>, a4j:ajax wrapping two inputs and input boxes for all its attributes.
+ <metamer:testPageLink id="extending" outcome="extending" value="Extending">
+ <font color="red" style="font-weigth: bold">Doesn't work currently due to RF-9351.</font>
+ <br />
+ Two <b>h:inputText</b>s are wrapped in <b>a4j:ajax</b>, which is extended by <b>a4j:attachQueue</b>.
+ <br />
+ Contains also one named <b>a4j:queue</b> to try queue naming and attaching.
</metamer:testPageLink>
+
+ <metamer:testPageLink id="nestedExtension" outcome="nestedExtension" value="Nested Extension">
+ <div><font color="red" style="font-weigth: bold">Doesn't work currently due to RF-9351.</font></div>
+ <div>Two nested a4j:ajaxs, each extended by own a4j:attachQueue.</div>
+ <div>First a4j:ajax controls clicks to h:inputText and a4j:commandButton.</div>
+ <div>Second a4j:ajax controls valueChanges of h:inputText.</div>
+ </metamer:testPageLink>
</ui:define>
Copied: modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/nested.xhtml (from rev 19188, modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/simple.xhtml)
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/nested.xhtml (rev 0)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/nested.xhtml 2010-09-14 16:27:08 UTC (rev 19201)
@@ -0,0 +1,142 @@
+<!--
+JBoss, Home of Professional Open Source
+Copyright 2010, Red Hat, Inc. and individual contributors
+by the @authors tag. See the copyright.txt in the distribution for a
+full listing of individual contributors.
+
+This is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License as
+published by the Free Software Foundation; either version 2.1 of
+the License, or (at your option) any later version.
+
+This software is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this software; if not, write to the Free
+Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+02110-1301 USA, or see the FSF site: http://www.fsf.org.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:metamer="http://java.sun.com/jsf/composite/metamer" xmlns:rich="http://richfaces.org/rich">
+
+ <ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="head">
+ <f:metadata>
+ <f:viewParam name="templates" value="#{templateBean.templates}">
+ <f:converter converterId="templatesListConverter" />
+ </f:viewParam>
+ </f:metadata>
+
+ <script type="text/javascript">
+ function add(element) {
+ element.innerHTML = 1 + parseInt(element.innerHTML);
+ }
+
+ function updateDifferenceTime() {
+ var eventTime1 = parseInt(jQuery(#{rich:element('eventTime1:outputTime')}).attr('title'));
+ var eventTime2 = parseInt(jQuery(#{rich:element('eventTime2:outputTime')}).attr('title'));
+ var beginTime = parseInt(jQuery(#{rich:element('beginTime:outputTime')}).attr('title'));
+
+ var eventTime = Math.max(eventTime1, eventTime2);
+ jQuery(#{rich:element('differenceTime')}).text(beginTime - eventTime);
+ }
+ </script>
+ </ui:define>
+
+ <ui:define name="outOfTemplateBefore">
+ </ui:define>
+
+ <ui:define name="component">
+ <a4j:queue id="queue1" ignoreDupResponses="#{a4jQueueBean.attributes['ignoreDupResponses'].value}"
+ name="#{a4jQueueBean.attributes['name'].value}"
+ onbeforedomupdate="#{a4jQueueBean.attributes['onbeforedomupdate'].value}"
+ oncomplete="#{a4jQueueBean.attributes['oncomplete'].value}"
+ onerror="#{a4jQueueBean.attributes['onerror'].value}" onevent="#{a4jQueueBean.attributes['event'].value}"
+ onrequestdequeue="#{a4jQueueBean.attributes['onrequestdequeue'].value}"
+ onrequestqueue="#{a4jQueueBean.attributes['onrequestqueue'].value}"
+ onsubmit="#{a4jQueueBean.attributes['onsubmit'].value}"
+ rendered="#{a4jQueueBean.attributes['rendered'].value}"
+ requestDelay="#{a4jQueueBean.attributes['requestDelay'].value}" status="status1"
+ timeout="#{a4jQueueBean.attributes['timeout'].value}" />
+
+ <h:inputText id="input1" value="#{a4jAttachQueueBean.text1}" onkeypress="add(#{rich:element('events1')}); refresh(#{rich:element('eventTime1:outputTime')}); ">
+ <a4j:ajax event="keypress" render="output1" execute="@form" onbegin="add(#{rich:element('requests')}); refresh(#{rich:element('beginTime:outputTime')}); "
+ onbeforedomupdate="add(#{rich:element('updates')});" oncomplete="refresh(#{rich:element('completeTime:outputTime')}); updateDifferenceTime(); ">
+ <a4j:attachQueue id="a4jAttachQueue1"
+ ignoreDupResponses="#{a4jAttachQueueBean.attributes['ignoreDupResponses'].value}"
+ name="#{a4jAttachQueueBean.attributes['name'].value}"
+ onrequestdequeue="#{a4jAttachQueueBean.attributes['onrequestdequeue'].value}"
+ onrequestqueue="#{a4jAttachQueueBean.attributes['onrequestqueue'].value}"
+ queueId="#{a4jAttachQueueBean.attributes['queueId'].value}"
+ rendered="#{a4jAttachQueueBean.attributes['rendered'].value}"
+ requestDelay="#{a4jAttachQueueBean.attributes['requestDelay'].value}"
+ requestGroupingId="#{a4jAttachQueueBean.attributes['requestGroupingId'].value}"
+ timeout="#{a4jAttachQueueBean.attributes['timeout'].value}"/>
+ </a4j:ajax>
+ </h:inputText>
+
+ <h:inputText id="input2" value="#{a4jAttachQueueBean.text2}" onkeypress="add(#{rich:element('events2')}); refresh(#{rich:element('eventTime2:outputTime')}); ">
+ <a4j:ajax event="keypress" render="output2" execute="@form" onbegin="add(#{rich:element('requests')}); refresh(#{rich:element('beginTime:outputTime')}); "
+ onbeforedomupdate="add(#{rich:element('updates')});" oncomplete="refresh(#{rich:element('completeTime:outputTime')}); updateDifferenceTime();">
+ <a4j:attachQueue id="a4jAttachQueue2"
+ ignoreDupResponses="#{a4jAttachQueueBean.attributes2['ignoreDupResponses'].value}"
+ name="#{a4jAttachQueueBean.attributes2['name'].value}"
+ onrequestdequeue="#{a4jAttachQueueBean.attributes2['onrequestdequeue'].value}"
+ onrequestqueue="#{a4jAttachQueueBean.attributes2['onrequestqueue'].value}"
+ queueId="#{a4jAttachQueueBean.attributes2['queueId'].value}"
+ rendered="#{a4jAttachQueueBean.attributes2['rendered'].value}"
+ requestDelay="#{a4jAttachQueueBean.attributes2['requestDelay'].value}"
+ requestGroupingId="#{a4jAttachQueueBean.attributes2['requestGroupingId'].value}"
+ timeout="#{a4jAttachQueueBean.attributes2['timeout'].value}"/>
+ </a4j:ajax>
+ </h:inputText>
+
+ <h:panelGrid columns="2">
+ Output 1:
+ <h:outputText id="output1" value="#{a4jAttachQueueBean.text1}" style="font-weight:bold;"/>
+ Output 2:
+ <h:outputText id="output2" value="#{a4jAttachQueueBean.text2}" style="font-weight:bold;"/>
+ Event 1 count:
+ <h:outputText value="0" id="events1" />
+ Event 2 count:
+ <h:outputText value="0" id="events2" />
+ Requests count:
+ <h:outputText value="0" id="requests" />
+ DOM updates count:
+ <h:outputText value="0" id="updates" />
+ Difference time:
+ <h:outputText value="" id="differenceTime" />
+ </h:panelGrid>
+
+ <h:panelGrid columns="1">
+ <metamer:clientTime id="eventTime1" label="Event 1 Time:" />
+ <metamer:clientTime id="eventTime2" label="Event 2 Time:" />
+ <metamer:clientTime id="beginTime" label="Begin Time:" />
+ <metamer:clientTime id="completeTime" label="Complete Time:" />
+ </h:panelGrid>
+
+ </ui:define>
+
+ <ui:define name="outOfTemplateAfter">
+ Attributes for first attach queue (first input)
+ <br/>
+ <metamer:attributes value="#{a4jAttachQueueBean.attributes}" id="attributes1" />
+ <br/>
+ Attributes for second attach queue (second input)
+ <br/>
+ <metamer:attributes value="#{a4jAttachQueueBean.attributes2}" id="attributes2" />
+ <br />
+ Attributes for queue1
+ <br />
+ <metamer:attributes value="#{a4jQueueBean.attributes}" id="queueAttributes" />
+ </ui:define>
+
+ </ui:composition>
+</html>
\ No newline at end of file
Added: modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/nestedExtension.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/nestedExtension.xhtml (rev 0)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/nestedExtension.xhtml 2010-09-14 16:27:08 UTC (rev 19201)
@@ -0,0 +1,157 @@
+<!--
+JBoss, Home of Professional Open Source
+Copyright 2010, Red Hat, Inc. and individual contributors
+by the @authors tag. See the copyright.txt in the distribution for a
+full listing of individual contributors.
+
+This is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License as
+published by the Free Software Foundation; either version 2.1 of
+the License, or (at your option) any later version.
+
+This software is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this software; if not, write to the Free
+Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+02110-1301 USA, or see the FSF site: http://www.fsf.org.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:metamer="http://java.sun.com/jsf/composite/metamer" xmlns:rich="http://richfaces.org/rich">
+
+<ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="head">
+ <f:metadata>
+ <f:viewParam name="templates" value="#{templateBean.templates}">
+ <f:converter converterId="templatesListConverter" />
+ </f:viewParam>
+ </f:metadata>
+
+ <script type="text/javascript">
+ function add(element) {
+ element.innerHTML = 1 + parseInt(element.innerHTML);
+ }
+
+ function updateDifferenceTime() {
+ var eventTime1 = parseInt(jQuery(#{rich:element('eventTime1:outputTime')}).attr('title'));
+ var eventTime2 = parseInt(jQuery(#{rich:element('eventTime2:outputTime')}).attr('title'));
+ var beginTime = parseInt(jQuery(#{rich:element('beginTime:outputTime')}).attr('title'));
+
+ var eventTime = Math.max(eventTime1, eventTime2);
+ jQuery(#{rich:element('differenceTime')}).text(beginTime - eventTime);
+ }
+ </script>
+ </ui:define>
+
+ <ui:define name="outOfTemplateBefore">
+ </ui:define>
+
+ <ui:define name="component">
+ <a4j:queue id="queue1" ignoreDupResponses="#{a4jQueueBean.attributes['ignoreDupResponses'].value}"
+ name="#{a4jQueueBean.attributes['name'].value}"
+ onbeforedomupdate="#{a4jQueueBean.attributes['onbeforedomupdate'].value}"
+ oncomplete="#{a4jQueueBean.attributes['oncomplete'].value}"
+ onerror="#{a4jQueueBean.attributes['onerror'].value}" onevent="#{a4jQueueBean.attributes['event'].value}"
+ onrequestdequeue="#{a4jQueueBean.attributes['onrequestdequeue'].value}"
+ onrequestqueue="#{a4jQueueBean.attributes['onrequestqueue'].value}"
+ onsubmit="#{a4jQueueBean.attributes['onsubmit'].value}"
+ rendered="#{a4jQueueBean.attributes['rendered'].value}"
+ requestDelay="#{a4jQueueBean.attributes['requestDelay'].value}" status="status1"
+ timeout="#{a4jQueueBean.attributes['timeout'].value}" />
+
+ <a4j:ajax event="click" execute="@form"
+ onbegin="add(#{rich:element('requests')}); refresh(#{rich:element('beginTime:outputTime')}); "
+ onbeforedomupdate="add(#{rich:element('updates')});"
+ oncomplete="refresh(#{rich:element('completeTime:outputTime')}); updateDifferenceTime(); ">
+
+ <a4j:attachQueue id="a4jAttachQueue1"
+ ignoreDupResponses="#{a4jAttachQueueBean.attributes['ignoreDupResponses'].value}"
+ name="#{a4jAttachQueueBean.attributes['name'].value}"
+ onrequestdequeue="#{a4jAttachQueueBean.attributes['onrequestdequeue'].value}"
+ onrequestqueue="#{a4jAttachQueueBean.attributes['onrequestqueue'].value}"
+ queueId="#{a4jAttachQueueBean.attributes['queueId'].value}"
+ rendered="#{a4jAttachQueueBean.attributes['rendered'].value}"
+ requestDelay="#{a4jAttachQueueBean.attributes['requestDelay'].value}"
+ requestGroupingId="#{a4jAttachQueueBean.attributes['requestGroupingId'].value}"
+ timeout="#{a4jAttachQueueBean.attributes['timeout'].value}" />
+
+ <h:inputText id="input1" value="#{a4jAttachQueueBean.text1}"
+ onclick="add(#{rich:element('events1')}); refresh(#{rich:element('eventTime1:outputTime')}); " />
+ <a4j:commandButton
+ onclick="add(#{rich:element('events1')}); refresh(#{rich:element('eventTime1:outputTime')}); "
+ id="a4jCommandButton1" value="First button" />
+
+ <a4j:ajax event="valueChange" render="output2" execute="@form"
+ onbegin="add(#{rich:element('requests')}); refresh(#{rich:element('beginTime:outputTime')}); "
+ onbeforedomupdate="add(#{rich:element('updates')});"
+ oncomplete="refresh(#{rich:element('completeTime:outputTime')}); updateDifferenceTime();">
+
+ <h:inputText id="input2" value="#{a4jAttachQueueBean.text2}"
+ onkeyup="add(#{rich:element('events2')}); refresh(#{rich:element('eventTime2:outputTime')}); " />
+ <a4j:commandButton id="a4jCommandButton2" value="First button" />
+
+ <a4j:attachQueue id="a4jAttachQueue2"
+ ignoreDupResponses="#{a4jAttachQueueBean.attributes2['ignoreDupResponses'].value}"
+ name="#{a4jAttachQueueBean.attributes2['name'].value}"
+ onrequestdequeue="#{a4jAttachQueueBean.attributes2['onrequestdequeue'].value}"
+ onrequestqueue="#{a4jAttachQueueBean.attributes2['onrequestqueue'].value}"
+ queueId="#{a4jAttachQueueBean.attributes2['queueId'].value}"
+ rendered="#{a4jAttachQueueBean.attributes2['rendered'].value}"
+ requestDelay="#{a4jAttachQueueBean.attributes2['requestDelay'].value}"
+ requestGroupingId="#{a4jAttachQueueBean.attributes2['requestGroupingId'].value}"
+ timeout="#{a4jAttachQueueBean.attributes2['timeout'].value}" />
+
+
+ </a4j:ajax>
+
+ </a4j:ajax>
+
+ <h:panelGrid columns="2">
+ Output 1:
+ <h:outputText id="output1" value="#{a4jAttachQueueBean.text1}" style="font-weight:bold;" />
+ Output 2:
+ <h:outputText id="output2" value="#{a4jAttachQueueBean.text2}" style="font-weight:bold;" />
+ Event 1 count:
+ <h:outputText value="0" id="events1" />
+ Event 2 count:
+ <h:outputText value="0" id="events2" />
+ Requests count:
+ <h:outputText value="0" id="requests" />
+ DOM updates count:
+ <h:outputText value="0" id="updates" />
+ Difference time:
+ <h:outputText value="" id="differenceTime" />
+ </h:panelGrid>
+
+ <h:panelGrid columns="1">
+ <metamer:clientTime id="eventTime1" label="Event 1 Time:" />
+ <metamer:clientTime id="eventTime2" label="Event 2 Time:" />
+ <metamer:clientTime id="beginTime" label="Begin Time:" />
+ <metamer:clientTime id="completeTime" label="Complete Time:" />
+ </h:panelGrid>
+
+ </ui:define>
+
+ <ui:define name="outOfTemplateAfter">
+ Attributes for first attach queue (first input)
+ <br />
+ <metamer:attributes value="#{a4jAttachQueueBean.attributes}" id="attributes" />
+ <br />
+ Attributes for second attach queue (second input)
+ <br />
+ <metamer:attributes value="#{a4jAttachQueueBean.attributes2}" id="attributes2" />
+ <br />
+ Attributes for queue1
+ <br />
+ <metamer:attributes value="#{a4jQueueBean.attributes}" id="queueAttributes" />
+ </ui:define>
+
+</ui:composition>
+</html>
\ No newline at end of file
Deleted: modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/simple.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/simple.xhtml 2010-09-14 16:23:00 UTC (rev 19200)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/simple.xhtml 2010-09-14 16:27:08 UTC (rev 19201)
@@ -1,125 +0,0 @@
-<!--
-JBoss, Home of Professional Open Source
-Copyright 2010, Red Hat, Inc. and individual contributors
-by the @authors tag. See the copyright.txt in the distribution for a
-full listing of individual contributors.
-
-This is free software; you can redistribute it and/or modify it
-under the terms of the GNU Lesser General Public License as
-published by the Free Software Foundation; either version 2.1 of
-the License, or (at your option) any later version.
-
-This software is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this software; if not, write to the Free
-Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-02110-1301 USA, or see the FSF site: http://www.fsf.org.
--->
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
- xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
- xmlns:metamer="http://java.sun.com/jsf/composite/metamer" xmlns:rich="http://richfaces.org/rich">
-
- <ui:composition template="/templates/template.xhtml">
-
- <ui:define name="head">
- <f:metadata>
- <f:viewParam name="templates" value="#{templateBean.templates}">
- <f:converter converterId="templatesListConverter" />
- </f:viewParam>
- </f:metadata>
-
- <script type="text/javascript">
- var events = 0;
- var updates = 0;
- var requests = 0;
-
- function addEvent() {
- events++;
- }
- function addUpdate() {
- updates++;
- }
- function addRequest() {
- requests++;
- }
-
- function printCounts() {
- #{rich:element('events')}.innerHTML=events;
- #{rich:element('updates')}.innerHTML=updates;
- #{rich:element('requests')}.innerHTML=requests;
- }
- </script>
- </ui:define>
-
- <ui:define name="outOfTemplateBefore">
- </ui:define>
-
- <ui:define name="component">
- <a4j:queue id="queue1"/>
- <a4j:queue id="queue2"/>
-
- <h:inputText id="input1" value="#{a4jAttachQueueBean.text1}" onkeyup="addEvent();">
- <a4j:ajax event="keyup" render="output1" execute="@form" onbegin="addRequest();"
- oncomplete="printCounts()" onbeforedomupdate="addUpdate()">
- <a4j:attachQueue id="a4jAttachQueue1"
- ignoreDupResponses="#{a4jAttachQueueBean.attributes['ignoreDupResponses'].value}"
- name="#{a4jAttachQueueBean.attributes['name'].value}"
- onrequestdequeue="#{a4jAttachQueueBean.attributes['onrequestdequeue'].value}"
- onrequestqueue="#{a4jAttachQueueBean.attributes['onrequestqueue'].value}"
- queueId="#{a4jAttachQueueBean.attributes['queueId'].value}"
- rendered="#{a4jAttachQueueBean.attributes['rendered'].value}"
- requestDelay="#{a4jAttachQueueBean.attributes['requestDelay'].value}"
- requestGroupingId="#{a4jAttachQueueBean.attributes['requestGroupingId'].value}"
- timeout="#{a4jAttachQueueBean.attributes['timeout'].value}"/>
- </a4j:ajax>
- </h:inputText>
-
- <h:inputText id="input2" value="#{a4jAttachQueueBean.text2}" onkeyup="addEvent();">
- <a4j:ajax event="keyup" render="output2" execute="@form" onbegin="addRequest();"
- oncomplete="printCounts()" onbeforedomupdate="addUpdate()">
- <a4j:attachQueue id="a4jAttachQueue2"
- ignoreDupResponses="#{a4jAttachQueueBean.attributes2['ignoreDupResponses'].value}"
- name="#{a4jAttachQueueBean.attributes2['name'].value}"
- onrequestdequeue="#{a4jAttachQueueBean.attributes2['onrequestdequeue'].value}"
- onrequestqueue="#{a4jAttachQueueBean.attributes2['onrequestqueue'].value}"
- queueId="#{a4jAttachQueueBean.attributes2['queueId'].value}"
- rendered="#{a4jAttachQueueBean.attributes2['rendered'].value}"
- requestDelay="#{a4jAttachQueueBean.attributes2['requestDelay'].value}"
- requestGroupingId="#{a4jAttachQueueBean.attributes2['requestGroupingId'].value}"
- timeout="#{a4jAttachQueueBean.attributes2['timeout'].value}"/>
- </a4j:ajax>
- </h:inputText>
-
- <h:panelGrid columns="2">
- Output 1:
- <h:outputText id="output1" value="#{a4jAttachQueueBean.text1}" style="font-weight:bold;"/>
- Output 2:
- <h:outputText id="output2" value="#{a4jAttachQueueBean.text2}" style="font-weight:bold;"/>
- Events count:
- <h:outputText value="0" id="events" />
- Requests count:
- <h:outputText value="0" id="requests" />
- DOM updates count:
- <h:outputText value="0" id="updates" />
- </h:panelGrid>
-
- </ui:define>
-
- <ui:define name="outOfTemplateAfter">
- Attributes for first attach queue (first input)
- <br/>
- <metamer:attributes value="#{a4jAttachQueueBean.attributes}" id="attributes" />
- <br/>
- Attributes for second attach queue (second input)
- <br/>
- <metamer:attributes value="#{a4jAttachQueueBean.attributes2}" id="attributes2" />
- </ui:define>
-
- </ui:composition>
-</html>
\ No newline at end of file
Deleted: modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/wrapped.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/wrapped.xhtml 2010-09-14 16:23:00 UTC (rev 19200)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/a4jAttachQueue/wrapped.xhtml 2010-09-14 16:27:08 UTC (rev 19201)
@@ -1,104 +0,0 @@
-<!--
-JBoss, Home of Professional Open Source
-Copyright 2010, Red Hat, Inc. and individual contributors
-by the @authors tag. See the copyright.txt in the distribution for a
-full listing of individual contributors.
-
-This is free software; you can redistribute it and/or modify it
-under the terms of the GNU Lesser General Public License as
-published by the Free Software Foundation; either version 2.1 of
-the License, or (at your option) any later version.
-
-This software is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this software; if not, write to the Free
-Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-02110-1301 USA, or see the FSF site: http://www.fsf.org.
--->
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
- xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
- xmlns:metamer="http://java.sun.com/jsf/composite/metamer" xmlns:rich="http://richfaces.org/rich">
-
- <ui:composition template="/templates/template.xhtml">
-
- <ui:define name="head">
- <f:metadata>
- <f:viewParam name="templates" value="#{templateBean.templates}">
- <f:converter converterId="templatesListConverter" />
- </f:viewParam>
- </f:metadata>
-
- <script type="text/javascript">
- var events = 0;
- var updates = 0;
- var requests = 0;
-
- function addEvent() {
- events++;
- }
- function addUpdate() {
- updates++;
- }
- function addRequest() {
- requests++;
- }
-
- function printCounts() {
- #{rich:element('events')}.innerHTML=events;
- #{rich:element('updates')}.innerHTML=updates;
- #{rich:element('requests')}.innerHTML=requests;
- }
- </script>
- </ui:define>
-
- <ui:define name="outOfTemplateBefore">
- </ui:define>
-
- <ui:define name="component">
- <a4j:queue id="queue1"/>
- <a4j:queue id="queue2"/>
-
- <a4j:ajax event="keyup" render="output1, output2" execute="@form" onbegin="addRequest();"
- oncomplete="printCounts()" onbeforedomupdate="addUpdate()">
- <a4j:attachQueue id="a4jAttachQueue"
- ignoreDupResponses="#{a4jAttachQueueBean.attributes['ignoreDupResponses'].value}"
- name="#{a4jAttachQueueBean.attributes['name'].value}"
- onrequestdequeue="#{a4jAttachQueueBean.attributes['onrequestdequeue'].value}"
- onrequestqueue="#{a4jAttachQueueBean.attributes['onrequestqueue'].value}"
- queueId="#{a4jAttachQueueBean.attributes['queueId'].value}"
- rendered="#{a4jAttachQueueBean.attributes['rendered'].value}"
- requestDelay="#{a4jAttachQueueBean.attributes['requestDelay'].value}"
- requestGroupingId="#{a4jAttachQueueBean.attributes['requestGroupingId'].value}"
- timeout="#{a4jAttachQueueBean.attributes['timeout'].value}"/>
-
- <h:inputText id="input1" value="#{a4jAttachQueueBean.text1}" onkeyup="addEvent();"/>
- <h:inputText id="input2" value="#{a4jAttachQueueBean.text2}" onkeyup="addEvent();"/>
- </a4j:ajax>
-
- <h:panelGrid columns="2">
- Output 1:
- <h:outputText id="output1" value="#{a4jAttachQueueBean.text1}" style="font-weight:bold;"/>
- Output 2:
- <h:outputText id="output2" value="#{a4jAttachQueueBean.text2}" style="font-weight:bold;"/>
- Events count:
- <h:outputText value="0" id="events" />
- Requests count:
- <h:outputText value="0" id="requests" />
- DOM updates count:
- <h:outputText value="0" id="updates" />
- </h:panelGrid>
-
- </ui:define>
-
- <ui:define name="outOfTemplateAfter">
- <metamer:attributes value="#{a4jAttachQueueBean.attributes}" id="attributes" />
- </ui:define>
-
- </ui:composition>
-</html>
\ No newline at end of file
14 years, 3 months
JBoss Rich Faces SVN: r19200 - in modules/tests/metamer/trunk/ftest-source/src/main/java/org: richfaces/tests/metamer/ftest and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2010-09-14 12:23:00 -0400 (Tue, 14 Sep 2010)
New Revision: 19200
Added:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/AttachQueueAttributes.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/TestNestedAttachQueue.java
Removed:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueLocators.java
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/WaitFactory.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueModel.java
Log:
a4j:attachQueue - 4 initial tests for nested.xhtml (RFPL-734)
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/WaitFactory.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/WaitFactory.java 2010-09-14 15:38:08 UTC (rev 19199)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/WaitFactory.java 2010-09-14 16:23:00 UTC (rev 19200)
@@ -32,6 +32,14 @@
import static org.jboss.test.selenium.SystemProperties.SeleniumTimeoutType.MODEL;
import org.jboss.test.selenium.waiting.ajax.AjaxWaiting;
+import org.jboss.test.selenium.waiting.conditions.AlertEquals;
+import org.jboss.test.selenium.waiting.conditions.AlertPresent;
+import org.jboss.test.selenium.waiting.conditions.AttributeEquals;
+import org.jboss.test.selenium.waiting.conditions.AttributePresent;
+import org.jboss.test.selenium.waiting.conditions.CountEquals;
+import org.jboss.test.selenium.waiting.conditions.ElementPresent;
+import org.jboss.test.selenium.waiting.conditions.StyleEquals;
+import org.jboss.test.selenium.waiting.conditions.TextEquals;
import org.jboss.test.selenium.waiting.selenium.SeleniumWaiting;
/**
@@ -52,4 +60,13 @@
*/
public static SeleniumWaiting waitModel = waitSelenium().interval(WAIT_MODEL_INTERVAL).timeout(
getSeleniumTimeout(MODEL));
+
+ public static ElementPresent elementPresent = ElementPresent.getInstance();
+ public static TextEquals textEquals = TextEquals.getInstance();
+ public static StyleEquals styleEquals = StyleEquals.getInstance();
+ public static AttributePresent attributePresent = AttributePresent.getInstance();
+ public static AttributeEquals attributeEquals = AttributeEquals.getInstance();
+ public static AlertPresent alertPresent = AlertPresent.getInstance();
+ public static AlertEquals alertEquals = AlertEquals.getInstance();
+ public static CountEquals countEquals = CountEquals.getInstance();
}
Added: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/AttachQueueAttributes.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/AttachQueueAttributes.java (rev 0)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/AttachQueueAttributes.java 2010-09-14 16:23:00 UTC (rev 19200)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * 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.a4jAttachQueue;
+
+import org.jboss.test.selenium.encapsulated.JavaScript;
+import org.jboss.test.selenium.locator.JQueryLocator;
+import org.jboss.test.selenium.locator.ExtendedLocator;
+import org.richfaces.tests.metamer.ftest.AbstractComponentAttributes;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class AttachQueueAttributes extends AbstractComponentAttributes {
+
+ public AttachQueueAttributes() {
+ }
+
+ public AttachQueueAttributes(ExtendedLocator<JQueryLocator> root) {
+ super(root);
+ }
+
+ public void setIgnoreDupResponses(boolean ignoreDupResponses) {
+ setProperty("ignoreDupResponses", ignoreDupResponses);
+ }
+
+ public void setName(String name) {
+ setProperty("name", name);
+ }
+
+ public void setOnRequestDequeue(JavaScript onRequestDequeue) {
+ setProperty("onrequestdequeue", onRequestDequeue);
+ }
+
+ public void setOnRequestQueue(JavaScript onRequestQueue) {
+ setProperty("onrequestqueue", onRequestQueue);
+ }
+
+ public void setQueueId(String queueId) {
+ setProperty("queueId", queueId);
+ }
+
+ public void setRendered(boolean rendered) {
+ setProperty("rendered", rendered);
+ }
+
+ public void setRequestDelay(long requestDelay) {
+ setProperty("requestDelay", requestDelay);
+ }
+
+ public void setRequestGroupingId(String requestGroupingId) {
+ setProperty("rquestGroupingId", requestGroupingId);
+ }
+
+ public void setTimeout(long timeout) {
+ setProperty("timeout", timeout);
+ }
+}
Added: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/TestNestedAttachQueue.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/TestNestedAttachQueue.java (rev 0)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jAttachQueue/TestNestedAttachQueue.java 2010-09-14 16:23:00 UTC (rev 19200)
@@ -0,0 +1,137 @@
+/*******************************************************************************
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * 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.a4jAttachQueue;
+
+import static org.jboss.test.selenium.dom.Event.KEYPRESS;
+import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
+import static org.jboss.test.selenium.utils.text.SimplifiedFormat.format;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import java.net.URL;
+
+import org.jboss.cheiron.halt.XHRHalter;
+import org.jboss.cheiron.halt.XHRState;
+import org.jboss.test.selenium.waiting.retrievers.Retriever;
+import org.richfaces.tests.metamer.ftest.AbstractMetamerTest;
+import org.richfaces.tests.metamer.ftest.a4jQueue.QueueAttributes;
+import org.richfaces.tests.metamer.ftest.a4jQueue.QueueModel;
+import org.richfaces.tests.metamer.ftest.a4jQueue.QueueModel.Input;
+import org.richfaces.tests.metamer.ftest.annotations.Inject;
+import org.richfaces.tests.metamer.ftest.annotations.IssueTracking;
+import org.richfaces.tests.metamer.ftest.annotations.Use;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class TestNestedAttachQueue extends AbstractMetamerTest {
+
+ static final Long GLOBAL_DELAY = 10000L;
+ static final Long DELAY_A = 3000L;
+ static final Long DELAY_B = 5000L;
+
+ QueueModel queue = new QueueModel();
+
+ AttachQueueAttributes attributesAttachQueue1 = new AttachQueueAttributes(pjq("table.attributes[id$=attributes1]"));
+ AttachQueueAttributes attributesAttachQueue2 = new AttachQueueAttributes(pjq("table.attributes[id$=attributes2]"));
+ QueueAttributes attributesQueue1 = new QueueAttributes(pjq("table.attributes[id$=queueAttributes]"));
+
+ @Override
+ public URL getTestUrl() {
+ return buildUrl(contextPath, "faces/components/a4jAttachQueue/nested.xhtml");
+ }
+
+ @BeforeMethod
+ public void setupDelays() {
+ attributesAttachQueue1.setRequestDelay(DELAY_A);
+ attributesAttachQueue2.setRequestDelay(DELAY_B);
+ attributesQueue1.setRequestDelay(GLOBAL_DELAY);
+ }
+
+ @Test
+ public void testDelay() {
+ queue.initializeTimes();
+
+ queue.fireEvent(Input.FIRST, 1);
+
+ queue.checkTimes(Input.FIRST, DELAY_A);
+ }
+
+ @Test
+ public void testNoDelay() {
+ attributesAttachQueue1.setRequestDelay(0);
+
+ queue.initializeCounts();
+
+ XHRHalter.enable();
+
+ queue.fireEvent(Input.FIRST, 4);
+ queue.checkCounts(4, 0, 1, 0);
+
+ XHRHalter halter = XHRHalter.getHandleBlocking();
+ queue.checkCounts(4, 0, 1, 0);
+
+ halter.complete();
+ queue.checkCounts(4, 0, 2, 1);
+
+ halter.waitForOpen();
+ queue.checkCounts(4, 0, 2, 1);
+
+ halter.complete();
+ queue.checkCounts(4, 0, 2, 2);
+ }
+
+ @Test
+ public void testTimingOneQueueTwoEvents() {
+ queue.initializeTimes();
+
+ XHRHalter.enable();
+
+ queue.fireEvent(Input.FIRST, 3);
+ queue.fireEvent(Input.SECOND, 1);
+
+ XHRHalter halter = XHRHalter.getHandleBlocking();
+ halter.complete();
+ halter.waitForOpen();
+ halter.complete();
+
+ queue.checkTimes(Input.SECOND, DELAY_A);
+ queue.checkNoDelayBetweenEvents();
+ }
+
+ @Test
+ @IssueTracking("https://jira.jboss.org/browse/RF-9328")
+ public void testRendered() {
+ attributesAttachQueue1.setRequestDelay(1500);
+ attributesAttachQueue1.setRendered(false);
+
+ queue.initializeTimes();
+ queue.fireEvent(1);
+
+ // check that no requestDelay is applied while renderer=false
+ queue.checkTimes(0);
+ // TODO should check that no attributes is applied with renderes=false
+ }
+}
\ No newline at end of file
Deleted: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueLocators.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueLocators.java 2010-09-14 15:38:08 UTC (rev 19199)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueLocators.java 2010-09-14 16:23:00 UTC (rev 19200)
@@ -1,93 +0,0 @@
-package org.richfaces.tests.metamer.ftest.a4jQueue;
-
-import static org.jboss.cheiron.retriever.RetrieverAdapter.integerAdapter;
-import static org.jboss.cheiron.retriever.RetrieverAdapter.longAdapter;
-import static org.jboss.test.selenium.locator.Attribute.TITLE;
-import static org.jboss.test.selenium.locator.reference.ReferencedLocator.ref;
-import static org.jboss.test.selenium.waiting.retrievers.RetrieverFactory.RETRIEVE_ATTRIBUTE;
-import static org.jboss.test.selenium.waiting.retrievers.RetrieverFactory.RETRIEVE_TEXT;
-import static org.richfaces.tests.metamer.ftest.AbstractMetamerTest.pjq;
-
-import org.jboss.test.selenium.locator.AttributeLocator;
-import org.jboss.test.selenium.locator.ElementLocator;
-import org.jboss.test.selenium.locator.ExtendedLocator;
-import org.jboss.test.selenium.locator.JQueryLocator;
-import org.jboss.test.selenium.locator.reference.LocatorReference;
-import org.jboss.test.selenium.locator.reference.ReferencedLocator;
-import org.jboss.test.selenium.waiting.retrievers.Retriever;
-
-public class QueueLocators {
-
- LocatorReference<JQueryLocator> form = new LocatorReference<JQueryLocator>(null);
- LocatorReference<JQueryLocator> attributesPanel = new LocatorReference<JQueryLocator>(null);
-
- ReferencedLocator<JQueryLocator> input1 = ref(form, "input:text[id$=input1]");
- ReferencedLocator<JQueryLocator> input2 = ref(form, "input:text[id$=input2]");
- ReferencedLocator<JQueryLocator> attributesTable = ref(attributesPanel, "table.attributes");
-
- QueueAttributes attributes = new QueueAttributes(attributesTable);
-
- ElementLocator<?> events1 = ref(form, "span[id$=events1]");
- ElementLocator<?> events2 = ref(form, "span[id$=events2]");
- ElementLocator<?> requests = ref(form, "span[id$=requests]");
- ElementLocator<?> updates = ref(form, "span[id$=updates]");
-
- AttributeLocator<?> event1Time = ref(form, "span[id$=eventTime1\\:outputTime]").getAttribute(TITLE);
- AttributeLocator<?> event2Time = ref(form, "span[id$=eventTime2\\:outputTime]").getAttribute(TITLE);
- AttributeLocator<?> beginTime = ref(form, "span[id$=beginTime\\:outputTime]").getAttribute(TITLE);
- AttributeLocator<?> completeTime = ref(form, "span[id$=completeTime\\:outputTime]").getAttribute(TITLE);
-
- Retriever<Integer> retrieveEvent1Count = integerAdapter(RETRIEVE_TEXT.locator(events1));
- Retriever<Integer> retrieveEvent2Count = integerAdapter(RETRIEVE_TEXT.locator(events2));
- Retriever<Integer> retrieveRequestCount = integerAdapter(RETRIEVE_TEXT.locator(requests));
- Retriever<Integer> retrieveDOMUpdateCount = integerAdapter(RETRIEVE_TEXT.locator(updates));
-
- Retriever<Long> retrieveEvent1Time = longAdapter(RETRIEVE_ATTRIBUTE.attributeLocator(event1Time));
- Retriever<Long> retrieveEvent2Time = longAdapter(RETRIEVE_ATTRIBUTE.attributeLocator(event2Time));
- Retriever<Long> retrieveBeginTime = longAdapter(RETRIEVE_ATTRIBUTE.attributeLocator(beginTime));
- Retriever<Long> retrieveCompleteTime = longAdapter(RETRIEVE_ATTRIBUTE.attributeLocator(completeTime));
-
- private String identifier;
-
- public QueueLocators(String identifier, JQueryLocator queueRoot, JQueryLocator queueAttributesPanel) {
- this.identifier = identifier;
-
- form.setLocator(queueRoot);
- attributesPanel.setLocator(queueAttributesPanel);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((identifier == null) ? 0 : identifier.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- QueueLocators other = (QueueLocators) obj;
- if (identifier == null) {
- if (other.identifier != null) {
- return false;
- }
- } else if (!identifier.equals(other.identifier)) {
- return false;
- }
- return true;
- }
-
- @Override
- public String toString() {
- return "FormQueueLocators [identifier=" + identifier + "]";
- }
-}
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueModel.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueModel.java 2010-09-14 15:38:08 UTC (rev 19199)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueModel.java 2010-09-14 16:23:00 UTC (rev 19200)
@@ -13,6 +13,7 @@
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import static org.jboss.test.selenium.waiting.WaitFactory.waitAjax;
+import static org.jboss.test.selenium.waiting.WaitFactory.textEquals;
import org.jboss.test.selenium.framework.AjaxSelenium;
import org.jboss.test.selenium.framework.AjaxSeleniumProxy;
@@ -139,19 +140,29 @@
long deviation = Math.abs(actualDelay - requestDelay);
long maxDeviation = Math.max(100, requestDelay);
- if (isSeleniumDebug()) {
- System.out.println(format("deviation for requestDelay {0}: {1}", requestDelay, deviation));
- }
+ checkDeviation(deviation, maxDeviation);
- assertTrue(
- deviation <= maxDeviation,
- format("Deviation ({0}) is greater than maxDeviation ({1}) for requestDelay {2}", deviation, maxDeviation,
- requestDelay));
-
deviationTotal += deviation;
deviationCount += 1;
}
+ public void checkNoDelayBetweenEvents() {
+ long event1Time = retrieveEvent1Time.retrieve();
+ long event2Time = retrieveEvent2Time.retrieve();
+ long actualDelay = Math.abs(event1Time - event2Time);
+
+ checkDeviation(actualDelay, 50);
+ }
+
+ public void checkDeviation(long deviation, long maxDeviation) {
+ if (isSeleniumDebug()) {
+ System.out.println(format("deviation: {0}", deviation));
+ }
+
+ assertTrue(deviation <= maxDeviation,
+ format("Deviation ({0}) is greater than maxDeviation ({1})", deviation, maxDeviation));
+ }
+
public void checkAvgDeviation(long requestDelay) {
long maximumAvgDeviation = Math.max(25, Math.min(50, requestDelay / 4));
long averageDeviation = deviationTotal / deviationCount;
14 years, 3 months
JBoss Rich Faces SVN: r19199 - trunk/examples/output-demo/src/main/webapp/examples and 5 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2010-09-14 11:38:08 -0400 (Tue, 14 Sep 2010)
New Revision: 19199
Added:
trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml
trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml
trunk/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/TabPanel.js
Modified:
branches/RF-7944/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java
branches/RF-7944/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabRenderer.java
trunk/examples/output-demo/src/main/webapp/templates/template.xhtml
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/UITogglePanelTitledItem.java
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss
Log:
RF-7944 Tab Panel Component
Modified: branches/RF-7944/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java
===================================================================
--- branches/RF-7944/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java 2010-09-14 15:19:59 UTC (rev 19198)
+++ branches/RF-7944/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabPanelRenderer.java 2010-09-14 15:38:08 UTC (rev 19199)
@@ -22,10 +22,14 @@
package org.richfaces.renderkit.html;
+import org.ajax4jsf.javascript.JSObject;
import org.richfaces.component.AbstractTabPanel;
+import org.richfaces.component.AbstractTogglePanel;
+import org.richfaces.component.AbstractTogglePanelItem;
import org.richfaces.component.AbstractTogglePanelTitledItem;
import org.richfaces.component.html.HtmlTab;
import org.richfaces.component.util.HtmlUtil;
+import org.richfaces.renderkit.HtmlConstants;
import org.richfaces.renderkit.RenderKitUtils;
import javax.faces.application.ResourceDependencies;
@@ -34,8 +38,13 @@
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import java.io.IOException;
+import java.util.Map;
+import static org.richfaces.component.AbstractTogglePanelTitledItem.HeaderStates.*;
+import static org.richfaces.component.AbstractTogglePanelTitledItem.HeaderStates.active;
+import static org.richfaces.component.html.HtmlAccordion.PropertyKeys.height;
import static org.richfaces.component.util.HtmlUtil.concatClasses;
+import static org.richfaces.component.util.HtmlUtil.concatStyles;
import static org.richfaces.renderkit.RenderKitUtils.renderPassThroughAttributes;
/**
@@ -46,10 +55,12 @@
@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 = "tabPanel.ecss"),
@ResourceDependency(library = "org.richfaces", name = "TogglePanel.js"),
- @ResourceDependency(library = "org.richfaces", name = "script/TabPanel.js") })
+ @ResourceDependency(library = "org.richfaces", name = "TabPanel.js")
+})
public class TabPanelRenderer extends TogglePanelRenderer {
private static final RenderKitUtils.Attributes HEADER_ATTRIBUTES = RenderKitUtils.attributes()
@@ -66,81 +77,103 @@
@Override
protected void doEncodeBegin(ResponseWriter w, FacesContext context, UIComponent comp) throws IOException {
-// super.doEncodeBegin(writer, context, component);
+ super.doEncodeBegin(w, context, comp);
+ writeJavaScript(w, context, comp);
- // TODO id, class, user styles :) (inherit form toogle panel)
- w.startElement(DIV, comp);
- w.writeAttribute(STYLE, "width: 100%;", null);
+ writeTabsLine(w, context, comp);
+ writeTabsLineSeparator(w);
+ }
+ private void writeTabsLineSeparator(ResponseWriter writer) throws IOException {
+ writer.write("<div class='rf-tb-hdr_border'></div>");
+ }
+
+ private void writeTabsLine(ResponseWriter w, FacesContext context, UIComponent comp) throws IOException {
w.startElement(DIV, comp);
- w.writeAttribute(CLASS, "rftp_toptab_tabline_vis", null);
+ w.writeAttribute(CLASS, "rf-tb-hdr_tabline_vis", null);
w.startElement("table", comp);
- w.writeAttribute("class", "rftp_toptab_tabs", null);
+ w.writeAttribute("class", "rf-tb-hdr_tabs", null);
+ w.writeAttribute("cellspacing", "0", null);
w.startElement("tbody", comp);
w.startElement("tr", comp);
writeTopTabFirstSpacer(w, comp);
- writeTopTabHeader(w, comp, "Tab name 1", true);
- writeTopTabSpacer(w, comp);
- writeTopTabHeader(w, comp, "Tab name 2", false);
- writeTopTabSpacer(w, comp);
+
+ for (AbstractTogglePanelItem item : ((AbstractTogglePanel) comp).getRenderedItems()) {
+ AbstractTogglePanelTitledItem tab = (AbstractTogglePanelTitledItem) item;
+ writeTopTabHeader(context, w, tab);
+ writeTopTabSpacer(w, comp);
+ }
+
writeTopTabLastSpacer(w, comp);
w.endElement("tr");
w.endElement("tbody");
w.endElement("table");
- writeTopTabsControl(w, comp, "rftp_toptab_scroll_left rftp_hidden", "«");
- writeTopTabsControl(w, comp, "rftp_toptab_tabslist rftp_hidden", "↓");
- writeTopTabsControl(w, comp, "rftp_toptab_scroll_right rftp_hidden", "»");
+ writeTopTabsControl(w, comp, "rf-tb-hdr_scroll_left rftp_hidden", "«");
+ writeTopTabsControl(w, comp, "rf-tb-hdr_tabslist rftp_hidden", "↓");
+ writeTopTabsControl(w, comp, "rf-tb-hdr_scroll_right rftp_hidden", "»");
w.endElement("div");
+ }
- w.startElement("div", comp);
- w.writeAttribute("class", "rftp_toptab_border", null);
- w.endElement("div");
+ @Override
+ protected String getStyle(UIComponent component) {
+ return concatStyles(attributeAsString(component, "style"), "width: 100%;");
}
- private void encodeTabHeader(FacesContext context, UIComponent component, ResponseWriter writer) throws IOException {
+ @Override
+ protected String getStyleClass(UIComponent component) {
+ return HtmlUtil.concatClasses("rf-tbp", attributeAsString(component, "styleClass"));
+ }
- writer.startElement("div", component);
- writer.writeAttribute("class", concatClasses("rf-tab-hdr", attributeAsString(component, HtmlTab.PropertyKeys.headerClass)), null);
- writer.writeAttribute("id", component.getClientId() + ":header", null);
- renderPassThroughAttributes(context, component, HEADER_ATTRIBUTES);
- AbstractTogglePanelTitledItem titledItem = (AbstractTogglePanelTitledItem) component;
- boolean isActive = titledItem.isActive();
- boolean isDisabled = titledItem.isDisabled();
- encodeTabHeader(context, titledItem, writer, AbstractTogglePanelTitledItem.HeaderStates.inactive, !isActive && !isDisabled);
- encodeTabHeader(context, titledItem, writer, AbstractTogglePanelTitledItem.HeaderStates.active, isActive && !isDisabled);
- encodeTabHeader(context, titledItem, writer, AbstractTogglePanelTitledItem.HeaderStates.disable, isDisabled);
+ private void writeTopTabHeader(FacesContext context, ResponseWriter writer, AbstractTogglePanelTitledItem tab) throws IOException {
+ writer.startElement("td", tab);
+ writer.writeAttribute("id", tab.getClientId() + ":header", null);
+ writer.writeAttribute("class", concatClasses("rf-tb-hdr", attributeAsString(tab, HtmlTab.PropertyKeys.headerClass)), null);
+ renderPassThroughAttributes(context, tab, HEADER_ATTRIBUTES);
- writer.endElement("div");
- }
+ boolean isActive = tab.isActive();
+ boolean isDisabled = tab.isDisabled();
+ encodeTabHeader(context, tab, writer, inactive, !isActive && !isDisabled);
+ encodeTabHeader(context, tab, writer, active, isActive && !isDisabled);
+ encodeTabHeader(context, tab, writer, disable, isDisabled);
+
+ writer.endElement("td");
+ }
- private void encodeTabHeader(FacesContext facesContext, AbstractTogglePanelTitledItem component, ResponseWriter writer,
+ private void encodeTabHeader(FacesContext context, AbstractTogglePanelTitledItem tab, ResponseWriter writer,
AbstractTogglePanelTitledItem.HeaderStates state, Boolean isDisplay) throws IOException {
- writer.startElement("div", component);
+ writer.startElement("div", tab);
+ writer.writeAttribute("id", tab.getClientId() + ":header:" + state, null);
+ writer.writeAttribute("style", concatStyles("white-space: nowrap", isDisplay ? "" : "display : none"), null);
- if (!isDisplay) {
- writer.writeAttribute("style", "display : none", null);
- }
-
String name = "headerClass" + capitalize(state.toString());
- writer.writeAttribute("class", concatClasses("rf-tab-hdr-" + state.abbreviation(), attributeAsString(component, name)), null);
+ writer.writeAttribute("class", concatClasses("rf-tb-hdr-" + state.abbreviation(), attributeAsString(tab, name)), null);
- UIComponent headerFacet = component.getHeaderFacet(state);
+ writeTopTabIcon(context, tab, writer, "rftp_icon", "ico.gif");
+
+ writer.startElement("span", tab);
+ writer.writeAttribute("class", "rftp_label", null);
+
+ UIComponent headerFacet = tab.getHeaderFacet(state);
if (headerFacet != null && headerFacet.isRendered()) {
- headerFacet.encodeAll(facesContext);
+ headerFacet.encodeAll(context);
} else {
- Object headerText = component.getAttributes().get("header");
+ Object headerText = tab.getAttributes().get("header");
if (headerText != null && !headerText.equals("")) {
writer.writeText(headerText, null);
}
}
+ writer.endElement("span");
+
+ writeTopTabIcon(context, tab, writer, "rftp_close", "close_act.gif");
+
writer.endElement("div");
}
@@ -153,46 +186,29 @@
w.endElement("div");
}
- private void writeTopTabHeader(ResponseWriter w, UIComponent comp, String text, boolean active) throws IOException {
- w.startElement("td", comp);
- w.writeAttribute("class", HtmlUtil.concatClasses("rftp_toptab", active ? "rftp_active_top" : ""), null);
- w.startElement("div", comp);
- w.writeAttribute("style", "white-space: nowrap;", null);
-
- writeTopTabIcon(w, comp, "rftp_icon", "ico.gif");
-
- w.startElement("span", comp);
- w.writeAttribute("class", "rftp_label", null);
- w.writeText(text, null);
- w.endElement("span");
-
- writeTopTabIcon(w, comp, "rftp_close", "close_act.gif");
-
- w.endElement("div");
- w.endElement("td");
+ private void writeTopTabIcon(FacesContext context, UIComponent comp, ResponseWriter writer, String styleClass, String image) throws IOException {
+ writer.startElement("img", comp);
+ writer.writeAttribute("width", 16, null);
+ writer.writeAttribute("height", 16, null);
+ writer.writeAttribute("class", styleClass, null);
+
+ String imagePath = context.getApplication().getResourceHandler().createResource("org.richfaces/" + image).getRequestPath();
+ writer.writeAttribute("src", imagePath, null);
}
- private void writeTopTabIcon(ResponseWriter w, UIComponent comp, String styleClass, String image) throws IOException {
- w.startElement("img", comp);
- w.writeAttribute("width", 16, null);
- w.writeAttribute("height", 16, null);
- w.writeAttribute("class", styleClass, null);
- w.writeAttribute("src", image, null);
- }
-
private void writeTopTabFirstSpacer(ResponseWriter w, UIComponent comp) throws IOException {
- writeTopTabSpacer_(w, comp, "padding-left: 5px;", "rftp_toptab_spacer");
+ writeTopTabSpacer(w, comp, "padding-left: 5px;", "rf-tb-hdr_spacer");
}
private void writeTopTabSpacer(ResponseWriter w, UIComponent comp) throws IOException {
- writeTopTabSpacer_(w, comp, "", "rftp_toptab_spacer rftp_horizonttab_tabspacer_width");
+ writeTopTabSpacer(w, comp, "", "rf-tb-hdr_spacer rftp_horizonttab_tabspacer_width");
}
private void writeTopTabLastSpacer(ResponseWriter w, UIComponent comp) throws IOException {
- writeTopTabSpacer_(w, comp, "padding-right: 5px; width: 100%;", "rftp_toptab_spacer");
+ writeTopTabSpacer(w, comp, "padding-right: 5px; width: 100%;", "rf-tb-hdr_spacer");
}
- private void writeTopTabSpacer_(ResponseWriter w, UIComponent comp, String style, String classStyle) throws IOException {
+ private void writeTopTabSpacer(ResponseWriter w, UIComponent comp, String style, String classStyle) throws IOException {
w.startElement("td", comp);
w.writeAttribute(STYLE, style, null);
w.writeAttribute(CLASS, classStyle, null);
@@ -202,11 +218,25 @@
@Override
protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
- writer.endElement("div");
-// super.doEncodeEnd(writer, context, component);
+ writer.endElement(HtmlConstants.DIV_ELEM);
}
@Override
+ protected JSObject getScriptObject(FacesContext context, UIComponent component) {
+ return new JSObject("RichFaces.ui.TabPanel",
+ component.getClientId(), getScriptObjectOptions(context, component));
+ }
+
+ @Override
+ protected Map<String, Object> getScriptObjectOptions(FacesContext context, UIComponent component) {
+ Map<String, Object> options = super.getScriptObjectOptions(context, component);
+ options.put("isKeepHeight", !attributeAsString(component, height).isEmpty());
+ options.remove("items");
+
+ return options;
+ }
+
+ @Override
protected Class<? extends UIComponent> getComponentClass() {
return AbstractTabPanel.class;
}
Modified: branches/RF-7944/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabRenderer.java
===================================================================
--- branches/RF-7944/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabRenderer.java 2010-09-14 15:19:59 UTC (rev 19198)
+++ branches/RF-7944/ui/output/ui/src/main/java/org/richfaces/renderkit/html/TabRenderer.java 2010-09-14 15:38:08 UTC (rev 19199)
@@ -44,8 +44,11 @@
@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 = "script/Tab.js") })
+ @ResourceDependency(library = "org.richfaces", name = "TogglePanelItem.js"),
+ @ResourceDependency(library = "org.richfaces", name = "Tab.js")
+})
public class TabRenderer extends TogglePanelItemRenderer {
@Override
@@ -57,7 +60,7 @@
@Override
protected String getStyleClass(UIComponent component) {
- return concatClasses("rf-tab", attributeAsString(component, "styleClass"));
+ return concatClasses("rf-tb", attributeAsString(component, "styleClass"));
}
@Override
@@ -82,7 +85,7 @@
private void encodeContentBegin(UIComponent component, ResponseWriter writer) throws IOException {
writer.startElement("div", component);
- writer.writeAttribute("class", concatClasses("rf-tab-cnt", attributeAsString(component, "contentClass")), null);
+ writer.writeAttribute("class", concatClasses("rf-tb-cnt", attributeAsString(component, "contentClass")), null);
writer.writeAttribute("id", component.getClientId() + ":content", null);
AbstractTogglePanelTitledItem item = (AbstractTogglePanelTitledItem) component;
Added: trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml (rev 0)
+++ trunk/examples/output-demo/src/main/webapp/examples/tabPanel.xhtml 2010-09-14 15:38:08 UTC (rev 19199)
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns: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/output">
+
+<body>
+<ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="title">Tab Panel Example</ui:define>
+ <ui:define name="body_head">Tab Panel Example</ui:define>
+
+ <ui:define name="body">
+ <p>Page</p>
+
+ <h:form id="f">
+ <pn:tabPanel id="panel" switchType="ajax">
+ <pn:tab header="tab1 header">
+ 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="tab2 header">
+ He he
+ </pn:tab>
+ </pn:tabPanel>
+ </h:form>
+ </ui:define>
+</ui:composition>
+</body>
+</html>
+
Added: trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml (rev 0)
+++ trunk/examples/output-demo/src/main/webapp/qunit/tabPanel.xhtml 2010-09-14 15:38:08 UTC (rev 19199)
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns: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/output">
+
+<body>
+<ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="scripts">
+ <h:outputScript name="qunit/qunit.js" />
+ <h:outputScript name="qunit/richfaces-qunit.js" />
+
+ <h:outputStylesheet name="qunit/qunit.css" />
+ </ui:define>
+
+ <ui:define name="title">Tab Panel Example</ui:define>
+ <ui:define name="body_head">Tab Panel Example</ui:define>
+
+ <ui:define name="body">
+ <p>Page</p>
+
+ <h:form id="f">
+ <pn:tabPanel id="panel" switchType="ajax">
+ <pn:tab header="tab1 header">
+ 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="tab2 header">
+ He he
+ </pn:tab>
+ </pn:tabPanel>
+ </h:form>
+
+ <p>Result</p>
+ <div>
+ <ol id="qunit-tests"></ol>
+
+ <div id="testDiv" style="margin-top:10px; border:1px solid #a0a0a0">Main Test Div</div>
+
+ </div>
+ <h:outputScript name="tests/richfaces-tab-panel-qunit.js" />
+ </ui:define>
+</ui:composition>
+</body>
+</html>
+
Added: trunk/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js
===================================================================
--- trunk/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js (rev 0)
+++ trunk/examples/output-demo/src/main/webapp/resources/tests/richfaces-tab-panel-qunit.js 2010-09-14 15:38:08 UTC (rev 19199)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+RichFaces.QUnit.run(function() {
+ module("richfaces-tab-panel");
+
+ var TAB_PANEL_ID = "f:panel";
+
+ function handler (msg, returnValue) {
+ return function () {
+ ok(true, msg);
+
+ if (returnValue != undefined) {
+ return returnValue;
+ }
+ };
+ }
+
+ test("RichFaces.ui.TabPanel test constructor", function () {
+ var c = RichFaces.$(TAB_PANEL_ID);
+
+ ok(c instanceof RichFaces.ui.TabPanel, "inctance of RichFaces.ui.TabPanel");
+ equals(c.id, TAB_PANEL_ID, "id");
+ });
+
+ test("RichFaces.ui.TabPanel test public api", function () {
+ var c = RichFaces.$(TAB_PANEL_ID);
+
+ var PUBLIC_API = [/* ... */];
+
+ for (var i in PUBLIC_API) {
+ var funcName = PUBLIC_API[i];
+ ok(c[funcName], funcName + "present in component");
+ // TODO check other functions + check is it function
+ }
+ });
+
+ test("RichFaces.ui.TabPanel test events", function () {
+ var componentId = TAB_PANEL_ID;
+ var c = RichFaces.$(componentId);
+
+ expect(5);
+ var beforeitemchngeHandler = function (event, comp, data) {
+ ok(true, "beforeitemchnge handler invouked");
+
+ same(data.id, componentId, "component id");
+ same(data.oldItem.getName(), c.items[0].getName(), "old item");
+ same(data.newItem.getName(), c.items[1].getName(), "new item");
+
+ return true;
+ };
+
+ var beforeitemchngeHandlerWrapper = RichFaces.Event.bindById(componentId, "beforeitemchange", beforeitemchngeHandler);
+
+ var itemchangeHandler = handler("itemchnge handler invouked", undefined);
+ var itemchangeHandlerWrapper = RichFaces.Event.bindById(componentId, "itemchange", itemchangeHandler);
+
+ c.switchToItem("name2");
+
+ RichFaces.Event.unbindById(componentId, "beforeitemchange", beforeitemchngeHandlerWrapper);
+ RichFaces.Event.unbindById(componentId, "itemchange", itemchangeHandlerWrapper);
+
+ c.switchToItem("name1");
+ });
+});
Modified: trunk/examples/output-demo/src/main/webapp/templates/template.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/templates/template.xhtml 2010-09-14 15:19:59 UTC (rev 19198)
+++ trunk/examples/output-demo/src/main/webapp/templates/template.xhtml 2010-09-14 15:38:08 UTC (rev 19199)
@@ -10,157 +10,6 @@
</title>
<meta http-equiv="content-type" content="text/xhtml; charset=UTF-8" />
-
- <style type="text/css">
- * {
- font-family: verdana
- }
-
- .rftp_toptab {
- display: table-cell;
- border: 1px solid #A6A6A6;
- padding: 0px 0px 3px 0px;
- vertical-align: bottom;
- background: url(tab_bg.gif) top repeat-x #DAE7F5;
- }
-
- .rftp_active_top {
- border-bottom: 0px;
- font-weight: bold;
- padding: 3px 0px 0px 0px;
- vertical-align: top;
- background: url(acttab_bg.gif) top repeat-x #C9DBEF;
- }
-
- .rftp_active2_top {
- border-bottom: 0px;
- font-weight: bold;
- padding: 3px 0px 0px 0px;
- vertical-align: top;
- background: url(acttab2_bg.gif) top repeat-x #FFFFFF;
- }
-
- .rftp_toptab_tabline_vis {
- border: 1px solid #a6a6a6;
- background: url(tabline_bg.gif) top repeat-x #EEF4FB;
- border-bottom: 0px;
- padding-top: 2px;
- overflow: hidden;
- height: 23px;
- white-space: nowrap;
- position: relative;
- }
-
- .rftp_toptab_tabline_dis {
- border-bottom: 0px;
- padding-top: 2px;
- overflow: hidden;
- height: 25px;
- white-space: nowrap;
- position: relative;
- }
-
- .rftp_toptab_tabs {
- display: table;
- border: 0px;
- width: 100%;
- height: 100%;
- }
-
- .rftp_toptab_spacer {
- display: table-cell;
- border-bottom: 1px solid #A6A6A6;
- }
-
- .rftp_horizonttab_tabspacer_width {
- padding-left: 1px;
- }
-
- .rftp_icon {
- display: table-cell;
- vertical-align: middle;
- padding: 0px 5px 0px 5px;
- }
-
- .rftp_close {
- display: table-cell;
- vertical-align: middle;
- padding: 0px 3px 0px 15px;
- }
-
- .rftp_label {
- display: table-cell;
- vertical-align: middle;
- font-family: verdana;
- font-size: 11px;
- }
-
- .rftp_toptab_scroll_left {
- background: url(acttab_bg.gif) top repeat-x #C9DBEF;
- position: absolute;
- top: 1px;
- left: 1px;
- width: 15px;
- height: 250px;
- border: 1px solid #a6a6a6;
- font-weight: bold;
- text-align: center;
- font-family: verdana;
- font-size: 11px;
- padding-top: 6px;
- }
-
- .rftp_toptab_scroll_right {
- background: url(acttab_bg.gif) top repeat-x #C9DBEF;
- position: absolute;
- top: 1px;
- right: 17px;
- width: 15px;
- height: 250px;
- border: 1px solid #a6a6a6;
- font-weight: bold;
- text-align: center;
- font-family: verdana;
- font-size: 11px;
- padding-top: 6px;
- }
-
- .rftp_toptab_tabslist {
- background: url(acttab_bg.gif) top repeat-x #C9DBEF;
- position: absolute;
- top: 1px;
- right: 1px;
- width: 15px;
- height: 250px;
- border: 1px solid #a6a6a6;
- font-weight: bold;
- text-align: center;
- font-family: verdana;
- font-size: 14px;
- padding-top: 2px;
- }
-
- .rftp_toptab_border {
- border: 1px solid #A6A6A6;
- border-top: 0px;
- height: 2px;
- background: #C9DBEF;
- }
-
- .rftp_toptab_content {
- border: 1px solid #A6A6A6;
- border-top: 0px;
- font-family: verdana;
- font-size: 11px;
- padding: 10px;
- background: #ffffff;
- }
-
- .rftp_hidden {
- display: none
- }
- </style>
-
</h:head>
<h:body>
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 2010-09-14 15:19:59 UTC (rev 19198)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2010-09-14 15:38:08 UTC (rev 19199)
@@ -459,9 +459,9 @@
}
public AbstractTogglePanelItem getItemByIndex(final int index) {
- List<AbstractTogglePanelItem> children = getRenderedChildren();
+ List<AbstractTogglePanelItem> children = getRenderedItems();
if (isCycledSwitching()) {
- int size = getRenderedChildren().size();
+ int size = getRenderedItems().size();
return children.get((size + index) % size);
} else if (index < 0 || index >= children.size()) {
return null;
@@ -470,7 +470,7 @@
}
}
- private List<AbstractTogglePanelItem> getRenderedChildren() {
+ public List<AbstractTogglePanelItem> getRenderedItems() {
List<AbstractTogglePanelItem> res = new ArrayList<AbstractTogglePanelItem>(getChildCount());
for (UIComponent child : getChildren()) {
if (child.isRendered() && child instanceof AbstractTogglePanelItem) {
@@ -516,7 +516,7 @@
}
public AbstractTogglePanelItem getLastItem() {
- return getItemByIndex(getRenderedChildren().size() - 1);
+ return getItemByIndex(getRenderedItems().size() - 1);
}
public int getChildIndex(String name) {
@@ -524,7 +524,7 @@
throw new IllegalArgumentException("Name is required parameter.");
}
- List<AbstractTogglePanelItem> items = getRenderedChildren();
+ List<AbstractTogglePanelItem> items = getRenderedItems();
for (int ind = 0; ind < items.size(); ind++) {
if (name.equals(items.get(ind).getName())) {
return ind;
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/UITogglePanelTitledItem.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/UITogglePanelTitledItem.java 2010-09-14 15:19:59 UTC (rev 19198)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/UITogglePanelTitledItem.java 2010-09-14 15:38:08 UTC (rev 19199)
@@ -44,7 +44,7 @@
}
public String getHeader() {
- return (String) getStateHelper().eval(PropertyKeys.header);
+ return (String) getStateHelper().eval(PropertyKeys.header, getName());
}
public void setHeader(String header) {
Added: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js (rev 0)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/Tab.js 2010-09-14 15:38:08 UTC (rev 19199)
@@ -0,0 +1,130 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+(function ($, rf) {
+
+ rf.ui = rf.ui || {};
+
+ rf.ui.Tab = rf.ui.TogglePanelItem.extendClass({
+ // class name
+ name:"Tab",
+
+ /**
+ * @class AccordionItem
+ * @name AccordionItem
+ *
+ * @constructor
+ * @param {String} componentId - component id
+ * @param {Hash} options - params
+ * */
+ init : function (componentId, options) {
+ rf.ui.TogglePanelItem.call(this, componentId, options);
+ this.index = options["index"];
+ this.getTogglePanel().getItems()[this.index] = this;
+
+ rf.Event.bindById(this.id + ":header", "click", this.__onHeaderClick, this)
+ },
+
+ /***************************** Public Methods ****************************************************************/
+
+ __onHeaderClick : function (comp) {
+ this.getTogglePanel().switchToItem(this.getName());
+ },
+
+ /**
+ * @param state {string} = inactive | active | disabled
+ * in that case looking header by css class appropriate to this state
+ *
+ * @return {jQuery Object}
+ * */
+ __header : function (state) {
+ var res = $(rf.getDomElement(this.id + ":header"));
+ if (state) {
+ return $(rf.getDomElement(this.id + ":header:" + state));
+ }
+
+ return res;
+ },
+
+ /**
+ * @return {jQuery Object}
+ * */
+ __content : function () {
+ if (!this.__content_) {
+ this.__content_ = $(rf.getDomElement(this.id));
+ }
+ return this.__content_;
+ },
+
+ /**
+ * @private
+ *
+ * used in TogglePanel
+ * */
+ __enter : function () {
+
+ this.__content().show();
+ this.__header("inactive").hide();
+ this.__header("active").show();
+
+ return this.__fireEnter();
+ },
+
+ getHeight : function (recalculate) {
+ if (recalculate || !this.__height) {
+ this.__height = $(rf.getDomElement(this.id)).outerHeight(true)
+ }
+
+ return this.__height;
+ },
+
+ /**
+ * @private
+ *
+ * used in TogglePanel
+ * */
+ __leave : function () {
+ var continueProcess = this.__fireLeave();
+ if (!continueProcess) {
+ return false;
+ }
+
+ this.__content().hide();
+ this.__header("active").hide();
+ this.__header("inactive").show();
+
+ return true;
+ },
+
+ /***************************** Private Methods ********************************************************/
+
+
+ destroy: function () {
+ var parent = this.getTogglePanel();
+ delete parent.getItems()[this.index];
+
+ rf.Event.unbindById(this.id, "."+this.namespace);
+
+ this.$super.destroy.call(this);
+ }
+ });
+})(jQuery, RichFaces);
Added: 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 (rev 0)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/TabPanel.js 2010-09-14 15:38:08 UTC (rev 19199)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+(function ($, rf) {
+
+ rf.ui = rf.ui || {};
+
+ rf.ui.TabPanel = rf.ui.TogglePanel.extendClass({
+ // class name
+ name:"TabPanel",
+
+ /**
+ * @class TabPanel
+ * @name TabPanel
+ *
+ * @constructor
+ * @param {String} componentId - component id
+ * @param {Hash} options - params
+ * */
+ init : function (componentId, options) {
+ rf.ui.TogglePanel.call(this, componentId, options);
+ this.items = [];
+
+ this.isKeepHeight = options["isKeepHeight"] || false
+ },
+
+ /***************************** Public Methods ****************************************************************/
+
+
+
+ /***************************** Private Methods ********************************************************/
+
+
+ destroy: function () {
+ rf.Event.unbindById(this.id, "."+this.namespace);
+
+ rf.ui.TogglePanel.destroy.call(this);
+ }
+ });
+})(jQuery, RichFaces);
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss 2010-09-14 15:19:59 UTC (rev 19198)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tabPanel.ecss 2010-09-14 15:38:08 UTC (rev 19199)
@@ -1,78 +1,420 @@
-*{font-family : verdana /*generalFamilyFont*/}
-.rftp_bottomtab {border : 1px solid #A6A6A6 /*panelBorderColor*/; vertical-align : top; background : url(#{resource['org.richfaces:tab_bg.gif']})/*gradient - from generalBackgroundColor to tabBackgroundColor*/ top repeat-x #DAE7F5 /*tabBackgroundColor*/;}
-.rftp_active_bottom {border-top : 0px; font-weight : bold; vertical-align : top; background : url(#{resource['org.richfaces:acttab_bottom_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ top repeat-x #C9DBEF /*additionalBackgroundColor*/;}
+.rftp_bottomtab {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ vertical-align: top;
+/*gradient - from generalBackgroundColor to tabBackgroundColor*/
+ background: "url(#{resource['org.richfaces:tab_bg.gif']}) top repeat-x #{richSkin.tabBackgroundColor}";
+}
-.rftp_bottomtab_tabline_vis {padding-bottom : 2px; overflow : hidden; height : 25px; white-space : nowrap; position : relative;}
-.rftp_bottomtab_tabs {border : 0px; width : 100%; height : 100%;}
-.rftp_bottomtab_spacer {border-top : 1px solid #A6A6A6 /*panelBorderColor*/;}
+.rftp_active_bottom {
+ border-top: 0px;
+ font-weight: bold;
+ vertical-align: top;
+/*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bottom_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+}
-.rftp_bottomtab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-bottom : 0px; height : 2px; background : #C9DBEF /*additionalBackgroundColor*/ /*tabBackgroundColor*/;}
-.rftp_bottomtab_content {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-bottom : 0px; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 10px; background : #ffffff /*generalBackgroundColor*/;}
+.rftp_bottomtab_tabline_vis {
+ padding-bottom: 2px;
+ overflow: hidden;
+ height: 25px;
+ white-space: nowrap;
+ position: relative;
+}
-.rftp_bottomtab_scroll_left {background : url(#{resource['org.richfaces:acttab_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ bottom repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; bottom : 1px; left : 1px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding-top : 6px;}
-.rftp_bottomtab_scroll_right {background : url(#{resource['org.richfaces:acttab_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ bottom repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; bottom : 1px; right : 17px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding-top : 6px;}
-.rftp_bottomtab_tabslist {background : url(#{resource['org.richfaces:acttab_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ bottom repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; bottom : 1px; right : 1px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 14px; padding-top : 2px;}
+.rftp_bottomtab_tabs {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+}
+.rftp_bottomtab_spacer {
+ border-top: "1px solid #{richSkin.panelBorderColor}";
+}
+.rftp_bottomtab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-bottom: 0px;
+ height: 2px;
+ background: '#{richSkin.additionalBackgroundColor}'
+/*tabBackgroundColor*/;
+}
-.rftp_toptab {border : 1px solid #A6A6A6 /*panelBorderColor*/; vertical-align : top; background : url(#{resource['org.richfaces:tab_bg.gif']})/*gradient - from generalBackgroundColor to tabBackgroundColor*/ top repeat-x #DAE7F5 /*tabBackgroundColor*/;}
-.rftp_active_top {border-bottom : 0px; font-weight : bold; vertical-align : top; background : url(#{resource['org.richfaces:acttab_bg.gif']})/*gradient - from tabBackgroundColor to generalBackgroundColor*/ top repeat-x #C9DBEF /*additionalBackgroundColor*/;}
+.rftp_bottomtab_content {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-bottom: 0px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 10px;
+ background: '#{richSkin.generalBackgroundColor}';
+}
-.rftp_toptab_tabline_vis {padding-top : 2px; overflow : hidden; height : 25px; white-space : nowrap; position : relative;}
-.rftp_toptab_tabs {border : 0px; width : 100%; height : 100%;}
-.rftp_toptab_spacer {border-bottom : 1px solid #A6A6A6 /*panelBorderColor*/;}
+.rftp_bottomtab_scroll_left {
+/*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) bottom repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ bottom: 1px;
+ left: 1px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ font-weight: bold;
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding-top: 6px;
+}
-.rftp_horizonttab_tabspacer_width {padding-left : 1px;}
+.rftp_bottomtab_scroll_right {
+/*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) bottom repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ bottom: 1px;
+ right: 17px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ font-weight: bold;
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding-top: 6px;
+}
-.rftp_icon {position : absolute; top : 4px; left : 4px}
-.rftp_close {position : absolute; top : 4px; right : 4px}
-.rftp_label {white-space : nowrap; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/;}
+.rftp_bottomtab_tabslist {
+/*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) bottom repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ bottom: 1px;
+ right: 1px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ font-weight: bold;
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: 14px;
+ padding-top: 2px;
+}
-.rftp_label_container {position : relative; padding : 5px 37px 0px 22px;}
+.rf-tb-hdr {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ vertical-align: top;
+
+ /*gradient - from generalBackgroundColor to tabBackgroundColor*/
+ background: "url(#{resource['org.richfaces:tab_bg.gif']}) top repeat-x #DAE7F5"; /* #{richSkin.tabBackgroundColor} */
+}
-.rftp_toptab_scroll_left {background : url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; top : 1px; left : 1px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding-top : 6px;}
-.rftp_toptab_scroll_right {background : url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; top : 1px; right : 17px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding-top : 6px;}
-.rftp_toptab_tabslist {background : url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #C9DBEF /*additionalBackgroundColor*/; position : absolute; top : 1px; right : 1px; width : 15px; height : 25px; border : 1px solid #A6A6A6 /*panelBorderColor*/; font-weight : bold; text-align : center; font-family : verdana /*generalFamilyFont*/; font-size : 14px; padding-top : 2px;}
+.rf-tb-hdr {
+ cursor : pointer;
+ border : 1px solid #A6A6A6;
+ padding : 0px 0px 3px 0px;
+ vertical-align : top;
+ background-image: 'url(#{resource['org.richfaces:tab_bg.gif']})';
+ background-position: top;
+ background-color: #DAE7F5;
+ background-repeat: repeat-x;
+}
-.rftp_toptab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-top : 0px; height : 2px; background : #C9DBEF /*additionalBackgroundColor*/;}
-.rf-tab-cnt {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-top : 0px; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 10px; background : #ffffff /*generalBackgroundColor*/;}
-.rftp_hidden {display : none}
+.rf-tb-hdr-act {
+ border-bottom: 0px;
+ font-weight: bold;
+ vertical-align: top;
-.rftp_topmultitab_tabline_vis {border-bottom : 0px; padding-top : 2px; white-space : nowrap; position : relative;}
-.rftp_topmultitab_tabs_first { border : 0px; width : 100%; height : 100%; height : 25px}
-.rftp_topmultitab_tabs { border : 0px; width : 100%; height : 100%; height : 25px; margin-bottom : -1px;}
-.rftp_topmultitab_spacer {border-bottom : 0px;}
-.rftp_topmultitab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-top : 0px; height : 3px; background : #C9DBEF /*additionalBackgroundColor*/;}
+ /*gradient - from tabBackgroundColor to generalBackgroundColor*/
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+}
-.rftp_multitab_line_1 {width : 17%}
-.rftp_multitab_line_2 {width : 50%}
+rf-tb-hdr-inact {
+}
+rf-tb-hdr-dis {
+}
-.rftp_bottommultitab_tabline_vis {border : 1px solid #A6A6A6 /*panelBorderColor*/; background :url(#{resource['org.richfaces:tabline_bg.gif']}) top repeat-x #EEF4FB; border-top : 0px; padding-bottom : 2px; white-space : nowrap; position : relative;}
-.rftp_bottommultitab_tabs_first { border : 0px; width : 100%; height : 100%; height : 25px}
-.rftp_bottommultitab_tabs { border : 0px; width : 100%; height : 100%; height : 25px; margin-top : -1px;}
-.rftp_bottommultitab_spacer {border-top : 0px;}
-.rftp_bottommultitab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; border-bottom : 0px; height : 3px; background : #C9DBEF /*additionalBackgroundColor*/;}
+.rf-tb-hdr_tabline_vis {
+ padding-top: 2px;
+ overflow: hidden;
+ height: 25px;
+ white-space: nowrap;
+ position: relative;
+}
+.rf-tb-hdr_tabs {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+}
-.rftp_label_vert {white-space : nowrap; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 5px 0px 5px 0px;}
-.rftp_label_container_vert {position : relative; padding : 0px 37px 0px 22px;}
+.rf-tb-hdr_spacer {
+ border-bottom: "1px solid #{richSkin.panelBorderColor}";
+}
+.rftp_horizonttab_tabspacer_width {
+ padding-left: 1px;
+}
+.rftp_label {
+ white-space: nowrap;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+}
-.rftp_lefttab {border : 1px solid #A6A6A6 /*panelBorderColor*/; padding : 2px 0px 2px 0px; vertical-align : middle; background : url(#{resource['org.richfaces:tab_bg.gif']}) top right repeat-x #DAE7F5; margin-right : -1px}
-.rftp_lefttab_active {border-right : 0px; font-weight : bold; vertical-align : middle; background : url(#{resource['org.richfaces:actlefttab_bg.gif']}) top left repeat-y #C9DBEF /*additionalBackgroundColor*/; width : 100%;}
-.rftp_verttab_spacer {padding-top : 1px;}
+.rftp_label_container {
+ position: relative;
+ padding: 5px 37px 0px 22px;
+}
-.rftp_lefttab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; padding-left : 2px; background : #C9DBEF /*additionalBackgroundColor*/;}
-.rftp_lefttab_content {width : 100%; border : 1px solid #A6A6A6 /*panelBorderColor*/; border-left : 0px; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 10px; background : #ffffff /*generalBackgroundColor*/; vertical-align : top;}
+.rf-tb-hdr_scroll_left {
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ top: 1px;
+ left: 1px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ text-align: center;
+ font-weight: bold;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding-top: 6px;
+}
+.rf-tb-hdr_scroll_right {
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ top: 1px;
+ right: 17px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ font-weight: bold;
+ padding-top: 6px;
+}
-.rftp_righttab {border : 1px solid #A6A6A6 /*panelBorderColor*/; padding : 2px 0px 2px 0px; vertical-align : middle; background : url(#{resource['org.richfaces:tab_bg.gif']}) top right repeat-x #DAE7F5; margin-left : -1px}
-.rftp_righttab_active {border-left : 0px; font-weight : bold; vertical-align : middle; background : url(#{resource['org.richfaces:actrighttab_bg.gif']}) top right repeat-y #C9DBEF /*additionalBackgroundColor*/; width : 100%;}
-.rftp_righttab_spacer {padding-top : 1px;}
+.rf-tb-hdr_tabslist {
+ background: "url(#{resource['org.richfaces:acttab_bg.gif']}) top repeat-x #{richSkin.additionalBackgroundColor}";
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ width: 15px;
+ height: 25px;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ font-weight: bold;
+ text-align: center;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: 14px;
+ padding-top: 2px;
+}
-.rftp_righttab_border {border : 1px solid #A6A6A6 /*panelBorderColor*/; padding-right : 2px; background : #C9DBEF /*additionalBackgroundColor*/;}
-.rftp_righttab_content {width : 100%; border : 1px solid #A6A6A6 /*panelBorderColor*/; border-right : 0px; font-family : verdana /*generalFamilyFont*/; font-size : 11px /*generalSizeFont*/; padding : 10px; background : #ffffff /*generalBackgroundColor*/; vertical-align : top;}
+.rf-tb-hdr_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-top: 0px;
+ height: 2px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+.rf-tb-cnt {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-top: 0px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 10px;
+ background: '#{richSkin.generalBackgroundColor}';
+}
+
+.rftp_hidden {
+ display: none
+}
+
+.rftp_topmultitab_tabline_vis {
+ border-bottom: 0px;
+ padding-top: 2px;
+ white-space: nowrap;
+ position: relative;
+}
+
+.rftp_topmultitab_tabs_first {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+ height: 25px
+}
+
+.rftp_topmultitab_tabs {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+ height: 25px;
+ margin-bottom: -1px;
+}
+
+.rftp_topmultitab_spacer {
+ border-bottom: 0px;
+}
+
+.rftp_topmultitab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-top: 0px;
+ height: 3px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+
+.rftp_multitab_line_1 {
+ width: 17%
+}
+
+.rftp_multitab_line_2 {
+ width: 50%
+}
+
+.rftp_bottommultitab_tabline_vis {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ background: "url(#{resource['org.richfaces:tabline_bg.gif']}) top repeat-x #EEF4FB";
+ border-top: 0px;
+ padding-bottom: 2px;
+ white-space: nowrap;
+ position: relative;
+}
+
+.rftp_bottommultitab_tabs_first {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+ height: 25px
+}
+
+.rftp_bottommultitab_tabs {
+ border: 0px;
+ width: 100%;
+ height: 100%;
+ height: 25px;
+ margin-top: -1px;
+}
+
+.rftp_bottommultitab_spacer {
+ border-top: 0px;
+}
+
+.rftp_bottommultitab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-bottom: 0px;
+ height: 3px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+
+.rftp_label_vert {
+ white-space: nowrap;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 5px 0px 5px 0px;
+}
+
+.rftp_label_container_vert {
+ position: relative;
+ padding: 0px 37px 0px 22px;
+}
+
+.rftp_lefttab {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ padding: 2px 0px 2px 0px;
+ vertical-align: middle;
+ background: "url(#{resource['org.richfaces:tab_bg.gif']}) top right repeat-x #DAE7F5";
+ margin-right: -1px
+}
+
+.rftp_lefttab_active {
+ border-right: 0px;
+ font-weight: bold;
+ vertical-align: middle;
+ background: "url(#{resource['org.richfaces:actlefttab_bg.gif']}) top left repeat-y #{richSkin.additionalBackgroundColor}";
+ width: 100%;
+}
+
+.rftp_verttab_spacer {
+ padding-top: 1px;
+}
+
+.rftp_lefttab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ padding-left: 2px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+
+.rftp_lefttab_content {
+ width: 100%;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-left: 0px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 10px;
+ background: '#{richSkin.generalBackgroundColor}';
+ vertical-align: top;
+}
+
+.rftp_righttab {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ padding: 2px 0px 2px 0px;
+ vertical-align: middle;
+ background: "url(#{resource['org.richfaces:tab_bg.gif']}) top right repeat-x #DAE7F5";
+ margin-left: -1px
+}
+
+.rftp_righttab_active {
+ border-left: 0px;
+ font-weight: bold;
+ vertical-align: middle;
+ background: "url(#{resource['org.richfaces:actrighttab_bg.gif']}) top right repeat-y #{richSkin.additionalBackgroundColor}";
+ width: 100%;
+}
+
+.rftp_righttab_spacer {
+ padding-top: 1px;
+}
+
+.rftp_righttab_border {
+ border: "1px solid #{richSkin.panelBorderColor}";
+ padding-right: 2px;
+ background: '#{richSkin.additionalBackgroundColor}';
+}
+
+.rftp_righttab_content {
+ width: 100%;
+ border: "1px solid #{richSkin.panelBorderColor}";
+ border-right: 0px;
+ font-family: '#{richSkin.generalFamilyFont}';
+ font-size: '#{richSkin.generalSizeFont}';
+ padding: 10px;
+ background: '#{richSkin.generalBackgroundColor}';
+ vertical-align: top;
+}
+
+.rftp_active_top { cursor : default; border-bottom : 1px solid #C9DBEF; font-weight : bold; padding : 0px 0px 0px 0px; vertical-align : top; background : url(acttab_bg.gif) top repeat-x #C9DBEF;}
+.rftp_active2_top { cursor : default; border-bottom : 1px solid #FFFFFF; font-weight : bold; padding : 0px 0px 0px 0px; vertical-align : top; background : url(acttab2_bg.gif) top repeat-x #FFFFFF;}
+
+.rftp_toptab_tabline_vis {border : 1px solid #a6a6a6; background :url(tabline_bg.gif) top repeat-x #EEF4FB; border-bottom : 0px; padding-top : 2px; overflow : hidden; white-space : nowrap; position : relative;}
+.rftp_toptab_tabline_dis {border-bottom : 0px; padding-top : 2px; overflow : hidden; white-space : nowrap; position : relative;}
+
+.rftp_toptab_tabs {border-collapse : collapse; border : 0px; height : 100%;}
+.rftp_toptab_spacer {border-bottom : 1px solid #A6A6A6;}
+.rftp_horizonttab_tabspacer_width {padding-left : 1px;}
+
+.rftp_icon {margin : 4px 0px 0px 5px; vertical-align : top;}
+.rftp_close {margin : 4px 5px 0px 10px; vertical-align : top;}
+.rftp_label {display : inline-block; font-family : verdana; font-size : 11px; padding : 5px 0px 2px 0px;}
+
+.rftp_toptab_scroll_left {background : url(acttab_bg.gif) top repeat-x #C9DBEF; position : absolute; top : 1px; left : 1px; width : 15px; height : 250px; border : 1px solid #a6a6a6; font-weight : bold; text-align : center; font-family : verdana; font-size : 11px; padding-top : 6px;}
+.rftp_toptab_scroll_right {background : url(acttab_bg.gif) top repeat-x #C9DBEF; position : absolute; top : 1px; right : 17px; width : 15px; height : 250px; border : 1px solid #a6a6a6; font-weight : bold; text-align : center; font-family : verdana; font-size : 11px; padding-top : 6px;}
+.rftp_toptab_tabslist {background : url(acttab_bg.gif) top repeat-x #C9DBEF; position : absolute; top : 1px; right : 1px; width : 15px; height : 250px; border : 1px solid #a6a6a6; font-weight : bold; text-align : center; font-family : verdana; font-size : 14px; padding-top : 2px;}
+
+.rf-tb-hdr_border {
+ border : 1px solid #A6A6A6;
+ border-top : 0px;
+ height : 2px;
+ background : #C9DBEF;
+}
+
+.rftp_toptab_content {border : 1px solid #A6A6A6; border-top : 0px; font-family : verdana; font-size : 11px; padding : 10px; background : #ffffff;}
+.rftp_hidden {display : none}
14 years, 3 months
JBoss Rich Faces SVN: r19198 - in sandbox/trunk/archetypes/rf-gae-sample: src/main/resources/archetype-resources and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2010-09-14 11:19:59 -0400 (Tue, 14 Sep 2010)
New Revision: 19198
Modified:
sandbox/trunk/archetypes/rf-gae-sample/readme.txt
sandbox/trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/readme.txt
Log:
readme.txt files corrections.
Modified: sandbox/trunk/archetypes/rf-gae-sample/readme.txt
===================================================================
--- sandbox/trunk/archetypes/rf-gae-sample/readme.txt 2010-09-14 15:11:57 UTC (rev 19197)
+++ sandbox/trunk/archetypes/rf-gae-sample/readme.txt 2010-09-14 15:19:59 UTC (rev 19198)
@@ -14,7 +14,7 @@
-DgroupId=<yourGroupId> -DartifactId=<yourArtifactId> -Dversion=1.0-SNAPSHOT
2) To build the project for deploy to GAE cloud, run
- mvn clean install -Pgae
+ mvn clean install
*BEFORE NEXT STEP - you should setup your GAE account at http://appspot.com and register new application there.
(read more at http://code.google.com/intl/ru/appengine/docs/python/gettingstarted/uploa...)
@@ -22,6 +22,9 @@
3) Then just execute appcfg from GAE SDK(link) to publish to your account:
appcfg update <PATH: "generated-application-target-folder/output application folder">
+NOTE:Do not forget to register your own application name and make sure that the demo uses the same name accordingly.
+
+
4) now visit your application using http://<application-name>.appspot.com
4.1) check all the information about deployed application at https://appengine.google.com/dashboard?&app_id=<your-application-id>
Modified: sandbox/trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/readme.txt
===================================================================
--- sandbox/trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/readme.txt 2010-09-14 15:11:57 UTC (rev 19197)
+++ sandbox/trunk/archetypes/rf-gae-sample/src/main/resources/archetype-resources/readme.txt 2010-09-14 15:19:59 UTC (rev 19198)
@@ -1,12 +1,38 @@
Project generated with richfaces-archetype-gae
-1.1) To build this project for GAE deploy
+1) To build the project for deploy to GAE cloud, run
+ mvn clean install
- mvn clean install
-1.2) to deploy application to GAE use appcfg from GAE SDK. follow instructions from appspot.com
+*BEFORE NEXT STEP - you should setup your GAE account at http://appspot.com and register new application there.
+(read more at http://code.google.com/intl/ru/appengine/docs/python/gettingstarted/uploa...)
+2) Then just execute appcfg from GAE SDK(link) to publish to your account:
+ appcfg update <PATH: "generated-application-target-folder/output application folder">
-2) If you wan to create a binaries for Tomcat 6 and JBoss 6 run
+NOTE:Do not forget to register your own application name and make sure that the demo uses the same name accordingly.
- mvn clean package -P release
+3) now visit your application using http://<application-name>.appspot.com
+3.1) check all the information about deployed application at https://appengine.google.com/dashboard?&app_id=<your-application-id>
+
+
+PAY ATTENTION:
+during build with GAE profile(default one) - our org.richfaces.cdk:maven-resource-plugin executed and generates static resources(web-app\static-resources\) for all the skins in order to
+solve the compatibility problem with GAE which restricts java2D usage(our dynamic resources works using that dependency)
+
+NOTES about additional artifacts in webapp folder:
+1) java-gae-jsf-ri - contains modified WebConfiguration.java class which will be put to Web-inf\classes when building with GAE profile. It solves compatibilities
+issues exist in GAE for JSF applications.
+
+2) Webapp-gae folder contains GAE descriptor(appengine-web.xml) and modified application web.xml. Them will be placed to WEb-inf folder after build with GAE profile. web.xml
+should be different in order to use static resources generated by plugin instead of dynamic resources. And also restricts threading with
+com.sun.faces.enableThreading context parameter as GAE not allows threads.
+
+============================================================================================================
+
+LOCAL DEPLOYMENT
+you still could deploy your application as usually using
+1) mvn clean install -Prelease
+2) put to tomcat6 or jboss (war's for both application servers will be created)
+3) run choosen server
+4) enjoy going to http:\\localhost:8080\<app-name>
\ No newline at end of file
14 years, 3 months
JBoss Rich Faces SVN: r19197 - in modules/tests/metamer/trunk/ftest-source/src/main/java/org: jboss/test/selenium/waiting and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2010-09-14 11:11:57 -0400 (Tue, 14 Sep 2010)
New Revision: 19197
Added:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/
modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/WaitFactory.java
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueModel.java
Log:
forgotten to commit WaitFactory
Added: modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/WaitFactory.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/WaitFactory.java (rev 0)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/jboss/test/selenium/waiting/WaitFactory.java 2010-09-14 15:11:57 UTC (rev 19197)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.selenium.waiting;
+
+import static org.jboss.test.selenium.SystemProperties.getSeleniumTimeout;
+import static org.jboss.test.selenium.waiting.Wait.waitAjax;
+import static org.jboss.test.selenium.waiting.Wait.waitSelenium;
+import static org.jboss.test.selenium.AbstractTestCase.WAIT_AJAX_INTERVAL;
+import static org.jboss.test.selenium.AbstractTestCase.WAIT_GUI_INTERVAL;
+import static org.jboss.test.selenium.AbstractTestCase.WAIT_MODEL_INTERVAL;
+import static org.jboss.test.selenium.SystemProperties.SeleniumTimeoutType.AJAX;
+import static org.jboss.test.selenium.SystemProperties.SeleniumTimeoutType.GUI;
+import static org.jboss.test.selenium.SystemProperties.SeleniumTimeoutType.MODEL;
+
+import org.jboss.test.selenium.waiting.ajax.AjaxWaiting;
+import org.jboss.test.selenium.waiting.selenium.SeleniumWaiting;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class WaitFactory {
+ /**
+ * Waits for GUI interaction, such as rendering
+ */
+ public static AjaxWaiting waitGui = waitAjax().interval(WAIT_GUI_INTERVAL).timeout(getSeleniumTimeout(GUI));
+ /**
+ * Waits for AJAX interaction with server - not computationally difficult
+ */
+ public static AjaxWaiting waitAjax = waitAjax().interval(WAIT_AJAX_INTERVAL).timeout(getSeleniumTimeout(AJAX));
+ /**
+ * Waits for computationally difficult requests
+ */
+ public static SeleniumWaiting waitModel = waitSelenium().interval(WAIT_MODEL_INTERVAL).timeout(
+ getSeleniumTimeout(MODEL));
+}
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueModel.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueModel.java 2010-09-14 14:53:40 UTC (rev 19196)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/a4jQueue/QueueModel.java 2010-09-14 15:11:57 UTC (rev 19197)
@@ -101,7 +101,6 @@
public void checkCounts(int events1, int events2, int requests, int domUpdates) {
assertChangeIfNotEqualToOldValue(retrieveEvent1Count, events1, "event1Count");
-
assertChangeIfNotEqualToOldValue(retrieveRequestCount, requests, "requestCount");
assertChangeIfNotEqualToOldValue(retrieveDOMUpdateCount, domUpdates, "domUpdates");
if (isEvent2Present()) {
14 years, 3 months
JBoss Rich Faces SVN: r19196 - trunk/core/impl/src/main/java/org/richfaces/renderkit/html.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2010-09-14 10:53:40 -0400 (Tue, 14 Sep 2010)
New Revision: 19196
Modified:
trunk/core/impl/src/main/java/org/richfaces/renderkit/html/CustomizeableGradient.java
Log:
https://jira.jboss.org/browse/RF-9344
Modified: trunk/core/impl/src/main/java/org/richfaces/renderkit/html/CustomizeableGradient.java
===================================================================
--- trunk/core/impl/src/main/java/org/richfaces/renderkit/html/CustomizeableGradient.java 2010-09-14 14:27:49 UTC (rev 19195)
+++ trunk/core/impl/src/main/java/org/richfaces/renderkit/html/CustomizeableGradient.java 2010-09-14 14:53:40 UTC (rev 19196)
@@ -47,7 +47,7 @@
* created 02.02.2007
*/
@DynamicResource
-public class CustomizeableGradient extends Java2Dresource {
+public abstract class CustomizeableGradient extends Java2Dresource {
private static final String BASE_COLOR = "baseColor";
14 years, 3 months