You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by jl...@apache.org on 2006/06/18 16:54:29 UTC
svn commit: r415144 - in /myfaces/tomahawk/trunk:
core/src/main/java/org/apache/myfaces/custom/schedule/
core/src/main/java/org/apache/myfaces/custom/schedule/renderer/
core/src/site/xdoc/ examples/simple/src/main/webapp/
examples/simple/src/main/webap...
Author: jlust
Date: Sun Jun 18 07:54:29 2006
New Revision: 415144
URL: http://svn.apache.org/viewvc?rev=415144&view=rev
Log:
The entryRenderer attribute is no longer the fully qualified classname of the custom ScheduleEntryRenderer class, but a value binding to an implementation of that interface
Modified:
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTag.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/AbstractScheduleRenderer.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java
myfaces/tomahawk/trunk/core/src/site/xdoc/schedule.xml
myfaces/tomahawk/trunk/examples/simple/src/main/webapp/WEB-INF/examples-config.xml
myfaces/tomahawk/trunk/examples/simple/src/main/webapp/schedule4.jsp
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTag.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTag.java?rev=415144&r1=415143&r2=415144&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTag.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTag.java Sun Jun 18 07:54:29 2006
@@ -851,6 +851,15 @@
throw new IllegalArgumentException(
"The value property must be a value binding expression that points to a SimpleScheduleModel object.");
}
+
+ if (entryRenderer != null && isValueReference(entryRenderer))
+ {
+ schedule.setValueBinding("entryRenderer", app.createValueBinding(entryRenderer));
+ }
+ else if (entryRenderer != null)
+ {
+ throw new IllegalArgumentException("The entryRenderer property must be a value binding expression that point to a ScheduleEntryRenderer instance");
+ }
addAttribute(app, schedule, "headerDateFormat", headerDateFormat);
addAttribute(app, schedule, "theme", theme);
@@ -887,8 +896,6 @@
addAttribute(app, schedule, "renderZeroLengthEntries", renderZeroLengthEntries);
addAttribute(app, schedule, "expandToFitEntries", expandToFitEntries);
-
- addAttribute(app, schedule, "entryRenderer", entryRenderer);
}
/**
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/AbstractScheduleRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/AbstractScheduleRenderer.java?rev=415144&r1=415143&r2=415144&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/AbstractScheduleRenderer.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/AbstractScheduleRenderer.java Sun Jun 18 07:54:29 2006
@@ -392,43 +392,16 @@
*/
protected ScheduleEntryRenderer getEntryRenderer(UIComponent component)
{
- ScheduleEntryRenderer entryRenderer = null;
- Map attributes = component.getAttributes();
- //First check if there an entryRenderer has already been instantiated
- Object rendererObject = attributes.get("entryRendererInstance");
- if (rendererObject instanceof ScheduleEntryRenderer)
+ Object entryRendererObject = ScheduleUtil.getObjectProperty(component,
+ null, "entryRenderer", null);
+ if (entryRendererObject instanceof ScheduleEntryRenderer)
{
- entryRenderer = (ScheduleEntryRenderer) rendererObject;
+ return (ScheduleEntryRenderer) entryRendererObject;
}
else
{
- //No entryRenderer was instantiated, do that here
- String className = null;
- //Was the classname specified as attribute of the component?
- ValueBinding binding = component.getValueBinding("entryRenderer");
- if (binding != null)
- {
- className = (String) binding.getValue(FacesContext
- .getCurrentInstance());
- }
- if (className == null)
- {
- className = (String) attributes.get("entryRenderer");
- }
- try
- { //try to instantiate a renderer of the specified class
- entryRenderer = (ScheduleEntryRenderer) Class
- .forName(className).newInstance();
- }
- catch (Exception e)
- {
- //something went wrong, let's take the default
- entryRenderer = new DefaultScheduleEntryRenderer();
- }
- //Store the instance in the component attributes for later use
- attributes.put("entryRendererInstance", entryRenderer);
+ return new DefaultScheduleEntryRenderer();
}
- return entryRenderer;
}
/**
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java?rev=415144&r1=415143&r2=415144&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java Sun Jun 18 07:54:29 2006
@@ -161,10 +161,9 @@
return;
}
- HtmlSchedule schedule = (HtmlSchedule) component;
ResponseWriter writer = context.getResponseWriter();
- writeForegroundEnd(context, schedule, writer);
+ writeForegroundEnd(writer);
writer.endElement(HTML.DIV_ELEM);
}
@@ -578,8 +577,7 @@
}
}
- private void writeForegroundEnd(FacesContext context,
- HtmlSchedule schedule, ResponseWriter writer) throws IOException
+ private void writeForegroundEnd(ResponseWriter writer) throws IOException
{
writer.endElement(HTML.TR_ELEM);
writer.endElement(HTML.TABLE_ELEM);
Modified: myfaces/tomahawk/trunk/core/src/site/xdoc/schedule.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/xdoc/schedule.xml?rev=415144&r1=415143&r2=415144&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/site/xdoc/schedule.xml (original)
+++ myfaces/tomahawk/trunk/core/src/site/xdoc/schedule.xml Sun Jun 18 07:54:29 2006
@@ -141,7 +141,7 @@
</code>
<br/>
<code>
- entryRenderer - The classname of the ScheduleEntryRenderer that is used to render entries on the schedule. (default org.apache.myfaces.custom.schedule.renderer.DefaultScheduleEntryRenderer)
+ entryRenderer - value binding to an instance of ScheduleEntryRenderer that is used to render entries on the schedule. (default: DefaultScheduleEntryRenderer)
</code>
<br/>
<code>
Modified: myfaces/tomahawk/trunk/examples/simple/src/main/webapp/WEB-INF/examples-config.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/examples/simple/src/main/webapp/WEB-INF/examples-config.xml?rev=415144&r1=415143&r2=415144&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/examples/simple/src/main/webapp/WEB-INF/examples-config.xml (original)
+++ myfaces/tomahawk/trunk/examples/simple/src/main/webapp/WEB-INF/examples-config.xml Sun Jun 18 07:54:29 2006
@@ -525,6 +525,12 @@
</map-entry>
</map-entries>
</managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>randomColorEntryRenderer</managed-bean-name>
+ <managed-bean-class>org.apache.myfaces.examples.schedule.RandomColorScheduleEntryRenderer</managed-bean-class>
+ <managed-bean-scope>application</managed-bean-scope>
+ </managed-bean>
<!-- Managed Beans for calendar.jsp -->
Modified: myfaces/tomahawk/trunk/examples/simple/src/main/webapp/schedule4.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/examples/simple/src/main/webapp/schedule4.jsp?rev=415144&r1=415143&r2=415144&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/examples/simple/src/main/webapp/schedule4.jsp (original)
+++ myfaces/tomahawk/trunk/examples/simple/src/main/webapp/schedule4.jsp Sun Jun 18 07:54:29 2006
@@ -60,7 +60,7 @@
workingEndHour="17" workingStartHour="9" readonly="false"
theme="outlookxp" tooltip="true"
evenClass="evenReddish" unevenClass="unevenReddish" freeClass="freeReddish"
- entryRenderer="org.apache.myfaces.examples.schedule.RandomColorScheduleEntryRenderer" />
+ entryRenderer="#{randomColorEntryRenderer}" />
</t:div>
<!-- The column on the left, containing the calendar and other controls -->
<t:div style="position: absolute; left: 5px; top: 5px; width: 210px;">