Author: Alex.Kolonitsky
Date: 2009-02-13 08:04:09 -0500 (Fri, 13 Feb 2009)
New Revision: 12650
Modified:
trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java
trunk/samples/calendar-sample/src/test/java/org/richfaces/BeanTest.java
trunk/samples/tooltip-sample/src/main/webapp/pages/index.jsp
trunk/samples/tooltip-sample/src/test/java/org/richfaces/BeanTest.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxSupportTest.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java
trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java
trunk/ui/calendar/src/test/java/org/richfaces/component/CurrentDateEventTest.java
trunk/ui/calendar/src/test/java/org/richfaces/renderkit/html/iconimages/CalendarIconTest.java
trunk/ui/core/src/main/java/org/ajax4jsf/component/UIAjaxRegion.java
trunk/ui/toolBar/src/main/java/org/richfaces/renderkit/html/ToolBarGroupRenderer.java
trunk/ui/tooltip/src/main/java/org/richfaces/component/UIToolTip.java
trunk/ui/tooltip/src/main/java/org/richfaces/renderkit/html/ToolTipRenderer.java
trunk/ui/tooltip/src/main/java/org/richfaces/taglib/ToolTipTagHandlerBase.java
trunk/ui/tooltip/src/test/java/org/richfaces/component/TooltipComponentTest.java
Log:
Calendar: application fails if non-default locale attribute was defined for component
https://jira.jboss.org/jira/browse/RF-5330
Unnecessary ajax for tooltip on client mode
https://jira.jboss.org/jira/browse/RF-6139
Modified:
trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java
===================================================================
---
trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -22,7 +22,6 @@
package org.richfaces;
import java.text.DateFormat;
-import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
@@ -57,16 +56,13 @@
protected CalendarDataModelItem createDataModelItem(Date date) {
CalendarDataModelItemImpl item = new CalendarDataModelItemImpl();
- Map data = new HashMap();
+ Map<String, String> data = new HashMap<String, String>();
DateFormat enFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM,
Locale.ENGLISH);
DateFormat frFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.FRENCH);
DateFormat deFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.GERMAN);
data.put("enLabel", enFormatter.format(date));
data.put("frLabel", frFormatter.format(date));
data.put("deLabel", deFormatter.format(date));
- /*Calendar c = Calendar.getInstance();
- c.setTime(date);
- item.setDay(c.get(Calendar.DAY_OF_MONTH));*/
if (new Random().nextInt(10) > 5) {
item.setEnabled(true);
Modified: trunk/samples/calendar-sample/src/test/java/org/richfaces/BeanTest.java
===================================================================
--- trunk/samples/calendar-sample/src/test/java/org/richfaces/BeanTest.java 2009-02-13
11:53:36 UTC (rev 12649)
+++ trunk/samples/calendar-sample/src/test/java/org/richfaces/BeanTest.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -21,23 +21,16 @@
package org.richfaces;
-import junit.framework.Test;
import junit.framework.TestCase;
-import junit.framework.TestSuite;
-/**
-*/
-public class BeanTest
- extends TestCase
-{
+public class BeanTest extends TestCase {
+
/**
* Create the test case
- *
* @param testName name of the test case
*/
- public BeanTest( String testName )
- {
- super( testName );
+ public BeanTest (String testName) {
+ super (testName);
}
public void testStub() throws Exception {
Modified: trunk/samples/tooltip-sample/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/samples/tooltip-sample/src/main/webapp/pages/index.jsp 2009-02-13 11:53:36 UTC
(rev 12649)
+++ trunk/samples/tooltip-sample/src/main/webapp/pages/index.jsp 2009-02-13 13:04:09 UTC
(rev 12650)
@@ -40,23 +40,29 @@
<h:commandLink action="#{skinBean.change}" value="set skin"
/>
<f:verbatim>
<br/><br/>
- <div style="position:relative;top:100px;left:200px;">
- </f:verbatim>
-
-<h:panelGroup layout="block" id="asdasdasda"
style="width:50px; height:50px;background-color:red;">
-<rich:toolTip showEvent="onclick" direction="bottom-left"
styleClass="tooltip" layout="block">
-<f:facet name="defaultContent">
-<strong>Wait...</strong>
-</f:facet>
-<span style="white-space:nowrap">This tool-tip content was
<strong>rendered on server</strong><br/></span>
-<h:panelGrid columns="2">
-<h:outputText style="white-space:nowrap" value="tooltips
requested:" />
-<h:outputText value="Test Test Test" styleClass="tooltipData"
/>
-</h:panelGrid>
-</rich:toolTip>
-</h:panelGroup>
-
- <h:commandButton value="Tooltip with followMouse mode"
id="btn">
+ <div style="position:relative; top:100px; left:200px;">
+ </f:verbatim>
+
+ <h:panelGroup layout="block" id="asdasdasda"
+ style="width:50px; height:50px;background-color:red;">
+ <rich:toolTip showEvent="onclick"
direction="bottom-left"
+ styleClass="tooltip" layout="block">
+ <f:facet name="defaultContent">
+ <strong>Wait...</strong>
+ </f:facet>
+ <span style="white-space: nowrap">This tool-tip
+ content was <strong>rendered on server</strong><br
/>
+ </span>
+ <h:panelGrid columns="2">
+ <h:outputText style="white-space:nowrap"
+ value="tooltips requested:" />
+ <h:outputText value="Test Test Test"
+ styleClass="tooltipData" />
+ </h:panelGrid>
+ </rich:toolTip>
+ </h:panelGroup>
+
+ <h:commandButton value="Tooltip with followMouse mode"
id="btn">
<rich:toolTip id="tt" followMouse="true"
direction="top-right" mode="ajax"
value="#{bean.toolTipContent}" horizontalOffset="5"
verticalOffset="5" layout="block">
<f:facet name="defaultContent"><f:verbatim>DEFAULT
CONTENT</f:verbatim>
</f:facet>
Modified: trunk/samples/tooltip-sample/src/test/java/org/richfaces/BeanTest.java
===================================================================
--- trunk/samples/tooltip-sample/src/test/java/org/richfaces/BeanTest.java 2009-02-13
11:53:36 UTC (rev 12649)
+++ trunk/samples/tooltip-sample/src/test/java/org/richfaces/BeanTest.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -21,26 +21,20 @@
package org.richfaces;
-import junit.framework.Test;
import junit.framework.TestCase;
-import junit.framework.TestSuite;
-/**
-*/
-public class BeanTest
- extends TestCase
-{
+public class BeanTest extends TestCase {
/**
* Create the test case
- *
- * @param testName name of the test case
+ *
+ * @param testName
+ * name of the test case
*/
- public BeanTest( String testName )
- {
- super( testName );
+ public BeanTest(String testName) {
+ super(testName);
}
-
+
public void testStub() throws Exception {
-
+
}
}
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxSupportTest.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxSupportTest.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxSupportTest.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -26,14 +26,11 @@
import org.ajax4jsf.bean.A4JSupport;
import org.ajax4jsf.bean.A4JSupport.Messages;
import org.ajax4jsf.template.Template;
-import org.bouncycastle.asn1.pkcs.KeyDerivationFunc;
import org.richfaces.SeleniumTestBase;
import org.richfaces.testng.util.CommonUtils;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.thoughtworks.selenium.SeleniumException;
-
/**
* @author Andrey Markavstov
*
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -517,18 +517,17 @@
initIds(getParentId());
// Failed due to bug
https://jira.jboss.org/jira/browse/RF-5330
-
Assert.fail("https://jira.jboss.org/jira/browse/RF-5330");
-// setPopup(true);
-// String changeLocaleButtonId = getParentId() + CONTROLS_FORM_ID +
"testLocale";
-// clickCommandAndWait(changeLocaleButtonId);
-//
-// showPopup();
-// showTimeSelectionWindow();
-//
-// testInternatialization("_ru");
-// testWeekDays();
+ setPopup(true);
+ String changeLocaleButtonId = getParentId() + CONTROLS_FORM_ID +
"testLocale";
+ clickCommandAndWait(changeLocaleButtonId);
+ showPopup();
+ showTimeSelectionWindow();
+
+ testInternatialization("_ru");
+ testWeekDays();
+
}
@Test
@@ -1863,11 +1862,11 @@
clickById(popupButtonId);
}
- private void showPopupAndWait() {
+/* private void showPopupAndWait() {
writeStatus("Show popup");
clickById(popupButtonId);
waiteForCondition("$('" + calendarId + "').style.display
!= 'none'", 1000);
- }
+ }*/
/**
* Test an icon.
Modified: trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java
===================================================================
--- trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java 2009-02-13
11:53:36 UTC (rev 12649)
+++ trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -92,7 +92,7 @@
public static final String COMPONENT_TYPE = "org.richfaces.Calendar";
- private static final String COMPONENT_FAMILY = "org.richfaces.Calendar";
+ public static final String COMPONENT_FAMILY = "org.richfaces.Calendar";
/**
* Default value of "defaultTime" attribute
Modified:
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java
===================================================================
---
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -45,7 +45,6 @@
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlScript;
import com.gargoylesoftware.htmlunit.html.HtmlSpan;
-import com.sun.org.apache.bcel.internal.generic.NEW;
/**
* @author Nick Belaevski - mailto:nbelaevski@exadel.com created 08.06.2007
@@ -237,24 +236,18 @@
assertEquals("display: none",
htmlCalendar1Span.getAttributeValue(HTML.style_ATTRIBUTE));
try {
- HtmlInput htmlCalendarInput1 = (HtmlInput) page
- .getHtmlElementById(calendar1.getClientId(facesContext)
- + "InputDate");
+ page.getHtmlElementById(calendar1.getClientId(facesContext)+ "InputDate");
} catch (ElementNotFoundException e) {
assertNotNull(e);
}
try {
- HtmlButton htmlCalendarButton1 = (HtmlButton) page
- .getHtmlElementById(calendar1.getClientId(facesContext)
- + "PopupButton");
+ page.getHtmlElementById(calendar1.getClientId(facesContext)+
"PopupButton");
} catch (ElementNotFoundException e) {
assertNotNull(e);
}
try {
- HtmlSpan htmlCalendarSpan1 = (HtmlSpan) page
- .getHtmlElementById(calendar1.getClientId(facesContext)
- + "Popup");
+ page.getHtmlElementById(calendar1.getClientId(facesContext)+ "Popup");
} catch (ElementNotFoundException e) {
assertNotNull(e);
}
@@ -277,7 +270,7 @@
HtmlPage page = renderView();
assertNotNull(page);
- List links =
page.getDocumentHtmlElement().getHtmlElementsByTagName(HTML.LINK_ELEMENT);
+ List<?> links =
page.getDocumentHtmlElement().getHtmlElementsByTagName(HTML.LINK_ELEMENT);
assertEquals(1, links.size());
HtmlElement link = (HtmlElement) links.get(0);
assertTrue(link.getAttributeValue(HTML.HREF_ATTR).contains("css/calendar.xcss"));
@@ -287,9 +280,9 @@
HtmlPage page = renderView();
assertNotNull(page);
- List<HtmlScript> scripts =
page.getDocumentHtmlElement().getHtmlElementsByTagName(HTML.SCRIPT_ELEM);
- for (Iterator<HtmlScript> it = scripts.iterator(); it.hasNext();) {
- HtmlScript item = it.next();
+ List<?> scripts =
page.getDocumentHtmlElement().getHtmlElementsByTagName(HTML.SCRIPT_ELEM);
+ for (Iterator<?> it = scripts.iterator(); it.hasNext();) {
+ HtmlScript item = (HtmlScript) it.next();
String srcAttr = item.getSrcAttribute();
if (item.getFirstDomChild() != null) {
String scriptBodyString = item.getFirstDomChild().toString();
Modified:
trunk/ui/calendar/src/test/java/org/richfaces/component/CurrentDateEventTest.java
===================================================================
---
trunk/ui/calendar/src/test/java/org/richfaces/component/CurrentDateEventTest.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/ui/calendar/src/test/java/org/richfaces/component/CurrentDateEventTest.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -53,15 +53,16 @@
*/
public void setUp() throws Exception {
super.setUp();
-
- calendar = (UICalendar) application.createComponent(UICalendar.COMPONENT_TYPE);;
- event1 = new CurrentDateChangeEvent (calendar, "11/2001");
+
+ calendar = (UICalendar) application
+ .createComponent(UICalendar.COMPONENT_TYPE);
+ event1 = new CurrentDateChangeEvent(calendar, "11/2001");
cal = Calendar.getInstance();
cal.set(2001, 10, 10);
- event2 = new CurrentDateChangeEvent (calendar, cal.getTime());
- event4 = new CurrentDateChangeEvent (calendar, "");
+ event2 = new CurrentDateChangeEvent(calendar, cal.getTime());
+ event4 = new CurrentDateChangeEvent(calendar, "");
event3 = new AjaxEvent(calendar);
- }
+ }
/* (non-Javadoc)
* @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
Modified:
trunk/ui/calendar/src/test/java/org/richfaces/renderkit/html/iconimages/CalendarIconTest.java
===================================================================
---
trunk/ui/calendar/src/test/java/org/richfaces/renderkit/html/iconimages/CalendarIconTest.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/ui/calendar/src/test/java/org/richfaces/renderkit/html/iconimages/CalendarIconTest.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -23,7 +23,6 @@
import java.awt.Color;
import java.awt.image.BufferedImage;
-import org.ajax4jsf.resource.ResourceContext;
import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
import org.ajax4jsf.util.HtmlColor;
import org.richfaces.skin.Skin;
@@ -33,7 +32,7 @@
* @author Anton Belevich
*
*/
-public class CalendarIconTest extends AbstractAjax4JsfTestCase{
+public class CalendarIconTest extends AbstractAjax4JsfTestCase {
public CalendarIconTest(String name) {
super(name);
Modified: trunk/ui/core/src/main/java/org/ajax4jsf/component/UIAjaxRegion.java
===================================================================
--- trunk/ui/core/src/main/java/org/ajax4jsf/component/UIAjaxRegion.java 2009-02-13
11:53:36 UTC (rev 12649)
+++ trunk/ui/core/src/main/java/org/ajax4jsf/component/UIAjaxRegion.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -26,18 +26,14 @@
import java.util.Set;
import javax.el.MethodExpression;
-import javax.faces.FacesException;
import javax.faces.component.ContextCallback;
import javax.faces.component.UIComponent;
import javax.faces.component.UIPanel;
-import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
import org.ajax4jsf.context.AjaxContext;
-import org.ajax4jsf.context.AjaxContextImpl;
-import org.ajax4jsf.context.InvokerCallback;
import org.ajax4jsf.event.AjaxListener;
import org.ajax4jsf.renderkit.AjaxContainerRenderer;
Modified:
trunk/ui/toolBar/src/main/java/org/richfaces/renderkit/html/ToolBarGroupRenderer.java
===================================================================
---
trunk/ui/toolBar/src/main/java/org/richfaces/renderkit/html/ToolBarGroupRenderer.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/ui/toolBar/src/main/java/org/richfaces/renderkit/html/ToolBarGroupRenderer.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -33,7 +33,7 @@
public class ToolBarGroupRenderer extends ToolBarRendererBase {
- protected Class<? extends javax.faces.component.UIComponent>
getComponentClass() {
+ protected Class<? extends UIComponent> getComponentClass() {
return UIToolBarGroup.class;
}
Modified: trunk/ui/tooltip/src/main/java/org/richfaces/component/UIToolTip.java
===================================================================
--- trunk/ui/tooltip/src/main/java/org/richfaces/component/UIToolTip.java 2009-02-13
11:53:36 UTC (rev 12649)
+++ trunk/ui/tooltip/src/main/java/org/richfaces/component/UIToolTip.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -37,12 +37,9 @@
public abstract class UIToolTip extends UICommand implements
org.ajax4jsf.component.AjaxChildrenEncoder{
public static final String COMPONENT_TYPE =
"org.richfaces.component.ToolTip";
+
public static final String CONTENT_FACET_NAME = "defaultContent";
-// public abstract String getValue();
-
-// public abstract void setValue(String value);
-
public abstract String getLayout();
public abstract void setLayout(String layout);
@@ -171,8 +168,8 @@
return _childrenRenderer;
}
- public void encodeAjaxChild(FacesContext context, String path, Set ids,
- Set renderedAreas) throws IOException {
+ public void encodeAjaxChild(FacesContext context, String path, Set<String> ids,
Set<String> renderedAreas)
+ throws IOException {
if(ids.contains(this.getClientId(context) + "content")){
AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
Modified:
trunk/ui/tooltip/src/main/java/org/richfaces/renderkit/html/ToolTipRenderer.java
===================================================================
---
trunk/ui/tooltip/src/main/java/org/richfaces/renderkit/html/ToolTipRenderer.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/ui/tooltip/src/main/java/org/richfaces/renderkit/html/ToolTipRenderer.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -19,11 +19,13 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.richfaces.renderkit.html;
-
+
import java.io.IOException;
import java.util.HashMap;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.faces.FacesException;
import javax.faces.component.UIComponent;
@@ -44,381 +46,368 @@
import org.richfaces.component.UIToolTip;
import org.richfaces.skin.Skin;
-//import com.gargoylesoftware.htmlunit.protocol.javascript.JavaScriptURLConnection;
-//import com.sun.el.lang.FunctionMapperImpl.Function;
+public class ToolTipRenderer extends AjaxComponentRendererBase {
+
+ private static final String AJAX_MODE = "ajax";
-public class ToolTipRenderer extends AjaxComponentRendererBase{
-
- //
- // Declarations
- //
- private final InternetResource[] styles = {
- getResource("/org/richfaces/renderkit/html/css/tooltip.xcss")
- };
-
-private InternetResource[] stylesAll = null;
-
-protected InternetResource[] getStyles() {
- synchronized (this) {
- if (stylesAll == null) {
- InternetResource[] rsrcs = super.getStyles();
- boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
- boolean ignoreThis = styles == null || styles.length == 0;
-
- if (ignoreSuper) {
- if (ignoreThis) {
- stylesAll = new InternetResource[0];
- } else {
- stylesAll = styles;
- }
- } else {
- if (ignoreThis) {
- stylesAll = rsrcs;
- } else {
- java.util.Set rsrcsSet = new java.util.LinkedHashSet();
-
- for (int i = 0; i < rsrcs.length; i++ ) {
- rsrcsSet.add(rsrcs[i]);
- }
-
- for (int i = 0; i < styles.length; i++ ) {
- rsrcsSet.add(styles[i]);
- }
-
- stylesAll = (InternetResource[]) rsrcsSet.toArray(new
InternetResource[rsrcsSet.size()]);
- }
- }
- }
- }
-
- return stylesAll;
-}
- private final InternetResource[] scripts = {
- new org.ajax4jsf.javascript.PrototypeScript(),
- new org.ajax4jsf.javascript.AjaxScript(),
- getResource("/org/richfaces/renderkit/html/scripts/jquery/jquery.js"),
- getResource("/org/richfaces/renderkit/html/scripts/utils.js"),
- getResource("/org/richfaces/renderkit/html/scripts/tooltip.js")
- };
-
-private InternetResource[] scriptsAll = null;
-
-protected InternetResource[] getScripts() {
- synchronized (this) {
- if (scriptsAll == null) {
- InternetResource[] rsrcs = super.getScripts();
- boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
- boolean ignoreThis = scripts == null || scripts.length == 0;
-
- if (ignoreSuper) {
- if (ignoreThis) {
- scriptsAll = new InternetResource[0];
- } else {
- scriptsAll = scripts;
- }
- } else {
- if (ignoreThis) {
- scriptsAll = rsrcs;
- } else {
- java.util.Set rsrcsSet = new java.util.LinkedHashSet();
-
- for (int i = 0; i < rsrcs.length; i++ ) {
- rsrcsSet.add(rsrcs[i]);
- }
-
- for (int i = 0; i < scripts.length; i++ ) {
- rsrcsSet.add(scripts[i]);
- }
-
- scriptsAll = (InternetResource[]) rsrcsSet.toArray(new
InternetResource[rsrcsSet.size()]);
- }
- }
- }
- }
-
- return scriptsAll;
-}
-
- protected Class getComponentClass() {
- return org.richfaces.component.UIToolTip.class;
- }
-
- public String getBgColor(FacesContext context, UIComponent component){
- Skin skin = getSkin(context);
- String color = (String) skin.getParameter(context,"headerBackgroundColor");
- return color;
- }
-
- public String getColor(FacesContext context, UIComponent component){
- Skin skin = getSkin(context);
- String color = (String) skin.getParameter(context,"headerTextColor");
- return color;
- }
-
-
- public Map<String, Object> buildEventOptions(FacesContext context, UIComponent
component, String targetId){
- Map<String, Object> eventOptions =
AjaxRendererUtils.buildEventOptions(context, component);
+ private final InternetResource[] styles = {
getResource("/org/richfaces/renderkit/html/css/tooltip.xcss") };
+
+ private InternetResource[] stylesAll = null;
+
+ protected InternetResource[] getStyles() {
+ synchronized (this) {
+ if (stylesAll == null) {
+ InternetResource[] rsrcs = super.getStyles();
+ boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
+ boolean ignoreThis = styles == null || styles.length == 0;
+
+ if (ignoreSuper) {
+ if (ignoreThis) {
+ stylesAll = new InternetResource[0];
+ } else {
+ stylesAll = styles;
+ }
+ } else {
+ if (ignoreThis) {
+ stylesAll = rsrcs;
+ } else {
+ Set<InternetResource> rsrcsSet = new
LinkedHashSet<InternetResource>();
+
+ for (int i = 0; i < rsrcs.length; i++) {
+ rsrcsSet.add(rsrcs[i]);
+ }
+
+ for (int i = 0; i < styles.length; i++) {
+ rsrcsSet.add(styles[i]);
+ }
+
+ stylesAll = rsrcsSet.toArray(new
InternetResource[rsrcsSet.size()]);
+ }
+ }
+ }
+ }
+
+ return stylesAll;
+ }
+
+ private final InternetResource[] scripts = {
+ new org.ajax4jsf.javascript.PrototypeScript(),
+ new org.ajax4jsf.javascript.AjaxScript(),
+
getResource("/org/richfaces/renderkit/html/scripts/jquery/jquery.js"),
+ getResource("/org/richfaces/renderkit/html/scripts/utils.js"),
+ getResource("/org/richfaces/renderkit/html/scripts/tooltip.js") };
+
+ private InternetResource[] scriptsAll = null;
+
+ protected InternetResource[] getScripts() {
+ synchronized (this) {
+ if (scriptsAll == null) {
+ InternetResource[] rsrcs = super.getScripts();
+ boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
+ boolean ignoreThis = scripts == null || scripts.length == 0;
+
+ if (ignoreSuper) {
+ if (ignoreThis) {
+ scriptsAll = new InternetResource[0];
+ } else {
+ scriptsAll = scripts;
+ }
+ } else {
+ if (ignoreThis) {
+ scriptsAll = rsrcs;
+ } else {
+ Set<InternetResource> rsrcsSet = new
LinkedHashSet<InternetResource>();
+
+ for (int i = 0; i < rsrcs.length; i++) {
+ rsrcsSet.add(rsrcs[i]);
+ }
+
+ for (int i = 0; i < scripts.length; i++) {
+ rsrcsSet.add(scripts[i]);
+ }
+
+ scriptsAll = rsrcsSet.toArray(new
InternetResource[rsrcsSet.size()]);
+ }
+ }
+ }
+ }
+
+ return scriptsAll;
+ }
+
+ protected Class<? extends UIComponent> getComponentClass() {
+ return org.richfaces.component.UIToolTip.class;
+ }
+
+ public String getBgColor(FacesContext context, UIComponent component) {
+ Skin skin = getSkin(context);
+ return String.valueOf(skin.getParameter(context,
"headerBackgroundColor"));
+ }
+
+ public String getColor(FacesContext context, UIComponent component) {
+ Skin skin = getSkin(context);
+ return String.valueOf(skin.getParameter(context, "headerTextColor"));
+ }
+
+ public Map<String, Object> buildEventOptions(FacesContext context,
+ UIComponent component, String targetId) {
+ Map<String, Object> eventOptions = AjaxRendererUtils.buildEventOptions(
+ context, component);
String jsVarName = "_toolTip";
- //after element is subsituted in DOM tree, we have to re-create
- //it's JS-reference, cause old one is already invalid
-
+ // after element is subsituted in DOM tree, we have to re-create
+ // it's JS-reference, cause old one is already invalid
+
String clientId = component.getClientId(context);
- String oncompleteTooltip = ";" + "{" +
- "var " + jsVarName + " = $('" + clientId +
"').component;" +
- jsVarName + ".toolTipContent = $('" + clientId +
"content');" +
- jsVarName + ".displayDiv();" +
- "}";
+ String oncompleteTooltip = ";" + "{" + "var " +
jsVarName + " = $('"
+ + clientId + "').component;" + jsVarName
+ + ".toolTipContent = $('" + clientId +
"content');" + jsVarName
+ + ".displayDiv();" + "}";
- // before element will be substituted in DOM tree, we need to hide toolTipe to
avoid blinking
- String fireBeforeUpdateDOM = ";" + "{ var " + jsVarName +
" = $('" + clientId + "').component;" + jsVarName +
".toolTip.style.display = 'none'; }";
+ // before element will be substituted in DOM tree, we need to hide
+ // toolTipe to avoid blinking
+ String fireBeforeUpdateDOM = ";" + "{ var " + jsVarName +
" = $('"
+ + clientId + "').component;" + jsVarName
+ + ".toolTip.style.display = 'none'; }";
-
- //enable ajaxSingle mode, i.e. we do not need to submit all form controls to get
tooltip content
+ // enable ajaxSingle mode, i.e. we do not need to submit all form
+ // controls to get tooltip content
eventOptions.put("control", JSReference.THIS);
-
- if(eventOptions.containsKey("oncomplete")){
- JSFunctionDefinition onComplete =
(JSFunctionDefinition)eventOptions.get("oncomplete");
- onComplete.addToBody(oncompleteTooltip);
- eventOptions.put("oncomplete", onComplete);
+
+ if (eventOptions.containsKey("oncomplete")) {
+ JSFunctionDefinition onComplete =
+ (JSFunctionDefinition) eventOptions.get("oncomplete");
+ onComplete.addToBody(oncompleteTooltip);
+ eventOptions.put("oncomplete", onComplete);
} else {
- JSFunctionDefinition onComplete = new JSFunctionDefinition();
- onComplete.addParameter("request");
- onComplete.addParameter("showEvent");
- onComplete.addParameter("data");
- onComplete.addToBody(oncompleteTooltip);
- eventOptions.put("oncomplete", onComplete);
+ JSFunctionDefinition onComplete = new JSFunctionDefinition();
+ onComplete.addParameter("request");
+ onComplete.addParameter("showEvent");
+ onComplete.addParameter("data");
+ onComplete.addToBody(oncompleteTooltip);
+ eventOptions.put("oncomplete", onComplete);
}
+
+ if (eventOptions.containsKey(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME)) {
+ JSFunctionDefinition beforeUpdate = (JSFunctionDefinition) eventOptions
+ .get(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME);
+ beforeUpdate.addToBody(fireBeforeUpdateDOM);
+ eventOptions.put(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME,
beforeUpdate);
+ } else {
+ JSFunctionDefinition beforeUpdate = new JSFunctionDefinition();
+ beforeUpdate.addParameter("request");
+ beforeUpdate.addParameter("showEvent");
+ beforeUpdate.addParameter("data");
+ beforeUpdate.addToBody(fireBeforeUpdateDOM);
+ eventOptions.put(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME,
beforeUpdate);
+ }
+
+ return eventOptions;
+ }
+
+ public void insertScript(FacesContext context, UIComponent component)
+ throws IOException {
+
+ StringBuffer ret = new StringBuffer();
+ ret.append("<script ");
+ ret.append("type=\"text/javascript\" ");
+ ret.append("id
=\"script").append(component.getClientId(context)).append("\">\n");
+ ret.append(constructJSVariable(context, component)).append(";\n\n");
+ ret.append("</script>");
- if(eventOptions.containsKey(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME)){
- JSFunctionDefinition beforeUpdate =
(JSFunctionDefinition)eventOptions.get(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME);
- beforeUpdate.addToBody(fireBeforeUpdateDOM);
- eventOptions.put(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME, beforeUpdate);
+ context.getResponseWriter().write(ret.toString());
+ }
+
+ public Map<String, Object> getParamsMap(FacesContext context, UIToolTip
toolTip) {
+ List<UIComponent> children = toolTip.getChildren();
+ Map<String, Object> paramsMap = new HashMap<String, Object>();
+ for (UIComponent child : children) {
+ if (child instanceof UIParameter) {
+ UIParameter param = (UIParameter) child;
+ paramsMap.put(param.getName(), param.getValue());
+ }
+ }
+ return paramsMap;
+ }
+
+ private String getTargetId(FacesContext context, UIComponent component) {
+ UIToolTip toolTip = (UIToolTip) component;
+ String forValue = toolTip.getFor();
+
+ if (forValue != null && forValue.length() != 0) {
+ UIComponent targetComponent = getUtils().findComponentFor(component,
forValue);
+ if (targetComponent != null) {
+ return targetComponent.getClientId(context);
+ } else {
+ return forValue;
+ }
} else {
- JSFunctionDefinition beforeUpdate = new JSFunctionDefinition();
- beforeUpdate.addParameter("request");
- beforeUpdate.addParameter("showEvent");
- beforeUpdate.addParameter("data");
- beforeUpdate.addToBody(fireBeforeUpdateDOM);
- eventOptions.put(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME, beforeUpdate);
+ return component.getParent().getClientId(context);
}
+ }
+
+ private final static String COMMA = ",";
+ private final static String QUOT = "\"";
+ private final static String QUOT_COMMA = "\"" + ",";
+
+ public String constructJSVariable(FacesContext context, UIComponent component) {
+ UIToolTip toolTip = (UIToolTip) component;
+ String targetClientId = getTargetId(context, component);
+ Map<JSReference, Object> eventsMap = new HashMap<JSReference,
Object>();
- return eventOptions;
- }
-
- public void insertScript(FacesContext context, UIComponent component) throws
IOException{
-
- UIToolTip toolTip = (UIToolTip)component;
+ String eventShow = (toolTip.isAttached()) ? toolTip.getShowEvent() :
"";
+ if (eventShow.startsWith("on")) {
+ eventShow = eventShow.substring(2);
+ }
+ eventsMap.put(new JSReference("showEvent"), eventShow);
- StringBuffer ret = new StringBuffer();
- ret.append("<script ");
- ret.append("type=\"text/javascript\" ");
- ret.append("id =\"script" +
component.getClientId(context)+"\">\n");
- StringBuffer script = new StringBuffer();
- //
- String jsVar = constructJSVariable(context, component);
-
- script.append(jsVar).append(";\n");
-
- ret.append(script.toString());
-
- ret.append("\n</script>");
- ResponseWriter writer = context.getResponseWriter();
- writer.write(ret.toString());
-
- }
-
- public Map <String, Object> getParamsMap(FacesContext context, UIToolTip toolTip)
{
- List <UIComponent> children = toolTip.getChildren();
- Map <String, Object> paramsMap = new HashMap<String, Object>();
- for(UIComponent child: children ) {
- if(child instanceof UIParameter) {
- UIParameter param = (UIParameter)child;
- paramsMap.put(param.getName(),param.getValue());
- }
- }
- return paramsMap;
- }
-
- private String getTargetId(FacesContext context, UIComponent component) {
- UIToolTip toolTip = (UIToolTip) component;
- String forValue = toolTip.getFor();
-
- if (forValue != null && forValue.length() != 0) {
- UIComponent targetComponent = getUtils().findComponentFor(component, forValue);
- if (targetComponent != null) {
- return targetComponent.getClientId(context);
- } else {
- return forValue;
- }
- } else {
- return component.getParent().getClientId(context);
- }
- }
+ String eventHide = (toolTip.isAttached()) ? toolTip.getHideEvent() :
"";
+ if (eventHide.startsWith("on")) {
+ eventHide = eventHide.substring(2);
+ }
+ eventsMap.put(new JSReference("hideEvent"), eventHide);
- public String constructJSVariable(FacesContext context, UIComponent component) {
- UIToolTip toolTip = (UIToolTip)component;
- String targetClientId = getTargetId(context, component);
- StringBuffer ret = new StringBuffer();
- String comma = ",";
- String quot = "\"";
- String eventShow = (toolTip.isAttached()) ? toolTip.getShowEvent() : "";
- String eventHide = (toolTip.isAttached()) ? toolTip.getHideEvent() : "";
- if(eventShow.startsWith("on")){
- eventShow = eventShow.substring(2);
- }
- if(eventHide.startsWith("on")){
- eventHide = eventHide.substring(2);
- }
-
- Map<JSReference, Object> eventsMap = new HashMap<JSReference, Object>();
- eventsMap.put(new JSReference("showEvent"), eventShow);
- eventsMap.put(new JSReference("hideEvent"), eventHide);
- eventsMap.put(new JSReference("delay"), new
Integer(toolTip.getShowDelay()));
- eventsMap.put(new JSReference("hideDelay"), new
Integer(toolTip.getHideDelay()));
-
- JSFunctionDefinition ajaxFunc = new JSFunctionDefinition("event",
"ajaxOptions");
- JSFunction function = AjaxRendererUtils.buildAjaxFunction(component, context);
- JSReference ref = new JSReference("ajaxOptions");
- function.addParameter(ref);
- ajaxFunc.addToBody(function);
-
- Map<String, Object> ajaxOptions = buildEventOptions(context, toolTip,
targetClientId);
- ajaxOptions.putAll(getParamsMap(context, toolTip));
- JSFunctionDefinition completeFunc = getUtils().getAsEventHandler(context, component,
"oncomplete", "; return true;");
- JSFunctionDefinition hideFunc = getUtils().getAsEventHandler(context,
component,"onhide", "; return true;");
- JSFunctionDefinition showFunc = getUtils().getAsEventHandler(context,
component,"onshow", "; return true;");
-
- Map<JSReference, Object> funcMap = new HashMap<JSReference, Object>();
- funcMap.put(new JSReference("oncomplete"), completeFunc);
- funcMap.put(new JSReference("onhide"), hideFunc);
- funcMap.put(new JSReference("onshow"), showFunc);
-
-
- ret.append("new ToolTip(" +
ScriptUtils.toScript(eventsMap)).append(comma).append(ScriptUtils.toScript(funcMap))
- .append(comma).append(quot).append(
toolTip.getClientId(context)).append(quot).append(comma).
- append(quot).append(targetClientId).append(quot).append(comma).
- append(quot).append(toolTip.getMode()).append(quot).append(comma).
- append(toolTip.isDisabled()).append(comma).
- append(quot).append(toolTip.getDirection()).append(quot).append(comma).
- append(toolTip.isFollowMouse()).append(comma).
- append(toolTip.getHorizontalOffset()).append(comma).
- append(toolTip.getVerticalOffset()).append(comma).
- append(ajaxFunc.toScript()).append(comma).append(ScriptUtils.toScript(ajaxOptions)).append(");");
-
- return ret.toString();
- }
-
-
- protected void doDecode(FacesContext context, UIComponent component) {
+ eventsMap.put(new JSReference("delay"), new
Integer(toolTip.getShowDelay()));
+ eventsMap.put(new JSReference("hideDelay"), new
Integer(toolTip.getHideDelay()));
+
+ JSFunctionDefinition ajaxFunc = null;
+ if (AJAX_MODE.equalsIgnoreCase(toolTip.getMode())) {
+ ajaxFunc = new JSFunctionDefinition("event",
"ajaxOptions");
+ JSFunction function = AjaxRendererUtils.buildAjaxFunction(component,
context);
+ JSReference ref = new JSReference("ajaxOptions");
+ function.addParameter(ref);
+ ajaxFunc.addToBody(function);
+ }
+
+ Map<String, Object> ajaxOptions = buildEventOptions(context, toolTip,
targetClientId);
+ ajaxOptions.putAll(getParamsMap(context, toolTip));
+
+ Map<JSReference, Object> funcMap = new HashMap<JSReference,
Object>();
+ JSFunctionDefinition completeFunc = getUtils().getAsEventHandler(
+ context, component, "oncomplete", "; return true;");
+ funcMap.put(new JSReference("oncomplete"), completeFunc);
- UIToolTip tooltip = (UIToolTip)component;
-
- String clientId = tooltip.getClientId(context);
-
- if(context.getExternalContext().getRequestParameterMap().containsKey(clientId)){
- if("ajax".equals(tooltip.getMode())){
- new AjaxEvent(component).queue();
- new ActionEvent(component).queue();
- }
- }
- }
+ JSFunctionDefinition hideFunc = getUtils().getAsEventHandler(
+ context, component, "onhide", "; return true;");
+ funcMap.put(new JSReference("onhide"), hideFunc);
- public void encodeTooltipText(FacesContext context, UIToolTip component) throws
IOException {
- ResponseWriter responseWriter = context.getResponseWriter();
- responseWriter.startElement(component.getUsedElementType(), component);
- responseWriter.writeAttribute("id", component.getClientId(context) +
"content", null);
- if("ajax".equals(component.getMode())){
- // we want to avoid rendering toolTip content during initialy page displaying
- AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
- if(ajaxContext != null &&
ajaxContext.getAjaxAreasToRender().contains(component.getClientId(context) +
"content")){
- responseWriter.write(component.getValue() != null ? component.getValue().toString()
: "");
- super.renderChildren(context, component);
- }
- } else {
- // client mode
- responseWriter.write(component.getValue() != null ? component.getValue().toString()
: "");
- super.renderChildren(context, component);
- }
- responseWriter.endElement(component.getUsedElementType());
- }
-
-
- protected void doEncodeBegin(ResponseWriter writer, FacesContext context,
- UIComponent component) throws IOException {
-
- UIToolTip toolTip = (UIToolTip)component;
- Class rendererClass = null;
- try{
- if("block".equals(toolTip.getLayout())){
- rendererClass =
Class.forName("org.richfaces.renderkit.html.HtmlToolTipRendererBlock");
- } else if("inline".equals(toolTip.getLayout())){
- rendererClass =
Class.forName("org.richfaces.renderkit.html.HtmlToolTipRenderer");
- } else {
- throw new FacesException("Only \"block\" or \"inline\"
values can be established to attribute \"layout\".");
- }
- ToolTipRenderer renderer = (ToolTipRenderer)rendererClass.newInstance();
- renderer.doEncodeBegin(writer, context, component);
-
- } catch(Exception e){
- throw new FacesException(e.getMessage(), e);
- }
- }
-
-
- protected void doEncodeChildren(ResponseWriter writer,
- FacesContext context, UIComponent component) throws IOException {
-
- UIToolTip toolTip = (UIToolTip)component;
- Class rendererClass = null;
- try{
- if("block".equals(toolTip.getLayout())){
- rendererClass =
Class.forName("org.richfaces.renderkit.html.HtmlToolTipRendererBlock");
- } else {
- rendererClass =
Class.forName("org.richfaces.renderkit.html.HtmlToolTipRenderer");
- }
-
- ToolTipRenderer renderer = null;
-
- renderer = (ToolTipRenderer)rendererClass.newInstance();
-
- renderer.doEncodeChildren(writer, context, component);
- } catch(Exception e){
- throw new FacesException(e.getMessage(), e);
- }
-
-
- }
-
-
- protected void doEncodeEnd(ResponseWriter writer, FacesContext context,
- UIComponent component) throws IOException {
-
- UIToolTip toolTip = (UIToolTip)component;
- Class rendererClass = null;
- try{
- if("block".equals(toolTip.getLayout())){
- rendererClass =
Class.forName("org.richfaces.renderkit.html.HtmlToolTipRendererBlock");
- } else {
- rendererClass =
Class.forName("org.richfaces.renderkit.html.HtmlToolTipRenderer");
- }
- ToolTipRenderer renderer = (ToolTipRenderer)rendererClass.newInstance();
- renderer.doEncodeEnd(writer, context, component);
- } catch (Exception e) {
- throw new FacesException(e.getMessage(), e);
- }
- }
-
-
- /* (non-Javadoc)
- * @see javax.faces.render.Renderer#getRendersChildren()
- */
- public boolean getRendersChildren() {
- return true;
- }
-
-
+ JSFunctionDefinition showFunc = getUtils().getAsEventHandler(
+ context, component, "onshow", "; return true;");
+ funcMap.put(new JSReference("onshow"), showFunc);
+
+ StringBuffer ret = new StringBuffer();
+ ret.append("new
ToolTip(").append(ScriptUtils.toScript(eventsMap)).append(COMMA)
+ .append(ScriptUtils.toScript(funcMap)).append(COMMA)
+ .append(QUOT).append(toolTip.getClientId(context)).append(QUOT_COMMA)
+ .append(QUOT).append(targetClientId).append(QUOT_COMMA)
+ .append(QUOT).append(toolTip.getMode()).append(QUOT_COMMA)
+ .append(toolTip.isDisabled()).append(COMMA)
+ .append(QUOT).append(toolTip.getDirection()).append(QUOT_COMMA)
+ .append(toolTip.isFollowMouse()).append(COMMA)
+ .append(toolTip.getHorizontalOffset()).append(COMMA)
+ .append(toolTip.getVerticalOffset()).append(COMMA)
+ .append(ajaxFunc == null ? "null" :
ajaxFunc.toScript()).append(COMMA)
+ .append(ScriptUtils.toScript(ajaxOptions)).append(");");
+
+ return ret.toString();
+ }
+
+ protected void doDecode(FacesContext context, UIComponent component) {
+
+ UIToolTip tooltip = (UIToolTip) component;
+
+ String clientId = tooltip.getClientId(context);
+
+ if (context.getExternalContext().getRequestParameterMap().containsKey(clientId))
{
+ if (AJAX_MODE.equals(tooltip.getMode())) {
+ new AjaxEvent(component).queue();
+ new ActionEvent(component).queue();
+ }
+ }
+ }
+
+ public void encodeTooltipText(FacesContext context, UIToolTip component)
+ throws IOException {
+ ResponseWriter responseWriter = context.getResponseWriter();
+ responseWriter.startElement(component.getUsedElementType(), component);
+
+ String clientId = component.getClientId(context);
+ Object value = component.getValue();
+
+ responseWriter.writeAttribute("id", clientId + "content",
null);
+ if (AJAX_MODE.equals(component.getMode())) {
+ // we want to avoid rendering toolTip content during initialy page
+ // displaying
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
+ if (ajaxContext != null &&
ajaxContext.getAjaxAreasToRender().contains(clientId + "content")) {
+
+ responseWriter.write(value != null ? value.toString() : "");
+
+ super.renderChildren(context, component);
+ }
+ } else {
+ // client mode
+ responseWriter.write(value != null ? value.toString() : "");
+ super.renderChildren(context, component);
+ }
+ responseWriter.endElement(component.getUsedElementType());
+ }
+
+ protected void doEncodeBegin(ResponseWriter writer, FacesContext context,
+ UIComponent component) throws IOException {
+
+ try {
+ ToolTipRenderer renderer = getRenderer((UIToolTip) component);
+ renderer.doEncodeBegin(writer, context, component);
+ } catch (Exception e) {
+ throw new FacesException(e.getMessage(), e);
+ }
+ }
+
+ protected void doEncodeChildren(ResponseWriter writer,
+ FacesContext context, UIComponent component) throws IOException {
+
+ try {
+ ToolTipRenderer renderer = getRenderer((UIToolTip) component);
+ renderer.doEncodeChildren(writer, context, component);
+ } catch (Exception e) {
+ throw new FacesException(e.getMessage(), e);
+ }
+
+ }
+
+ protected void doEncodeEnd(ResponseWriter writer, FacesContext context,
+ UIComponent component) throws IOException {
+
+ try {
+ ToolTipRenderer renderer = getRenderer((UIToolTip) component);
+ renderer.doEncodeEnd(writer, context, component);
+ } catch (Exception e) {
+ throw new FacesException(e.getMessage(), e);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.render.Renderer#getRendersChildren()
+ */
+ public boolean getRendersChildren() {
+ return true;
+ }
+
+ private ToolTipRenderer getRenderer(UIToolTip toolTip) throws ClassNotFoundException,
InstantiationException, IllegalAccessException{
+ Class<?> rendererClass;
+ if ("block".equals(toolTip.getLayout())) {
+ rendererClass =
Class.forName("org.richfaces.renderkit.html.HtmlToolTipRendererBlock");
+ } else {
+ rendererClass =
Class.forName("org.richfaces.renderkit.html.HtmlToolTipRenderer");
+ }
+
+ return (ToolTipRenderer) rendererClass.newInstance();
+
+ }
+
}
-
Modified: trunk/ui/tooltip/src/main/java/org/richfaces/taglib/ToolTipTagHandlerBase.java
===================================================================
---
trunk/ui/tooltip/src/main/java/org/richfaces/taglib/ToolTipTagHandlerBase.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/ui/tooltip/src/main/java/org/richfaces/taglib/ToolTipTagHandlerBase.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -30,27 +30,30 @@
import com.sun.facelets.tag.jsf.ComponentConfig;
public abstract class ToolTipTagHandlerBase extends AjaxComponentHandler {
- public ToolTipTagHandlerBase(ComponentConfig config) {
- super(config);
- }
- protected MetaRuleset createMetaRuleset(Class type) {
- TagAttributes attributes = this.tag.getAttributes();
- TagAttribute eventAttribute = attributes.get("event");
- TagAttribute showEventAttribute = attributes.get("showEvent");
- MetaRuleset ruleset = super.createMetaRuleset(type);
-
- if (eventAttribute != null) {
- if (showEventAttribute != null) {
- TagAttribute idAttribute = attributes.get("id");
- FacesContext facesContext = FacesContext.getCurrentInstance();
- facesContext.getExternalContext().log("showEvent attribute has been
already set for component with id: " +
- idAttribute != null ? idAttribute.getValue() : null +
- "[" + eventAttribute.getValue() + "]. event
attribute is deprecated and thus has been dropped!");
- ruleset.ignore("event");
- } else {
- ruleset.alias("event", "showEvent");
- }
- }
- return ruleset;
- }
+
+ public ToolTipTagHandlerBase(ComponentConfig config) {
+ super(config);
+ }
+
+ protected MetaRuleset createMetaRuleset(Class type) {
+ TagAttributes attributes = this.tag.getAttributes();
+ TagAttribute eventAttribute = attributes.get("event");
+ TagAttribute showEventAttribute = attributes.get("showEvent");
+ MetaRuleset ruleset = super.createMetaRuleset(type);
+
+ if (eventAttribute != null) {
+ if (showEventAttribute != null) {
+ TagAttribute idAttribute = attributes.get("id");
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ facesContext.getExternalContext()
+ .log("showEvent attribute has been already set for component
with id: "
+ + idAttribute != null ? idAttribute.getValue() : null
+ + "[" + eventAttribute.getValue() + "]. event
attribute is deprecated and thus has been dropped!");
+ ruleset.ignore("event");
+ } else {
+ ruleset.alias("event", "showEvent");
+ }
+ }
+ return ruleset;
+ }
}
Modified:
trunk/ui/tooltip/src/test/java/org/richfaces/component/TooltipComponentTest.java
===================================================================
---
trunk/ui/tooltip/src/test/java/org/richfaces/component/TooltipComponentTest.java 2009-02-13
11:53:36 UTC (rev 12649)
+++
trunk/ui/tooltip/src/test/java/org/richfaces/component/TooltipComponentTest.java 2009-02-13
13:04:09 UTC (rev 12650)
@@ -48,7 +48,7 @@
private UIToolTip tooltip1;
private UIToolTip tooltip2;
- private static Set javaScripts = new HashSet();
+ private static Set<String> javaScripts = new HashSet<String>();
private static final boolean IS_PAGE_AVAILABILITY_CHECK = true;
static {
@@ -71,10 +71,8 @@
form = new HtmlForm();
form.setId("form");
facesContext.getViewRoot().getChildren().add(form);
- tooltip1 = (UIToolTip) application
- .createComponent(UIToolTip.COMPONENT_TYPE);
- tooltip2 = (UIToolTip) application
- .createComponent(UIToolTip.COMPONENT_TYPE);
+ tooltip1 = (UIToolTip) application.createComponent(UIToolTip.COMPONENT_TYPE);
+ tooltip2 = (UIToolTip) application.createComponent(UIToolTip.COMPONENT_TYPE);
tooltip1.setId("tooltip1");
tooltip1.setLayout("block");
form.getChildren().add(tooltip1);
@@ -85,22 +83,18 @@
}
public void testRender() throws Exception {
-
HtmlPage page = renderView();
assertNotNull(page);
- //System.out.println(page.asXml());
-
}
public void testToolTipStyles() throws Exception {
HtmlPage page = renderView();
assertNotNull(page);
- List links = page.getDocumentElement().getHtmlElementsByTagName("link");
+ List<?> links =
page.getDocumentHtmlElement().getHtmlElementsByTagName("link");
if(links.size()==0){fail();}
for (int i = 0; i < links.size(); i++) {
HtmlElement link = (HtmlElement) links.get(i);
- assertTrue(link.getAttributeValue("href").contains(
- "css/tooltip.xcss"));
+ assertTrue(link.getAttributeValue("href").contains("css/tooltip.xcss"));
}
}
@@ -108,22 +102,14 @@
HtmlPage page = renderView();
assertNotNull(page);
- List scripts = page.getDocumentElement().getHtmlElementsByTagName(
- "script");
- for (Iterator it = scripts.iterator(); it.hasNext();) {
+ List<?> scripts =
page.getDocumentHtmlElement().getHtmlElementsByTagName("script");
+ for (Iterator<?> it = scripts.iterator(); it.hasNext();) {
HtmlScript item = (HtmlScript) it.next();
String srcAttr = item.getSrcAttribute();
- if (item.getFirstChild() != null) {
- String scriptBodyString = item.getFirstChild().toString();
- if (scriptBodyString.contains("new ToolTip")) {
- assertTrue(scriptBodyString.contains("A4J.AJAX.Submit"));
- //assertTrue(scriptBodyString.contains("Richfaces.tooltips"));
- }
- }
if (StringUtils.isNotBlank(srcAttr)) {
boolean found = false;
- for (Iterator srcIt = javaScripts.iterator(); srcIt.hasNext();) {
+ for (Iterator<String> srcIt = javaScripts.iterator(); srcIt.hasNext();) {
String src = (String) srcIt.next();
found = srcAttr.contains(src);
if (found) {