JBoss Rich Faces SVN: r21573 - trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2011-02-09 12:15:10 -0500 (Wed, 09 Feb 2011)
New Revision: 21573
Modified:
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js
Log:
RF-10471: fileUpload is fixed: indexOf method of Array is not supported in IE
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js 2011-02-09 16:23:10 UTC (rev 21572)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/fileupload.js 2011-02-09 17:15:10 UTC (rev 21573)
@@ -126,8 +126,8 @@
},
__removeItem: function(item) {
- this.items.splice(this.items.indexOf(item), 1);
- this.submitedItems.splice(this.submitedItems.indexOf(item), 1);
+ this.items.splice(jQuery.inArray(item, this.items), 1);
+ this.submitedItems.splice(jQuery.inArray(item, this.submitedItems), 1);
this.__updateButtons();
},
15 years, 2 months
JBoss Rich Faces SVN: r21572 - trunk/ui/input/ui/src/main/templates.
by richfaces-svn-commits@lists.jboss.org
Author: pyaschenko
Date: 2011-02-09 11:23:10 -0500 (Wed, 09 Feb 2011)
New Revision: 21572
Modified:
trunk/ui/input/ui/src/main/templates/calendar.template.xml
Log:
https://jira.jboss.org/browse/RF-10460
Modified: trunk/ui/input/ui/src/main/templates/calendar.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/calendar.template.xml 2011-02-09 16:05:59 UTC (rev 21571)
+++ trunk/ui/input/ui/src/main/templates/calendar.template.xml 2011-02-09 16:23:10 UTC (rev 21572)
@@ -25,7 +25,7 @@
<cc:implementation>
<span id="#{clientId}">
<span id="#{clientId}Popup"
- style="#{component.attributes['popup'] ? '' : 'display: none'}">
+ style="#{component.attributes['popup'] ? 'white-space: nowrap;' : 'display: none;'}">
<c:choose>
<c:when test="#{!component.attributes['popup']}">
<input id="#{clientId}InputDate" autocomplete="off" style="display:none"
15 years, 2 months
JBoss Rich Faces SVN: r21571 - trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/images.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2011-02-09 11:05:59 -0500 (Wed, 09 Feb 2011)
New Revision: 21571
Modified:
trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/images/PageFooterGradient.java
Log:
RF-9613 glassfish throws NullPointerException when skin plain is used
Modified: trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/images/PageFooterGradient.java
===================================================================
--- trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/images/PageFooterGradient.java 2011-02-09 15:51:36 UTC (rev 21570)
+++ trunk/examples/richfaces-showcase/src/main/java/org/richfaces/demo/images/PageFooterGradient.java 2011-02-09 16:05:59 UTC (rev 21571)
@@ -13,7 +13,7 @@
Dimension halfHeightDim = new Dimension();
halfHeightDim.setSize(dim.getWidth(), dim.getHeight() / 2);
super.paintGradient(g2d, halfHeightDim);
- AffineTransform transform = new AffineTransform(1, 0, 0, -1, 0, getHeight());
+ AffineTransform transform = new AffineTransform(1, 0, 0, -1, 0, getSafeHeight());
g2d.transform(transform);
super.paintGradient(g2d, halfHeightDim);
}
15 years, 2 months
JBoss Rich Faces SVN: r21570 - in trunk/examples/richfaces-showcase/src/main/webapp: resources/css and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2011-02-09 10:51:36 -0500 (Wed, 09 Feb 2011)
New Revision: 21570
Added:
trunk/examples/richfaces-showcase/src/main/webapp/css/
trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.ecss
Removed:
trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css
Modified:
trunk/examples/richfaces-showcase/src/main/webapp/templates/main.xhtml
Log:
new design.
Deleted: trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css 2011-02-09 15:20:41 UTC (rev 21569)
+++ trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css 2011-02-09 15:51:36 UTC (rev 21570)
@@ -1,142 +0,0 @@
-* {
- margin:0;
- padding:0;
-}
-html{
- height:100%;
-}
-body{
- background:#94aebc url(#{facesContext.externalContext.requestContextPath}/images/body-bg.jpg) left bottom repeat;
- font:normal 12px "Lucida Sans Unicode","Lucida Grande",Geneva,Verdana,Arial,sans-serif;
- height:100%;
-}
-ul{
- list-style:none;
-}
-a{
- color:#5a8eba;
- outline:none;
- text-decoration:none;
-}
-a:hover{
- text-decoration:underline;
-}
-p{
- margin:0;
- padding:0 0 6px;
-}
-#page{
- margin:0 auto;
- width:987px;
-}
-#header{
- background:url(#{facesContext.externalContext.requestContextPath}/images/header-bg.png) no-repeat top left;
- height:90px;
-}
-#header .logo{
- float:left;
- margin-left:7px;
- text-decoration:none;
-}
-#header .logo img{
- border:none;
-}
-#header .right-controls{
- float:right;
-}
-#header ul.top-links{
- margin:5px 15px 0 0;
- text-align:right;
-}
-#header ul.top-links li{
- display:inline;
- font-size:11px;
-}
-#header ul.top-links li a{
- background:url(#{facesContext.externalContext.requestContextPath}/images/sep.gif) center right no-repeat;
- color:#fff;
- padding:0 8px 0 3px;
-}
-#header ul.top-links li.last a{
- background:none;
- padding:0 0 0 3px;
-}
-#header ul.top-links li.download-link a{
- color:#eccb7b;
-}
-#header ul#skin-menu{
- color:#89a0be;
- cursor:default;
- font-weight:bold;
- margin:38px 15px 0 0;
- text-align:right;
-}
-#header ul#skin-menu li{
- cursor:pointer;
- display:inline-block;
- float:right;
- height:25px;
- margin-left:4px;
- padding-left:5px;
-}
-#header ul#skin-menu li span{
- height:25px;
- padding:3px 5px 0 0;
- display:inline-block;
-}
-#header ul#skin-menu li span:hover{
- text-decoration:underline;
-}
-#header ul#skin-menu li.label{
- color:#999999;
- cursor:default;
- font-weight:normal;
-}
-
-#header ul#skin-menu li.current-skin{
- background:url(#{facesContext.externalContext.requestContextPath}/images/select-skin-button.png) left -75px no-repeat;
- color:#fff;
-}
-#header ul#skin-menu li.current-skin span{
- background:url(#{facesContext.externalContext.requestContextPath}/images/select-skin-button.png) right 0 repeat-x;
-}
-#header ul#skin-menu li.label span:hover,
-#header ul#skin-menu li.current-skin span:hover{
- text-decoration:none;
-}
-#page-content{
- background:url(#{facesContext.externalContext.requestContextPath}/images/page-bg.png) 0 0 repeat-y;
- height:100%;
- min-height:520px;
- padding:10px 20px 0;
-}
-#page-content .left-menu{
- float:left;
- margin-right:10px;
- min-height:450px;
- width:210px;
-}
-#page-content .content-container {
- float:left;
- width:720px;
-}
-
-#page-content:after{
- content: ".";
- display: block;
- clear: both;
- visibility: hidden;
- line-height: 0;
- height: 0;
-}
-
-#footer{
- background:url(#{facesContext.externalContext.requestContextPath}/images/footer.png) top left no-repeat;
- color:#2d4351;
- text-align:center;
- padding:15px 20px 10px;
-}
-
-.source .syntaxhighlighter .line{
- white-space: normal !important;
-}
\ No newline at end of file
Copied: trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.ecss (from rev 21544, trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.css)
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.ecss (rev 0)
+++ trunk/examples/richfaces-showcase/src/main/webapp/resources/css/application.ecss 2011-02-09 15:51:36 UTC (rev 21570)
@@ -0,0 +1,138 @@
+* {
+ margin:0;
+ padding:0;
+}
+html{
+ height:100%;
+}
+body{
+ background:#94aebc url('#{facesContext.externalContext.requestContextPath}/images/body-bg.jpg') left bottom repeat;
+ font:normal 12px 'Lucida Sans Unicode, Lucida Grande, Geneva,Verdana,Arial,sans-serif';
+ height:100%;
+}
+ul{
+ list-style:none;
+}
+a{
+ color:#5a8eba;
+ outline:none;
+ text-decoration:none;
+}
+a:hover{
+ text-decoration:underline;
+}
+p{
+ margin:0;
+ padding:0 0 6px;
+}
+#page{
+ margin:0 auto;
+ width:987px;
+}
+#header{
+ background:url('#{facesContext.externalContext.requestContextPath}/images/header-bg.png') no-repeat top left;
+ height:90px;
+}
+#header .logo{
+ float:left;
+ margin-left:7px;
+ text-decoration:none;
+}
+#header .logo img{
+ border:none;
+}
+#header .right-controls{
+ float:right;
+}
+#header ul.top-links{
+ margin:5px 15px 0 0;
+ text-align:right;
+}
+#header ul.top-links li{
+ display:inline;
+ font-size:11px;
+}
+#header ul.top-links li a{
+ background:url('#{facesContext.externalContext.requestContextPath}/images/sep.gif') center right no-repeat;
+ color:#fff;
+ padding:0 8px 0 3px;
+}
+#header ul.top-links li.last a{
+ background:none;
+ padding:0 0 0 3px;
+}
+#header ul.top-links li.download-link a{
+ color:#eccb7b;
+}
+#header ul#skin-menu{
+ color:#89a0be;
+ cursor:default;
+ font-weight:bold;
+ margin:38px 15px 0 0;
+ text-align:right;
+}
+#header ul#skin-menu li{
+ cursor:pointer;
+ display:inline-block;
+ float:right;
+ height:25px;
+ margin-left:4px;
+ padding-left:5px;
+}
+#header ul#skin-menu li span{
+ height:25px;
+ padding:3px 5px 0 0;
+ display:inline-block;
+}
+#header ul#skin-menu li span:hover{
+ text-decoration:underline;
+}
+#header ul#skin-menu li.label{
+ color:#999999;
+ cursor:default;
+ font-weight:normal;
+}
+
+#header ul#skin-menu li.current-skin{
+ background:url('#{facesContext.externalContext.requestContextPath}/images/select-skin-button.png') left -75px no-repeat;
+ color:#fff;
+}
+#header ul#skin-menu li.current-skin span{
+ background:url('#{facesContext.externalContext.requestContextPath}/images/select-skin-button.png') right 0 repeat-x;
+}
+#header ul#skin-menu li.label span:hover,
+#header ul#skin-menu li.current-skin span:hover{
+ text-decoration:none;
+}
+#page-content{
+ background:url('#{facesContext.externalContext.requestContextPath}/images/page-bg.png') 0 0 repeat-y;
+ height:100%;
+ min-height:520px;
+ padding:10px 20px 0;
+}
+#page-content .left-menu{
+ float:left;
+ margin-right:10px;
+ min-height:450px;
+ width:210px;
+}
+#page-content .content-container {
+ float:left;
+ width:720px;
+}
+
+.clear{
+ clear:both;
+ height:0%;
+}
+
+#footer{
+ background:url('#{facesContext.externalContext.requestContextPath}/images/footer.png') top left no-repeat;
+ color:#2d4351;
+ text-align:center;
+ padding:15px 20px 10px;
+}
+
+.source .syntaxhighlighter .line{
+ white-space: normal !important;
+}
\ No newline at end of file
Modified: trunk/examples/richfaces-showcase/src/main/webapp/templates/main.xhtml
===================================================================
--- trunk/examples/richfaces-showcase/src/main/webapp/templates/main.xhtml 2011-02-09 15:20:41 UTC (rev 21569)
+++ trunk/examples/richfaces-showcase/src/main/webapp/templates/main.xhtml 2011-02-09 15:51:36 UTC (rev 21570)
@@ -19,7 +19,7 @@
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
-<h:outputStylesheet library="css" name="application.css"/>
+<h:outputStylesheet library="css" name="application.ecss"/>
</h:head>
<h:body>
<div id="page">
@@ -45,6 +45,7 @@
Body content missed
</ui:insert>
</div>
+ <div class="clear"></div>
</div>
<div id="footer">
#{a4j}
15 years, 2 months
JBoss Rich Faces SVN: r21569 - in modules/tests/metamer/trunk/application/src/main/webapp: templates and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: ppitonak(a)redhat.com
Date: 2011-02-09 10:20:41 -0500 (Wed, 09 Feb 2011)
New Revision: 21569
Modified:
modules/tests/metamer/trunk/application/src/main/webapp/components/richAccordionItem/simple.xhtml
modules/tests/metamer/trunk/application/src/main/webapp/templates/header.xhtml
Log:
* added id for statusChecker
* removed id from component controls
Modified: modules/tests/metamer/trunk/application/src/main/webapp/components/richAccordionItem/simple.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/components/richAccordionItem/simple.xhtml 2011-02-09 15:03:33 UTC (rev 21568)
+++ modules/tests/metamer/trunk/application/src/main/webapp/components/richAccordionItem/simple.xhtml 2011-02-09 15:20:41 UTC (rev 21569)
@@ -97,27 +97,27 @@
<legend>JavaScript API of rich:accordion</legend>
<h:commandButton id="switchButton1" value="switch to item1">
- <rich:componentControl id="componentControl1" event="click" operation="switchToItem" target="accordion" >
+ <rich:componentControl event="click" operation="switchToItem" target="accordion" >
<f:param value="item1" />
</rich:componentControl>
</h:commandButton>
<h:commandButton id="switchButton2" value="switch to item2">
- <rich:componentControl id="componentControl2" event="click" operation="switchToItem" target="accordion" >
+ <rich:componentControl event="click" operation="switchToItem" target="accordion" >
<f:param value="item2" />
</rich:componentControl>
</h:commandButton>
<h:commandButton id="switchButton3" value="switch to item3">
- <rich:componentControl id="componentControl1" event="click" operation="switchToItem" target="accordion" >
+ <rich:componentControl event="click" operation="switchToItem" target="accordion" >
<f:param value="item3" />
</rich:componentControl>
</h:commandButton>
<h:commandButton id="switchButton4" value="switch to item4">
- <rich:componentControl id="componentControl1" event="click" operation="switchToItem" target="accordion" >
+ <rich:componentControl event="click" operation="switchToItem" target="accordion" >
<f:param value="item4" />
</rich:componentControl>
</h:commandButton>
<h:commandButton id="switchButtonCustom" value="switch to item with custom name (#{richAccordionItemBean.attributes['name'].value})">
- <rich:componentControl id="componentControlCustom" event="click" operation="switchToItem" target="accordion" >
+ <rich:componentControl event="click" operation="switchToItem" target="accordion" >
<f:param value="#{richAccordionItemBean.attributes['name'].value}" />
</rich:componentControl>
</h:commandButton>
Modified: modules/tests/metamer/trunk/application/src/main/webapp/templates/header.xhtml
===================================================================
--- modules/tests/metamer/trunk/application/src/main/webapp/templates/header.xhtml 2011-02-09 15:03:33 UTC (rev 21568)
+++ modules/tests/metamer/trunk/application/src/main/webapp/templates/header.xhtml 2011-02-09 15:20:41 UTC (rev 21569)
@@ -40,8 +40,8 @@
style="width: 36px;" alt="Go to List of Pages"/>
</h:link>
<h:commandLink>
- <h:graphicImage id="fullPageRefreshImage" library="images" name="recycle.png" title="Full Page Refresh"
- style="width: 36px;" alt="Full Page Refresh" />
+ <h:graphicImage id="fullPageRefreshImage" library="images" name="recycle.png" title="Full Page Refresh"
+ style="width: 36px;" alt="Full Page Refresh" />
</h:commandLink>
<h:graphicImage id="reRenderAllImage" library="images" name="refresh.png" title="Rerender All"
style="width: 36px;" alt="Rerender All">
@@ -63,40 +63,40 @@
</f:facet>
</a4j:status>
</a4j:outputPanel>
-
- <h:outputLabel value="Locale" />
- <h:outputText id="locale" value="#{facesContext.viewRoot.locale}" />
-
+
+ <h:outputLabel value="Locale" />
+ <h:outputText id="locale" value="#{facesContext.viewRoot.locale}" />
+
<h:outputText id="showUiDebugLabel" value="Show ui:debug" />
<h:outputText id="showUiDebug" value="Ctrl+Shift+L" />
-
+
<h:outputLabel value="Render Checker" />
<a4j:outputPanel id="renderChecker">
- <h:outputText value="#{phasesBean.date}">
- <f:convertDateTime pattern="HH:MM:ss.SSS" />
- </h:outputText>
+ <h:outputText value="#{phasesBean.date}">
+ <f:convertDateTime pattern="HH:MM:ss.SSS" />
+ </h:outputText>
</a4j:outputPanel>
-
+
<h:outputLabel value="Status Checker" />
<a4j:outputPanel id="statusCheckerPanel">
- <a4j:status name="statusChecker" onstop="updateStatusChecker()" />
+ <a4j:status id="statusChecker" name="statusChecker" onstop="updateStatusChecker()" />
<h:outputText id="statusCheckerOutput" value="" />
-
- <h:outputScript target="head" library="script" name="date-format.js" />
- <h:outputScript target="head" library="script" name="clientTime-refresh.js" />
- <script>
- function updateStatusChecker() {
- Metamer.ClientTime.refresh(#{rich:element('statusCheckerOutput')});
- }
- updateStatusChecker();
+
+ <h:outputScript target="head" library="script" name="date-format.js" />
+ <h:outputScript target="head" library="script" name="clientTime-refresh.js" />
+ <script type="text/javascript">
+ function updateStatusChecker() {
+ Metamer.ClientTime.refresh(#{rich:element('statusCheckerOutput')});
+ }
+ updateStatusChecker();
</script>
</a4j:outputPanel>
-
+
<ui:debug hotkey="L" />
</h:panelGrid>
-
-
+
+
<h:form id="displayControlsForm">
<h:panelGrid columns="2">
<h:outputLabel id="reTestsCheckboxLabel" value="Display tests" for="reTestsCheckbox" />
@@ -165,9 +165,9 @@
</h:panelGrid>
-
-
+
+
</ui:composition>
</html>
\ No newline at end of file
15 years, 2 months
JBoss Rich Faces SVN: r21568 - modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar.
by richfaces-svn-commits@lists.jboss.org
Author: ppitonak(a)redhat.com
Date: 2011-02-09 10:03:33 -0500 (Wed, 09 Feb 2011)
New Revision: 21568
Added:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestDateEditor.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestTimeEditor.java
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/AbstractCalendarTest.java
Log:
https://issues.jboss.org/browse/RFPL-931
* added 14 tests for time and date editors in rich:calendar
Modified: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/AbstractCalendarTest.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/AbstractCalendarTest.java 2011-02-09 15:01:21 UTC (rev 21567)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/AbstractCalendarTest.java 2011-02-09 15:03:33 UTC (rev 21568)
@@ -77,15 +77,26 @@
protected JQueryLocator todayButton = pjq("td.rf-cal-tl-ftr:eq(4) > div");
protected JQueryLocator applyButton = pjq("td.rf-cal-tl-ftr:eq(5) > div");
// time panel
- protected JQueryLocator timePanel = pjq("table[id$=calendarEditor]");
+ protected JQueryLocator timeEditor = pjq("table[id$=calendarTimeEditorLayout]");
+ protected JQueryLocator timeEditorOk = pjq("div[id$=calendarTimeEditorButtonOk]");
+ protected JQueryLocator timeEditorCancel = pjq("div[id$=calendarTimeEditorButtonCancel]");
protected JQueryLocator hoursInput = pjq("input[id$=calendarTimeHours]");
protected JQueryLocator hoursInputUp = pjq("div[id$=calendarTimeHoursBtnUp]");
protected JQueryLocator hoursInputDown = pjq("div[id$=calendarTimeHoursBtnDown]");
protected JQueryLocator minutesInput = pjq("input[id$=calendarTimeMinutes]");
protected JQueryLocator minutesInputUp = pjq("div[id$=calendarTimeMinutesBtnUp]");
protected JQueryLocator minutesInputDown = pjq("div[id$=calendarTimeMinutesBtnDown]");
- protected JQueryLocator okButton = pjq("td.rf-cal-time-layout-ok > div");
- protected JQueryLocator cancelButton = pjq("td.rf-cal-time-layout-cancel > div");
-
+ protected JQueryLocator secondsInput = pjq("input[id$=calendarTimeSeconds]");
+ protected JQueryLocator secondsInputUp = pjq("div[id$=calendarTimeSecondsBtnUp]");
+ protected JQueryLocator secondsInputDown = pjq("div[id$=calendarTimeSecondsBtnDown]");
+ // date panel
+ protected JQueryLocator dateEditor = pjq("table[id$=calendarDateEditorLayout]");
+ protected JQueryLocator dateEditorOk = pjq("div[id$=calendarDateEditorButtonOk]");
+ protected JQueryLocator dateEditorCancel = pjq("div[id$=calendarDateEditorButtonCancel]");
+ protected JQueryLocator dateEditorLeftArrow = pjq("tr[id$=calendarDateEditorLayoutTR] div:eq(2)");
+ protected JQueryLocator dateEditorRightArrow = pjq("tr[id$=calendarDateEditorLayoutTR] div:eq(3)");
+ protected JQueryLocator dateEditorMonths = pjq("div[id$=calendarDateEditorLayoutM{0}]");
+ protected JQueryLocator dateEditorYears = pjq("div[id$=calendarDateEditorLayoutY{0}]");
+ // other
protected JQueryLocator output = pjq("span[id$=output]");
}
Added: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestDateEditor.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestDateEditor.java (rev 0)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestDateEditor.java 2011-02-09 15:03:33 UTC (rev 21568)
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010-2011, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * 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.richCalendar;
+
+import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardNoRequest;
+import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.testng.annotations.Test;
+
+/**
+ * Test case for date editro of a calendar on page faces/components/richCalendar/simple.xhtml.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class TestDateEditor extends AbstractCalendarTest {
+
+ @Override
+ public URL getTestUrl() {
+ return buildUrl(contextPath, "faces/components/richCalendar/simple.xhtml");
+ }
+
+ @Test
+ public void testShowDateEditor() {
+ String currentMonth = new SimpleDateFormat("MMMM, yyyy").format(new Date()).substring(0, 3);
+ String currentYear = new SimpleDateFormat("yyyy").format(new Date());
+
+ selenium.click(input);
+ guardNoRequest(selenium).click(monthLabel);
+
+ assertTrue(selenium.isElementPresent(dateEditor), "Date editor should be present on the page.");
+ assertTrue(selenium.isVisible(dateEditor), "Date editor should be visible.");
+
+ for (int i = 0; i < 12; i++) {
+ assertTrue(selenium.isElementPresent(dateEditorMonths.format(i)), "Date editor doesn't contain label for month " + Month.values()[i]);
+ assertEquals(selenium.getText(dateEditorMonths.format(i)), Month.values()[i].toString().substring(0, 3));
+
+ if (currentMonth.equals(selenium.getText(dateEditorMonths.format(i)))) {
+ assertTrue(selenium.belongsClass(dateEditorMonths.format(i), "rf-cal-edtr-btn-sel"), "");
+ }
+ }
+
+ for (int i = 0; i < 10; i++) {
+ assertTrue(selenium.isElementPresent(dateEditorYears.format(i)), "Date editor doesn't contain label for year " + (2007 + i));
+ assertEquals(selenium.getText(dateEditorYears.format(i)), Integer.toString(2007 + i), "Label of year");
+
+ if (currentYear.equals(selenium.getText(dateEditorYears.format(i)))) {
+ assertTrue(selenium.belongsClass(dateEditorYears.format(i), "rf-cal-edtr-btn-sel"), "Current year should be selected.");
+ }
+ }
+ }
+
+ @Test
+ public void testCancelButton() {
+ selenium.click(input);
+ selenium.click(monthLabel);
+
+ String oldLabel = selenium.getText(monthLabel);
+ assertTrue(selenium.isElementPresent(dateEditor), "Date editor should be present on the page.");
+ assertTrue(selenium.isVisible(dateEditor), "Date editor should be visible.");
+
+ selenium.click(dateEditorRightArrow);
+ selenium.click(dateEditorYears.format(0));
+
+ selenium.click(dateEditorCancel);
+ assertFalse(selenium.isVisible(dateEditor), "Date editor should not be visible.");
+ assertEquals(selenium.getText(monthLabel), oldLabel, "Month and year in calendar's popup should not change.");
+ }
+
+ @Test
+ public void testLeftButton() {
+ selenium.click(input);
+ selenium.click(monthLabel);
+
+ int minYear = Integer.parseInt(selenium.getText(dateEditorYears.format(0)));
+
+ selenium.click(dateEditorLeftArrow);
+ selenium.click(dateEditorLeftArrow);
+ selenium.click(dateEditorLeftArrow);
+
+ for (int i = 0; i < 10; i++) {
+ assertTrue(selenium.isElementPresent(dateEditorYears.format(i)), "Date editor doesn't contain label for year " + (minYear - 30 + i));
+ assertEquals(selenium.getText(dateEditorYears.format(i)), Integer.toString(minYear - 30 + i), "Label of year");
+ assertFalse(selenium.belongsClass(dateEditorYears.format(i), "rf-cal-edtr-btn-sel"), "No year should be selected.");
+ }
+ }
+
+ @Test
+ public void testRightButton() {
+ selenium.click(input);
+ selenium.click(monthLabel);
+
+ int minYear = Integer.parseInt(selenium.getText(dateEditorYears.format(0)));
+
+ selenium.click(dateEditorRightArrow);
+ selenium.click(dateEditorRightArrow);
+ selenium.click(dateEditorRightArrow);
+
+ for (int i = 0; i < 10; i++) {
+ assertTrue(selenium.isElementPresent(dateEditorYears.format(i)), "Date editor doesn't contain label for year " + (minYear + 30 + i));
+ assertEquals(selenium.getText(dateEditorYears.format(i)), Integer.toString(minYear + 30 + i), "Label of year");
+ assertFalse(selenium.belongsClass(dateEditorYears.format(i), "rf-cal-edtr-btn-sel"), "No year should be selected.");
+ }
+ }
+
+ @Test
+ public void testSelectMonth() {
+ String currentMonth = new SimpleDateFormat("MMMM").format(new Date());
+ String currentYear = new SimpleDateFormat("yyyy").format(new Date());
+
+ selenium.click(input);
+ selenium.click(monthLabel);
+
+ if (currentMonth.equals(Month.January.toString())) {
+ selenium.click(dateEditorMonths.format(Month.December.ordinal()));
+ selenium.click(dateEditorOk);
+ assertEquals(selenium.getText(monthLabel), "December, " + currentYear, "Month and year in calendar's popup should change.");
+ } else {
+ selenium.click(dateEditorMonths.format(Month.January.ordinal()));
+ selenium.click(dateEditorOk);
+ assertEquals(selenium.getText(monthLabel), "January, " + currentYear, "Month and year in calendar's popup should change.");
+ }
+
+ assertFalse(selenium.isVisible(dateEditor), "Date editor should not be visible.");
+ }
+
+ @Test
+ public void testSelectYear() {
+ selenium.click(input);
+ selenium.click(monthLabel);
+
+ String currentMonth = new SimpleDateFormat("MMMM").format(new Date());
+ int minYear = Integer.parseInt(selenium.getText(dateEditorYears.format(0)));
+ selenium.click(dateEditorRightArrow);
+
+ selenium.click(dateEditorYears.format(0));
+ selenium.click(dateEditorOk);
+ assertFalse(selenium.isVisible(dateEditor), "Date editor should not be visible.");
+ assertEquals(selenium.getText(monthLabel), currentMonth + ", " + (minYear + 10), "Month and year in calendar's popup should change.");
+
+ }
+}
Property changes on: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestDateEditor.java
___________________________________________________________________
Name: svn:keywords
+ Revision
Added: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestTimeEditor.java
===================================================================
--- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestTimeEditor.java (rev 0)
+++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestTimeEditor.java 2011-02-09 15:03:33 UTC (rev 21568)
@@ -0,0 +1,213 @@
+/*******************************************************************************
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010-2011, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * 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.richCalendar;
+
+import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardNoRequest;
+import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import java.net.URL;
+import org.jboss.test.selenium.encapsulated.JavaScript;
+import org.jboss.test.selenium.locator.ElementLocator;
+
+import org.testng.annotations.Test;
+
+/**
+ * Test case for time editor of a calendar on page faces/components/richCalendar/simple.xhtml.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class TestTimeEditor extends AbstractCalendarTest {
+
+ @Override
+ public URL getTestUrl() {
+ return buildUrl(contextPath, "faces/components/richCalendar/simple.xhtml");
+ }
+
+ @Test
+ public void testShowTimeEditor() {
+ selenium.click(input);
+ selenium.click(cellDay.format(18));
+
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:00", "Button's text");
+ guardNoRequest(selenium).click(timeButton);
+
+ assertTrue(selenium.isElementPresent(timeEditor), "Date editor should be present on the page.");
+ assertTrue(selenium.isVisible(timeEditor), "Date editor should be visible.");
+
+ assertEquals(selenium.getValue(hoursInput), "12", "Value of the spinner for hours");
+ assertEquals(selenium.getValue(minutesInput), "00", "Value of the spinner for hours");
+ }
+
+ @Test
+ public void testCancelButton() {
+ selenium.click(input);
+ selenium.click(cellDay.format(18));
+ selenium.click(timeButton);
+
+ clickArrow(hoursInputUp, 2);
+ assertEquals(selenium.getValue(hoursInput), "14", "Value of the spinner for hours");
+ assertEquals(selenium.getValue(minutesInput), "00", "Value of the spinner for hours");
+
+ selenium.click(timeEditorCancel);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:00", "Button's text");
+ }
+
+ @Test
+ public void testHoursInputClick() {
+ selenium.click(input);
+ selenium.click(cellDay.format(18));
+
+ selenium.click(timeButton);
+ clickArrow(hoursInputUp, 2);
+ assertEquals(selenium.getValue(hoursInput), "14", "Value of the spinner for hours");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "14:00", "Button's text");
+
+ selenium.click(timeButton);
+ clickArrow(hoursInputDown, 15);
+ assertEquals(selenium.getValue(hoursInput), "23", "Value of the spinner for hours");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "23:00", "Button's text");
+ }
+
+ @Test
+ public void testHoursInputType() {
+ selenium.click(input);
+ selenium.click(cellDay.format(18));
+
+ selenium.click(timeButton);
+ selenium.typeKeys(hoursInput, "14");
+ assertEquals(selenium.getValue(hoursInput), "14", "Value of the spinner for hours");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "14:00", "Button's text");
+
+ selenium.click(timeButton);
+ selenium.typeKeys(hoursInput, "9");
+ assertEquals(selenium.getValue(hoursInput), "09", "Value of the spinner for hours");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "09:00", "Button's text");
+ }
+
+ @Test
+ public void testMinutesInputClick() {
+ selenium.click(input);
+ selenium.click(cellDay.format(18));
+
+ selenium.click(timeButton);
+ clickArrow(minutesInputUp, 5);
+ assertEquals(selenium.getValue(minutesInput), "05", "Value of the spinner for minutes");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:05", "Button's text");
+
+ selenium.click(timeButton);
+ clickArrow(minutesInputDown, 15);
+ assertEquals(selenium.getValue(minutesInput), "50", "Value of the spinner for minutes");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:50", "Button's text");
+ }
+
+ @Test
+ public void testMinutesInputType() {
+ selenium.click(input);
+ selenium.click(cellDay.format(18));
+
+ selenium.click(timeButton);
+ selenium.typeKeys(minutesInput, "14");
+ assertEquals(selenium.getValue(minutesInput), "14", "Value of the spinner for minutes");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:14", "Button's text");
+
+ selenium.click(timeButton);
+ selenium.typeKeys(minutesInput, "9");
+ assertEquals(selenium.getValue(minutesInput), "09", "Value of the spinner for minutes");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:09", "Button's text");
+ }
+
+ @Test
+ public void testSecondsInputClick() {
+ selenium.type(pjq("input[type=text][id$=datePatternInput]"), "HH:mm:ss MMMM d, yyyy");
+ selenium.waitForPageToLoad();
+ selenium.click(input);
+ selenium.click(cellDay.format(18));
+
+ selenium.click(timeButton);
+ clickArrow(secondsInputUp, 5);
+ assertEquals(selenium.getValue(secondsInput), "05", "Value of the spinner for seconds");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:00:05", "Button's text");
+
+ selenium.click(timeButton);
+ clickArrow(secondsInputDown, 15);
+ assertEquals(selenium.getValue(secondsInput), "50", "Value of the spinner for seconds");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:00:50", "Button's text");
+ }
+
+ @Test
+ public void testSecondsInputType() {
+ selenium.type(pjq("input[type=text][id$=datePatternInput]"), "HH:mm:ss MMMM d, yyyy");
+ selenium.waitForPageToLoad();
+ selenium.click(input);
+ selenium.click(cellDay.format(18));
+
+ selenium.click(timeButton);
+ selenium.typeKeys(secondsInput, "14");
+ assertEquals(selenium.getValue(secondsInput), "14", "Value of the spinner for seconds");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:00:14", "Button's text");
+
+ selenium.click(timeButton);
+ selenium.typeKeys(secondsInput, "9");
+ assertEquals(selenium.getValue(secondsInput), "09", "Value of the spinner for seconds");
+ selenium.click(timeEditorOk);
+ assertTrue(selenium.isDisplayed(timeButton), "Time button should be visible.");
+ assertEquals(selenium.getText(timeButton), "12:00:09", "Button's text");
+ }
+
+ /**
+ * Clicks on spinner's arrow.
+ * @param arrow spinner's up or down arrow locator
+ * @param clicks how many times should it be clicked
+ */
+ private void clickArrow(ElementLocator<?> arrow, int clicks) {
+ for (int i = 0; i < clicks; i++) {
+ selenium.runScript(new JavaScript("jQuery(\"" + arrow.getRawLocator() + "\").mousedown().mouseup()"));
+ }
+ }
+}
Property changes on: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richCalendar/TestTimeEditor.java
___________________________________________________________________
Name: svn:keywords
+ Revision
15 years, 2 months
JBoss Rich Faces SVN: r21567 - in trunk: examples/output-demo/src/main/webapp/examples and 3 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: pyaschenko
Date: 2011-02-09 10:01:21 -0500 (Wed, 09 Feb 2011)
New Revision: 21567
Modified:
trunk/examples/input-demo/src/main/webapp/examples/inplaceSelect.xhtml
trunk/examples/output-demo/src/main/webapp/examples/tooltip.xhtml
trunk/ui/common/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/menu-base.js
trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tooltip.js
Log:
https://jira.jboss.org/browse/RF-10395 + tooltip bindings refactoring
Modified: trunk/examples/input-demo/src/main/webapp/examples/inplaceSelect.xhtml
===================================================================
--- trunk/examples/input-demo/src/main/webapp/examples/inplaceSelect.xhtml 2011-02-09 14:39:21 UTC (rev 21566)
+++ trunk/examples/input-demo/src/main/webapp/examples/inplaceSelect.xhtml 2011-02-09 15:01:21 UTC (rev 21567)
@@ -4,7 +4,8 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:in="http://richfaces.org/input"
- xmlns:misc="http://richfaces.org/misc">
+ xmlns:misc="http://richfaces.org/misc"
+ xmlns:a4j="http://richfaces.org/a4j">
<f:view contentType="text/html" />
<h:head>
@@ -14,7 +15,7 @@
<h:body>
<h:form id="form">
- <div id="scroll" style="width: 500px; height:400px; overflow:auto;" >
+ <div id="scroll" style="width: 500px; height:260px; overflow:auto;" >
<fieldset>
<legend>InplaceSelect Test App</legend>
Fresh off his victory in the Florida primary, Sen. John McCain is poised to take another big prize. Former
@@ -47,6 +48,12 @@
<h:panelGroup id="out">
<h:outputText value="Entered Value: #{inputBean.value}"/>
</h:panelGroup>
+
+ <!--a4j:poll render="is" interval="2000" />
+ <in:inplaceSelect id='is' defaultLabel="Edit Text" value="#{inputBean.value}" openOnEdit="true" saveOnSelect="false">
+ <f:selectItem itemLabel="Label#1" itemValue="Value#1"/>
+ <f:selectItem itemLabel="Label#2" itemValue="Value#2"/>
+ </in:inplaceSelect-->
</h:form>
</h:body>
</html>
Modified: trunk/examples/output-demo/src/main/webapp/examples/tooltip.xhtml
===================================================================
--- trunk/examples/output-demo/src/main/webapp/examples/tooltip.xhtml 2011-02-09 14:39:21 UTC (rev 21566)
+++ trunk/examples/output-demo/src/main/webapp/examples/tooltip.xhtml 2011-02-09 15:01:21 UTC (rev 21567)
@@ -145,6 +145,14 @@
</h:panelGrid>
<a4j:outputPanel ajaxRendered="true"><h:messages></h:messages></a4j:outputPanel>
</h:form>
+ <!-- h:form>
+ <a4j:poll render="tt" interval="10000" />
+ <rich:panel id="myId1" styleClass="tooltip-text" bodyClass="rich-laguna-panel-no-header">
+ <pn:tooltip id="tt" styleClass="tooltip">
+ <span style="white-space: nowrap">Test tooltip with a4j:pool</span>
+ </pn:tooltip>
+ </rich:panel>
+ </h:form-->
</ui:define>
</ui:composition>
</body>
Modified: trunk/ui/common/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js
===================================================================
--- trunk/ui/common/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js 2011-02-09 14:39:21 UTC (rev 21566)
+++ trunk/ui/common/ui/src/main/resources/META-INF/resources/org.richfaces/popup.js 2011-02-09 15:01:21 UTC (rev 21567)
@@ -78,6 +78,13 @@
getId: function() {
return this.id;
+ },
+
+ destroy: function() {
+ if (this.attachToBody && this.parentElement) {
+ this.parentElement.appendChild(this.popup.get(0));
+ this.parentElement = null;
+ }
}
});
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2011-02-09 14:39:21 UTC (rev 21566)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/inplaceSelect.js 2011-02-09 15:01:21 UTC (rev 21567)
@@ -256,6 +256,11 @@
break;
}
}
+ },
+ destroy: function() {
+ this.popupList.destroy();
+ this.popupList = null;
+ $super.destroy.call(this);
}
};
Modified: trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js
===================================================================
--- trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js 2011-02-09 14:39:21 UTC (rev 21566)
+++ trunk/ui/input/ui/src/main/resources/META-INF/resources/org.richfaces/select.js 2011-02-09 15:01:21 UTC (rev 21567)
@@ -371,7 +371,13 @@
getLabel: function() {
return this.__getValue();
- }
+ },
+
+ destroy: function() {
+ this.popupList.destroy();
+ this.popupList = null;
+ $super.destroy.call(this);
+ }
}
})());
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/menu-base.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/menu-base.js 2011-02-09 14:39:21 UTC (rev 21566)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/menu-base.js 2011-02-09 15:01:21 UTC (rev 21567)
@@ -226,6 +226,9 @@
this.detach(this.id);
rf.Event.unbind(this.popupElement, "keydown" + this.namespace);
+
+ this.popup.destroy();
+ this.popup = null;
// call parent's destroy method
$super.destroy.call(this);
Modified: trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tooltip.js
===================================================================
--- trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tooltip.js 2011-02-09 14:39:21 UTC (rev 21566)
+++ trunk/ui/output/ui/src/main/resources/META-INF/resources/org.richfaces/tooltip.js 2011-02-09 15:01:21 UTC (rev 21567)
@@ -105,6 +105,7 @@
* */
init : function (componentId, options) {
$super.constructor.call(this, componentId);
+ this.namespace = "."+rf.Event.createNamespace(this.name, this.id);
this.options = $.extend(this.options, DEFAULT_OPTIONS, options || {});
this.attachToDom();
@@ -116,7 +117,7 @@
this.__addUserEventHandler("beforehide");
this.__addUserEventHandler("beforeshow");
- this.popup = new RichFaces.ui.Popup(this.id, {
+ this.popup = new rf.ui.Popup(this.id, {
attachTo: this.target,
attachToBody: true,
positionType: "TOOLTIP",
@@ -125,14 +126,14 @@
direction: this.options.direction
});
- var targetElt = $(document.getElementById(this.target));
+ var handlers = {};
+ handlers[this.options.showEvent + this.namespace] = this.__showHandler;
+ handlers[this.options.hideEvent + this.namespace] = this.__hideHandler;
- targetElt.bind(this.options.showEvent, $.proxy(this.__showHandler, this));
+ rf.Event.bindById(this.target, handlers, this);
- var hideFunction = $.proxy(this.__hideHandler, this);
- targetElt.bind(this.options.hideEvent, hideFunction);
if (this.options.hideEvent == 'mouseleave') {
- $(document.getElementById(this.id)).bind(this.options.hideEvent, hideFunction);
+ rf.Event.bindById(this.id, this.options.hideEvent + this.namespace, this.__hideHandler, this);
}
},
@@ -164,7 +165,7 @@
this.hide();
if (this.options.followMouse) {
- $(document.getElementById(this.target)).unbind("mousemove", this.__mouseMoveHandler);
+ rf.Event.unbindById(this.target, "mousemove" + this.namespace);
}
},
@@ -187,7 +188,7 @@
this.show(event);
if (this.options.followMouse) {
- $(document.getElementById(this.target)).bind("mousemove", $.proxy(this.__mouseMoveHandler, this));
+ rf.Event.bindById(this.target, "mousemove"+ this.namespace, this.__mouseMoveHandler, this);
}
},
@@ -283,7 +284,7 @@
__addUserEventHandler : function (name) {
var handler = this.options["on" + name];
if (handler) {
- rf.Event.bindById(this.id, name, handler);
+ rf.Event.bindById(this.id, name + this.namespace, handler);
}
},
@@ -304,6 +305,10 @@
},
destroy: function () {
+ rf.Event.unbindById(this.id, this.namespace);
+ rf.Event.unbindById(this.target, this.namespace);
+ this.popup.destroy();
+ this.popup = null;
$super.destroy.call(this);
}
});
15 years, 2 months
JBoss Rich Faces SVN: r21566 - in trunk: ui/core/ui/src/main/resources/META-INF/resources/net.java.dev.atmosphere and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2011-02-09 09:39:21 -0500 (Wed, 09 Feb 2011)
New Revision: 21566
Modified:
trunk/bom/pom.xml
trunk/ui/core/ui/src/main/resources/META-INF/resources/net.java.dev.atmosphere/jquery-atmosphere.js
Log:
https://issues.jboss.org/browse/RF-10472
Modified: trunk/bom/pom.xml
===================================================================
--- trunk/bom/pom.xml 2011-02-09 14:36:33 UTC (rev 21565)
+++ trunk/bom/pom.xml 2011-02-09 14:39:21 UTC (rev 21566)
@@ -216,7 +216,7 @@
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
- <version>0.6.3</version>
+ <version>0.6.4</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
Modified: trunk/ui/core/ui/src/main/resources/META-INF/resources/net.java.dev.atmosphere/jquery-atmosphere.js
===================================================================
--- trunk/ui/core/ui/src/main/resources/META-INF/resources/net.java.dev.atmosphere/jquery-atmosphere.js 2011-02-09 14:36:33 UTC (rev 21565)
+++ trunk/ui/core/ui/src/main/resources/META-INF/resources/net.java.dev.atmosphere/jquery-atmosphere.js 2011-02-09 14:39:21 UTC (rev 21566)
@@ -11,498 +11,542 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-jQuery.atmosphere = function() {
- var activeRequest;
- $(window).unload(function() {
- if (activeRequest)
- activeRequest.abort();
- });
+jQuery.atmosphere = function()
+{
+ var activeRequest;
+ $(window).unload(function()
+ {
+ if (activeRequest)
+ activeRequest.abort();
+ });
- return {
- version : 0.7,
- response : {
- status : 200,
- responseBody : '',
- headers : [],
- state : "messageReceived",
- transport : "polling",
- push : [],
- error : null,
- id : 0
- },
+ return {
+ version : 0.7,
+ response : {
+ status: 200,
+ responseBody : '',
+ headers : [],
+ state : "messageReceived",
+ transport : "polling",
+ push : [],
+ error: null,
+ id : 0
+ },
- request : {},
- logLevel : 'info',
- callbacks : [],
- activeTransport : null,
- websocket : null,
- killHiddenIFrame : null,
+ request : {},
+ abordingConnection: false,
+ logLevel : 'info',
+ callbacks: [],
+ activeTransport : null,
+ websocket : null,
+ killHiddenIFrame : null,
- subscribe : function(url, callback, request) {
- jQuery.atmosphere.request = jQuery.extend({
- timeout : 300000,
- method : 'GET',
- headers : {},
- contentType : "text/html;charset=ISO-8859-1",
- cache : true,
- async : true,
- ifModified : false,
- callback : null,
- dataType : '',
- url : url,
- data : '',
- suspend : true,
- maxRequest : 60,
- lastIndex : 0,
- logLevel : 'info',
- requestCount : 0,
- fallbackTransport : 'streaming',
- transport : 'long-polling'
+ subscribe: function(url, callback, request)
+ {
+ jQuery.atmosphere.request = jQuery.extend({
+ timeout: 300000,
+ method: 'GET',
+ headers: {},
+ contentType : "text/html;charset=ISO-8859-1",
+ cache: true,
+ async: true,
+ ifModified: false,
+ callback: null,
+ dataType: '',
+ url : url,
+ data : '',
+ suspend : true,
+ maxRequest : 60,
+ lastIndex : 0,
+ logLevel : 'info',
+ requestCount : 0,
+ fallbackTransport : 'streaming',
+ transport : 'long-polling'
- }, request);
+ }, request);
- logLevel = jQuery.atmosphere.request.logLevel || 'info';
- if (callback != null) {
- jQuery.atmosphere.addCallback(callback);
- jQuery.atmosphere.request.callback = callback;
- }
+ logLevel = jQuery.atmosphere.request.logLevel || 'info';
+ if (callback != null) {
+ jQuery.atmosphere.addCallback(callback);
+ jQuery.atmosphere.request.callback = callback;
+ }
- if (jQuery.atmosphere.request.transport != jQuery.atmosphere.activeTransport) {
- jQuery.atmosphere.closeSuspendedConnection();
- }
- jQuery.atmosphere.activeTransport = jQuery.atmosphere.request.transport;
+ if (jQuery.atmosphere.request.transport != jQuery.atmosphere.activeTransport) {
+ jQuery.atmosphere.closeSuspendedConnection();
+ }
+ jQuery.atmosphere.activeTransport = jQuery.atmosphere.request.transport;
- if (jQuery.atmosphere.request.transport != 'websocket') {
- jQuery.atmosphere.executeRequest();
- } else if (jQuery.atmosphere.request.transport == 'websocket') {
- if (!window.WebSocket) {
- jQuery.atmosphere
- .log(
- logLevel,
- [ "Websocket is not supported, using request.fallbackTransport" ]);
- jQuery.atmosphere.request.transport = jQuery.atmosphere.request.fallbackTransport;
- jQuery.atmosphere.executeRequest();
- } else {
- jQuery.atmosphere.executeWebSocket();
- }
- }
- },
+ if (jQuery.atmosphere.request.transport != 'websocket') {
+ jQuery.atmosphere.executeRequest();
+ } else if (jQuery.atmosphere.request.transport == 'websocket') {
+ if (!window.WebSocket) {
+ jQuery.atmosphere.log(logLevel, ["Websocket is not supported, using request.fallbackTransport"]);
+ jQuery.atmosphere.request.transport = jQuery.atmosphere.request.fallbackTransport;
+ jQuery.atmosphere.executeRequest();
+ }
+ else {
+ jQuery.atmosphere.executeWebSocket();
+ }
+ }
+ },
- /**
- * Always make sure one transport is used, not two at the same time except for Websocket.
- */
- closeSuspendedConnection : function() {
- if (activeRequest != null) {
- activeRequest.abort();
- }
+ /**
+ * Always make sure one transport is used, not two at the same time except for Websocket.
+ */
+ closeSuspendedConnection : function () {
+ abordingConnection = true;
+ if (activeRequest != null) {
+ activeRequest.abort();
+ }
- if (jQuery.atmosphere.websocket != null) {
- jQuery.atmosphere.websocket.close();
- jQuery.atmosphere.websocket = null;
- }
- },
+ if (jQuery.atmosphere.websocket != null) {
+ jQuery.atmosphere.websocket.close();
+ jQuery.atmosphere.websocket = null;
+ }
+ abordingConnection = false;
+ },
- executeRequest : function() {
+ executeRequest: function()
+ {
- if (jQuery.atmosphere.request.transport == 'streaming') {
- if ($.browser.msie) {
- jQuery.atmosphere.ieStreaming();
- return;
- } else if ((typeof window.addEventStream) == 'function') {
- jQuery.atmosphere.operaStreaming();
- return;
- }
- }
+ if (jQuery.atmosphere.request.transport == 'streaming') {
+ if ($.browser.msie) {
+ jQuery.atmosphere.ieStreaming();
+ return;
+ } else if ((typeof window.addEventStream) == 'function') {
+ jQuery.atmosphere.operaStreaming();
+ return;
+ }
+ }
- if (jQuery.atmosphere.request.requestCount++ < jQuery.atmosphere.request.maxRequest) {
- jQuery.atmosphere.response.push = function(url) {
- jQuery.atmosphere.request.callback = null;
- jQuery.atmosphere.publish(url, null,
- jQuery.atmosphere.request);
- };
+ if (jQuery.atmosphere.request.requestCount++ < jQuery.atmosphere.request.maxRequest) {
+ jQuery.atmosphere.response.push = function (url)
+ {
+ jQuery.atmosphere.request.callback = null;
+ jQuery.atmosphere.publish(url, null, jQuery.atmosphere.request);
+ };
- var request = jQuery.atmosphere.request;
- var response = jQuery.atmosphere.response;
- if (request.transport != 'polling') {
- response.transport = request.transport;
- }
+ var request = jQuery.atmosphere.request;
+ var response = jQuery.atmosphere.response;
+ if (request.transport != 'polling') {
+ response.transport = request.transport;
+ }
- var ajaxRequest;
- var error = false;
- if ($.browser.msie) {
- var activexmodes = [ "Msxml2.XMLHTTP", "Microsoft.XMLHTTP" ]
- for ( var i = 0; i < activexmodes.length; i++) {
- try {
- ajaxRequest = new ActiveXObject(activexmodes[i])
- } catch (e) {
- }
- }
- } else if (window.XMLHttpRequest) {
- ajaxRequest = new XMLHttpRequest();
- }
+ var ajaxRequest;
+ var error = false;
+ if ($.browser.msie) {
+ var activexmodes = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]
+ for (var i = 0; i < activexmodes.length; i++) {
+ try {
+ ajaxRequest = new ActiveXObject(activexmodes[i])
+ }
+ catch(e) {
+ }
+ }
+ } else if (window.XMLHttpRequest) {
+ ajaxRequest = new XMLHttpRequest();
+ }
- if (request.suspend) {
- activeRequest = ajaxRequest;
- }
+ if (request.suspend) {
+ activeRequest = ajaxRequest;
+ }
- ajaxRequest.open(request.method, request.url, true);
- ajaxRequest.setRequestHeader("X-Atmosphere-Framework",
- jQuery.atmosphere.version);
- ajaxRequest.setRequestHeader("X-Atmosphere-Transport",
- request.transport);
- ajaxRequest.setRequestHeader("X-Cache-Date", new Date());
+ ajaxRequest.open(request.method, request.url, true);
+ ajaxRequest.setRequestHeader("X-Atmosphere-Framework", jQuery.atmosphere.version);
+ ajaxRequest.setRequestHeader("X-Atmosphere-Transport", request.transport);
+ ajaxRequest.setRequestHeader("X-Cache-Date", new Date().getTime());
+ for(var x in request.headers) {
+ ajaxRequest.setRequestHeader(x, request.headers[x]);
+ }
- if (!$.browser.msie) {
- ajaxRequest.onerror = function() {
- error = true;
- try {
- response.status = XMLHttpRequest.status;
- } catch (e) {
- response.status = 404;
- }
+ if (!$.browser.msie) {
+ ajaxRequest.onerror = function()
+ {
+ error = true;
+ try {
+ response.status = XMLHttpRequest.status;
+ }
+ catch(e) {
+ response.status = 404;
+ }
- response.state = "error";
- jQuery.atmosphere.invokeCallback(response);
- ajaxRequest.abort();
- activeRequest = null;
- }
- }
+ response.state = "error";
+ jQuery.atmosphere.invokeCallback(response);
+ ajaxRequest.abort();
+ activeRequest = null;
+ }
+ }
- ajaxRequest.onreadystatechange = function() {
- var junkForWebkit = false;
- var update = false;
- if (ajaxRequest.readyState == 4) {
- jQuery.atmosphere.request = request;
- if (request.suspend && ajaxRequest.status == 200) {
- jQuery.atmosphere.executeRequest();
- }
+ ajaxRequest.onreadystatechange = function()
+ {
+ if (abordingConnection) return;
- if ($.browser.msie) {
- update = true;
- }
- } else if (!$.browser.msie && ajaxRequest.readyState == 3
- && ajaxRequest.status == 200) {
- update = true;
- } else {
- clearTimeout(request.id);
- }
+ var junkForWebkit = false;
+ var update = false;
+ if (ajaxRequest.readyState == 4) {
+ jQuery.atmosphere.request = request;
+ if (request.suspend && ajaxRequest.status == 200) {
+ jQuery.atmosphere.executeRequest();
+ }
- if (update) {
- if (request.transport == 'streaming') {
- response.responseBody = ajaxRequest.responseText
- .substring(request.lastIndex,
- ajaxRequest.responseText.length);
- request.lastIndex = ajaxRequest.responseText.length;
+ if ($.browser.msie) {
+ update = true;
+ }
+ } else if (!$.browser.msie && ajaxRequest.readyState == 3 && ajaxRequest.status == 200) {
+ update = true;
+ } else {
+ clearTimeout(request.id);
+ }
- if (response.responseBody.indexOf("<!--") != -1) {
- junkForWebkit = true;
- }
+ if (update) {
+ if (request.transport == 'streaming') {
+ response.responseBody = ajaxRequest.responseText.substring(request.lastIndex, ajaxRequest.responseText.length);
- } else {
- response.responseBody = ajaxRequest.responseText;
- }
+ if (request.lastIndex == 0 && response.responseBody.indexOf("<!-- Welcome to the Atmosphere Framework.") != -1) {
+ var endOfJunk = "<!-- EOD -->";
+ var endOfJunkLenght = "<!-- EOD -->".length;
+ var junkEnd = response.responseBody.indexOf(endOfJunk) + endOfJunkLenght;
- if (response.responseBody.indexOf("parent.callback") != -1) {
- var start = response.responseBody.indexOf("('") + 2;
- var end = response.responseBody.indexOf("')");
- response.responseBody = response.responseBody
- .substring(start, end);
- }
+ if (junkEnd != ajaxRequest.responseText.length) {
+ response.responseBody = response.responseBody.substring(junkEnd);
+ } else {
+ junkForWebkit = true;
+ }
+ }
+ request.lastIndex = ajaxRequest.responseText.length;
+ if (junkForWebkit) return;
+ } else {
+ response.responseBody = ajaxRequest.responseText;
+ }
- if (junkForWebkit)
- return;
+ if (response.responseBody.indexOf("parent.callback") != -1) {
+ var start = response.responseBody.indexOf("('") + 2;
+ var end = response.responseBody.indexOf("')");
+ response.responseBody = response.responseBody.substring(start, end);
+ }
- try {
- response.status = ajaxRequest.status;
- response.headers = ajaxRequest
- .getAllResponseHeaders();
- } catch (e) {
- response.status = 404;
- }
+ try {
+ response.status = ajaxRequest.status;
+ response.headers = ajaxRequest.getAllResponseHeaders();
+ }
+ catch(e) {
+ response.status = 404;
+ }
- if (request.suspend) {
- response.state = "messageReceived";
- } else {
- response.state = "messagePublished";
- }
- jQuery.atmosphere.invokeCallback(response);
- }
- }
- ajaxRequest.send(request.data);
+ if (request.suspend) {
+ response.state = "messageReceived";
+ } else {
+ response.state = "messagePublished";
+ }
- if (request.suspend) {
- request.id = setTimeout(
- function() {
- ajaxRequest.abort();
- jQuery.atmosphere.subscribe(request.url, null,
- request);
+ jQuery.atmosphere.invokeCallback(response);
+ }
+ }
+ ajaxRequest.send(request.data);
- }, request.timeout);
- }
- } else {
- jQuery.atmosphere.log(logLevel,
- [ "Max re-connection reached." ]);
- }
- },
+ if (request.suspend) {
+ request.id = setTimeout(function()
+ {
+ ajaxRequest.abort();
+ jQuery.atmosphere.subscribe(request.url, null, request);
- operaStreaming : function() {
+ }, request.timeout);
+ }
+ } else {
+ jQuery.atmosphere.log(logLevel, ["Max re-connection reached."]);
+ }
+ },
- var url = jQuery.atmosphere.request.url;
- var es = document.createElement('event-source');
- var response = jQuery.atmosphere.response;
+ operaStreaming: function()
+ {
- jQuery.atmosphere.response.push = function(url) {
- jQuery.atmosphere.request.transport = 'polling';
- jQuery.atmosphere.request.callback = null;
- jQuery.atmosphere.publish(url, null, jQuery.atmosphere.request);
- };
+ var url = jQuery.atmosphere.request.url;
+ var es = document.createElement('event-source');
+ var response = jQuery.atmosphere.response;
- es.setAttribute('src', url);
- // without this check opera 9.5 would make two connections.
- if (opera.version() < 9.5) {
- document.body.appendChild(es);
- }
+ jQuery.atmosphere.response.push = function (url)
+ {
+ jQuery.atmosphere.request.transport = 'polling';
+ jQuery.atmosphere.request.callback = null;
+ jQuery.atmosphere.publish(url, null, jQuery.atmosphere.request);
+ };
+
+ es.setAttribute('src', url);
+ // without this check opera 9.5 would make two connections.
+ if (opera.version() < 9.5) {
+ document.body.appendChild(es);
+ }
- var operaCallback = function(event) {
- if (event.data) {
- var junkForWebkit = false;
+ var operaCallback = function (event) {
+ if (event.data) {
+ var junkForWebkit = false;
+
+ response.responseBody = event.data;
+ if (event.data.indexOf("<!--") != -1) {
+ junkForWebkit = true;
+ }
- response.responseBody = event.data;
- if (event.data.indexOf("<!--") != -1) {
- junkForWebkit = true;
- }
+ if (response.responseBody.indexOf("parent.callback") != -1) {
+ var start = response.responseBody.indexOf("('") + 2;
+ var end = response.responseBody.indexOf("')");
+ response.responseBody = response.responseBody.substring(start, end);
+ }
- if (response.responseBody.indexOf("parent.callback") != -1) {
- var start = response.responseBody.indexOf("('") + 2;
- var end = response.responseBody.indexOf("')");
- response.responseBody = response.responseBody
- .substring(start, end);
- }
+ if (junkForWebkit) return;
- if (junkForWebkit)
- return;
+ response.state = "messageReceived";
+ jQuery.atmosphere.invokeCallback(response);
+ }
+ };
- response.state = "messageReceived";
- jQuery.atmosphere.invokeCallback(response);
- }
- };
+ es.addEventListener('payload', operaCallback, false);
- es.addEventListener('payload', operaCallback, false);
+ },
- },
+ ieStreaming : function()
+ {
+ var url = jQuery.atmosphere.request.url;
+ jQuery.atmosphere.response.push = function (url)
+ {
+ jQuery.atmosphere.request.transport = 'polling';
+ jQuery.atmosphere.request.callback = null;
+ jQuery.atmosphere.publish(url, null, jQuery.atmosphere.request);
+ };
- ieStreaming : function() {
- var url = jQuery.atmosphere.request.url;
- jQuery.atmosphere.response.push = function(url) {
- jQuery.atmosphere.request.transport = 'polling';
- jQuery.atmosphere.request.callback = null;
- jQuery.atmosphere.publish(url, null, jQuery.atmosphere.request);
- };
+ transferDoc = new ActiveXObject("htmlfile");
+ transferDoc.open();
+ transferDoc.close();
+ var ifrDiv = transferDoc.createElement("div");
+ transferDoc.body.appendChild(ifrDiv);
+ ifrDiv.innerHTML = "<iframe src='" + url + "'></iframe>";
+ transferDoc.parentWindow.callback = jQuery.atmosphere.streamingCallback;
+ }
+ ,
- transferDoc = new ActiveXObject("htmlfile");
- transferDoc.open();
- transferDoc.close();
- var ifrDiv = transferDoc.createElement("div");
- transferDoc.body.appendChild(ifrDiv);
- ifrDiv.innerHTML = "<iframe src='" + url + "'></iframe>";
- transferDoc.parentWindow.callback = jQuery.atmosphere.streamingCallback;
- },
+ streamingCallback : function(args)
+ {
+ var response = jQuery.atmosphere.response;
+ response.transport = "streaming";
+ response.status = 200;
+ response.responseBody = args;
+ response.state = "messageReceived";
- streamingCallback : function(args) {
- var response = jQuery.atmosphere.response;
- response.transport = "streaming";
- response.status = 200;
- response.responseBody = args;
- response.state = "messageReceived";
+ jQuery.atmosphere.invokeCallback(response);
+ }
+ ,
- jQuery.atmosphere.invokeCallback(response);
- },
+ executeWebSocket : function()
+ {
+ var request = jQuery.atmosphere.request;
+ var success = false;
+ jQuery.atmosphere.log(logLevel, ["Invoking executeWebSocket"]);
+ jQuery.atmosphere.response.transport = "websocket";
+ var url = jQuery.atmosphere.request.url;
+ var callback = jQuery.atmosphere.request.callback;
+ var location = url.replace('http:', 'ws:').replace('https:', 'wss:');
- executeWebSocket : function() {
- var request = jQuery.atmosphere.request;
- jQuery.atmosphere.log(logLevel, [ "Invoking executeWebSocket" ]);
- jQuery.atmosphere.response.transport = "websocket";
- var url = jQuery.atmosphere.request.url;
- var callback = jQuery.atmosphere.request.callback;
- var location = url.replace('http:', 'ws:')
- .replace('https:', 'wss:');
+ var websocket = new WebSocket(location);
+ jQuery.atmosphere.websocket = websocket;
- var websocket = new WebSocket(location);
- jQuery.atmosphere.websocket = websocket;
+ jQuery.atmosphere.response.push = function (url)
+ {
+ var data;
+ var ws = jQuery.atmosphere.websocket;
+ try {
+ data = jQuery.atmosphere.request.data
+ ws.send(jQuery.atmosphere.request.data);
+ } catch (e) {
+ jQuery.atmosphere.log(logLevel, ["Websocket failed. Downgrading to Comet and resending " + data]);
+ // Websocket is not supported, reconnect using the fallback transport.
+ request.transport = request.fallbackTransport;
+ jQuery.atmosphere.request = request;
+ jQuery.atmosphere.executeRequest();
- jQuery.atmosphere.response.push = function(url) {
- var data;
- var ws = jQuery.atmosphere.websocket;
- try {
- data = jQuery.atmosphere.request.data;
- ws.send(jQuery.atmosphere.request.data);
- } catch (e) {
- jQuery.atmosphere
- .log(
- logLevel,
- [ "Websocket failed. Downgrading to Comet and resending "
- + data ]);
- // Websocket is not supported, reconnect using the fallback transport.
- request.transport = request.fallbackTransport;
- jQuery.atmosphere.request = request;
- jQuery.atmosphere.executeRequest();
+ ws.onclose = function(message) {
+ }
+ ws.close();
+ }
+ };
- // Repost the data.
- jQuery.atmosphere.request.suspend = false;
- jQuery.atmosphere.request.method = 'POST';
- jQuery.atmosphere.request.data = data;
- jQuery.atmosphere.response.state = 'messageReceived';
- jQuery.atmosphere.response.transport = request.fallbackTransport;
- jQuery.atmosphere.publish(url, null,
- jQuery.atmosphere.request);
+ websocket.onopen = function(message)
+ {
+ success = true;
+ jQuery.atmosphere.response.state = 'openning';
+ jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
+ };
- ws.onclose = function(message) {
- }
- ws.close();
- }
- };
+ websocket.onmessage = function(message)
+ {
+ var data = message.data;
+ if (data.indexOf("parent.callback") != -1) {
+ var start = data.indexOf("('") + 2;
+ var end = data.indexOf("')");
+ jQuery.atmosphere.response.responseBody = data.substring(start, end);
+ }
+ else {
+ jQuery.atmosphere.response.responseBody = data;
+ }
+ jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
+ };
- websocket.onopen = function(message) {
- jQuery.atmosphere.response.state = 'openning';
- jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
- };
+ websocket.onerror = function(message)
+ {
+ jQuery.atmosphere.response.state = 'error';
+ jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
+ };
- websocket.onmessage = function(message) {
- var data = message.data;
- if (data.indexOf("parent.callback") != -1) {
- var start = data.indexOf("('") + 2;
- var end = data.indexOf("')");
- jQuery.atmosphere.response.responseBody = data.substring(
- start, end);
- } else {
- jQuery.atmosphere.response.responseBody = data;
- }
- jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
- };
+ websocket.onclose = function(message)
+ {
+ if (!success) {
+ var data = jQuery.atmosphere.request.data;
+ jQuery.atmosphere.log(logLevel, ["Websocket failed. Downgrading to Comet and resending " + data]);
+ // Websocket is not supported, reconnect using the fallback transport.
+ request.transport = request.fallbackTransport;
+ jQuery.atmosphere.request = request;
+ jQuery.atmosphere.executeRequest();
+ } else {
+ jQuery.atmosphere.response.state = 'closed';
+ jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
+ }
+ };
+ }
+ ,
- websocket.onerror = function(message) {
- jQuery.atmosphere.response.state = 'error';
- jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
- };
+ addCallback: function(func)
+ {
+ if (jQuery.inArray(func, jQuery.atmosphere.callbacks) == -1) {
+ jQuery.atmosphere.callbacks.push(func);
+ }
+ }
+ ,
- websocket.onclose = function(message) {
- jQuery.atmosphere.response.state = 'closed';
- jQuery.atmosphere.invokeCallback(jQuery.atmosphere.response);
- };
- },
+ removeCallback: function(func)
+ {
+ if (jQuery.inArray(func, jQuery.atmosphere.callbacks) != -1) {
+ jQuery.atmosphere.callbacks.splice(index);
+ }
+ }
+ ,
- addCallback : function(func) {
- if (jQuery.inArray(func, jQuery.atmosphere.callbacks) == -1) {
- jQuery.atmosphere.callbacks.push(func);
- }
- },
+ invokeCallback: function(response)
+ {
+ var call = function (index, func)
+ {
+ func(response);
+ };
- removeCallback : function(func) {
- if (jQuery.inArray(func, jQuery.atmosphere.callbacks) != -1) {
- jQuery.atmosphere.callbacks.splice(index);
- }
- },
+ jQuery.atmosphere.log(logLevel, ["Invoking " + jQuery.atmosphere.callbacks.length + " callbacks"]);
+ if (jQuery.atmosphere.callbacks.length > 0) {
+ jQuery.each(jQuery.atmosphere.callbacks, call);
+ }
+ }
+ ,
- invokeCallback : function(response) {
- var call = function(index, func) {
- func(response);
- };
+ publish: function(url, callback, request)
+ {
+ jQuery.atmosphere.request = jQuery.extend({
+ connected: false,
+ timeout: 60000,
+ method: 'POST',
+ headers: {},
+ cache: true,
+ async: true,
+ ifModified: false,
+ callback: null,
+ dataType: '',
+ url : url,
+ data : '',
+ suspend : false,
+ maxRequest : 60,
+ logLevel : 'info',
+ requestCount : 0,
+ transport: 'polling'
+ }, request);
- jQuery.atmosphere.log(logLevel, [ "Invoking "
- + jQuery.atmosphere.callbacks.length + " callbacks" ]);
- if (jQuery.atmosphere.callbacks.length > 0) {
- jQuery.each(jQuery.atmosphere.callbacks, call);
- }
- },
+ if (callback != null) {
+ jQuery.atmosphere.addCallback(callback);
+ }
+ jQuery.atmosphere.request.transport = 'polling';
+ if (jQuery.atmosphere.request.transport != 'websocket') {
+ jQuery.atmosphere.executeRequest();
+ } else if (jQuery.atmosphere.request.transport == 'websocket') {
+ if (!window.WebSocket) {
+ alert("WebSocket not supported by this browser");
+ }
+ else {
+ jQuery.atmosphere.executeWebSocket();
+ }
+ }
+ }
+ ,
- publish : function(url, callback, request) {
- jQuery.atmosphere.request = jQuery.extend({
- connected : false,
- timeout : 60000,
- method : 'POST',
- headers : {},
- cache : true,
- async : true,
- ifModified : false,
- callback : null,
- dataType : '',
- url : url,
- data : '',
- suspend : false,
- maxRequest : 60,
- logLevel : 'info',
- requestCount : 0,
- transport : 'polling'
- }, request);
+ unload: function (arg) {
+ if (window.addEventListener) {
+ document.addEventListener('unload', arg, false);
+ window.addEventListener('unload', arg, false);
+ } else { // IE
+ document.attachEvent('onunload', arg);
+ window.attachEvent('onunload', arg);
+ }
+ }
+ ,
- if (callback != null) {
- jQuery.atmosphere.addCallback(callback);
- }
- jQuery.atmosphere.request.transport = 'polling';
- if (jQuery.atmosphere.request.transport != 'websocket') {
- jQuery.atmosphere.executeRequest();
- } else if (jQuery.atmosphere.request.transport == 'websocket') {
- if (!window.WebSocket) {
- alert("WebSocket not supported by this browser");
- } else {
- jQuery.atmosphere.executeWebSocket();
- }
- }
- },
+ kill_load_bar : function() {
+ if (jQuery.atmosphere.killHiddenIFrame == null) {
+ jQuery.atmosphere.killHiddenIFrame = document.createElement('iframe');
+ var ifr = jQuery.atmosphere.killHiddenIFrame;
+ ifr.style.display = 'block';
+ ifr.style.width = '0';
+ ifr.style.height = '0';
+ ifr.style.border = '0';
+ ifr.style.margin = '0';
+ ifr.style.padding = '0';
+ ifr.style.overflow = 'hidden';
+ ifr.style.visibility = 'hidden';
+ }
+ document.body.appendChild(ifr);
+ ifr.src = 'about:blank';
+ document.body.removeChild(ifr);
+ }
+ ,
- unload : function(arg) {
- if (window.addEventListener) {
- document.addEventListener('unload', arg, false);
- window.addEventListener('unload', arg, false);
- } else { // IE
- document.attachEvent('onunload', arg);
- window.attachEvent('onunload', arg);
- }
- },
+ log: function (level, args)
+ {
+ if (window.console)
+ {
+ var logger = window.console[level];
+ if (typeof logger == 'function')
+ {
+ logger.apply(window.console, args);
+ }
+ }
+ }
+ ,
- kill_load_bar : function() {
- if (jQuery.atmosphere.killHiddenIFrame == null) {
- jQuery.atmosphere.killHiddenIFrame = document
- .createElement('iframe');
- var ifr = jQuery.atmosphere.killHiddenIFrame;
- ifr.style.display = 'block';
- ifr.style.width = '0';
- ifr.style.height = '0';
- ifr.style.border = '0';
- ifr.style.margin = '0';
- ifr.style.padding = '0';
- ifr.style.overflow = 'hidden';
- ifr.style.visibility = 'hidden';
- }
- document.body.appendChild(ifr);
- ifr.src = 'about:blank';
- document.body.removeChild(ifr);
- },
+ warn: function()
+ {
+ log('warn', arguments);
+ }
+ ,
- log : function(level, args) {
- if (window.console) {
- var logger = window.console[level];
- if (typeof logger == 'function') {
- logger.apply(window.console, args);
- }
- }
- },
- warn : function() {
- log('warn', arguments);
- },
+ info :function()
+ {
+ if (logLevel != 'warn')
+ {
+ log('info', arguments);
+ }
+ }
+ ,
- info : function() {
- if (logLevel != 'warn') {
- log('info', arguments);
- }
- },
+ debug: function()
+ {
+ if (logLevel == 'debug')
+ {
+ log('debug', arguments);
+ }
+ }
+ }
- debug : function() {
- if (logLevel == 'debug') {
- log('debug', arguments);
- }
- }
- }
-
-}();
+}
+ ();
\ No newline at end of file
15 years, 2 months
JBoss Rich Faces SVN: r21565 - trunk/dist.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2011-02-09 09:36:33 -0500 (Wed, 09 Feb 2011)
New Revision: 21565
Modified:
trunk/dist/readme-ui.txt
Log:
just changed M5 to M6
Modified: trunk/dist/readme-ui.txt
===================================================================
--- trunk/dist/readme-ui.txt 2011-02-09 14:13:19 UTC (rev 21564)
+++ trunk/dist/readme-ui.txt 2011-02-09 14:36:33 UTC (rev 21565)
@@ -1,6 +1,6 @@
RichFaces - Ajax enabled JSF 2.0 component library
=========================================================
-Version 4.0.0.M5
+Version 4.0.0.M6
This software is distributed under the terms of the FSF Lesser Gnu Public License (see lgpl.txt).
15 years, 2 months
JBoss Rich Faces SVN: r21564 - trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2011-02-09 09:13:19 -0500 (Wed, 09 Feb 2011)
New Revision: 21564
Modified:
trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxPollRenderer.java
Log:
RF-10432: duplicated begin handler is removed
Modified: trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxPollRenderer.java
===================================================================
--- trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxPollRenderer.java 2011-02-09 14:11:59 UTC (rev 21563)
+++ trunk/ui/core/ui/src/main/java/org/richfaces/renderkit/html/AjaxPollRenderer.java 2011-02-09 14:13:19 UTC (rev 21564)
@@ -21,17 +21,6 @@
package org.richfaces.renderkit.html;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.faces.application.ResourceDependency;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.PartialViewContext;
-import javax.faces.context.ResponseWriter;
-import javax.faces.event.ActionEvent;
-
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSFunctionDefinition;
import org.ajax4jsf.javascript.JSReference;
@@ -42,6 +31,16 @@
import org.richfaces.renderkit.RendererBase;
import org.richfaces.renderkit.util.HandlersChain;
+import javax.faces.application.ResourceDependency;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.PartialViewContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.event.ActionEvent;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* @author shura
*/
@@ -96,8 +95,6 @@
HandlersChain handlersChain = new HandlersChain(context, poll);
handlersChain.addInlineHandlerFromAttribute(AbstractPoll.ON_TIMER);
handlersChain.addBehaviors(AbstractPoll.TIMER);
- handlersChain.addInlineHandlerFromAttribute(AbstractPoll.ON_BEGIN);
- handlersChain.addBehaviors(AbstractPoll.BEGIN);
handlersChain.addAjaxSubmitFunction();
String handler = handlersChain.toScript();
15 years, 2 months