You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2005/07/28 13:53:59 UTC

svn commit: r225754 [2/3] - in /myfaces: examples/trunk/sandbox/ examples/trunk/sandbox/WEB-INF/ examples/trunk/sandbox/src/java/org/apache/myfaces/examples/schedule/ sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/ sandbox/trunk/src/java/org...

Modified: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java?rev=225754&r1=225753&r2=225754&view=diff
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java (original)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/renderer/ScheduleDetailedDayRenderer.java Thu Jul 28 04:53:37 2005
@@ -16,7 +16,6 @@
 
 package org.apache.myfaces.custom.schedule.renderer;
 
-
 import java.io.IOException;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
@@ -34,7 +33,6 @@
 import org.apache.myfaces.custom.schedule.model.ScheduleEntry;
 import org.apache.myfaces.renderkit.html.HTML;
 
-
 /**
  * <p>
  * Renderer for the day and workweek views of the Schedule component
@@ -44,8 +42,7 @@
  * @author Bruno Aranda (adaptation of Jurgen's code to myfaces)
  * @version $Revision$
  */
-public class ScheduleDetailedDayRenderer
-    extends AbstractScheduleRenderer
+public class ScheduleDetailedDayRenderer extends AbstractScheduleRenderer
 {
     //~ Instance fields --------------------------------------------------------
 
@@ -57,13 +54,11 @@
      * @see javax.faces.render.Renderer#encodeBegin(javax.faces.context.FacesContext,
      *      javax.faces.component.UIComponent)
      */
-    public void encodeBegin(
-        FacesContext context,
-        UIComponent component
-    )
-        throws IOException
+    public void encodeBegin(FacesContext context, UIComponent component)
+            throws IOException
     {
-        if (!component.isRendered()) {
+        if (!component.isRendered())
+        {
             return;
         }
 
@@ -75,9 +70,8 @@
 
         //the number of rows in the grid is the number of half hours between
         //visible start hour and visible end hour, plus 1 for the header
-        int numberOfRows =
-            ((schedule.getVisibleEndHour() - schedule.getVisibleStartHour()) * 2) +
-            1;
+        int numberOfRows = ((schedule.getVisibleEndHour() - schedule
+                .getVisibleStartHour()) * 2) + 1;
 
         //the grid height = 22 pixels times the number of rows + 3, for the
         //table border and the cellpadding
@@ -86,11 +80,8 @@
         //container div for the schedule grid
         writer.startElement(HTML.DIV_ELEM, schedule);
         writer.writeAttribute(HTML.CLASS_ATTR, "schedule-detailed", null);
-        writer.writeAttribute(
-            HTML.STYLE_ATTR,
-            "height: " + String.valueOf(gridHeight) + "px; overflow: hidden;",
-            null
-        );
+        writer.writeAttribute(HTML.STYLE_ATTR, "height: "
+                + String.valueOf(gridHeight) + "px; overflow: hidden;", null);
         writeBackground(context, schedule, writer);
         writeForegroundStart(context, schedule, writer);
     }
@@ -99,13 +90,11 @@
      * @see javax.faces.render.Renderer#encodeChildren(javax.faces.context.FacesContext,
      *      javax.faces.component.UIComponent)
      */
-    public void encodeChildren(
-        FacesContext context,
-        UIComponent component
-    )
-        throws IOException
+    public void encodeChildren(FacesContext context, UIComponent component)
+            throws IOException
     {
-        if (!component.isRendered()) {
+        if (!component.isRendered())
+        {
             return;
         }
 
@@ -113,21 +102,20 @@
         Map attributes = schedule.getAttributes();
         ResponseWriter writer = context.getResponseWriter();
 
-        for (
-            Iterator dayIterator = schedule.getModel().iterator();
-                dayIterator.hasNext();
-        ) {
+        for (Iterator dayIterator = schedule.getModel().iterator(); dayIterator
+                .hasNext();)
+        {
             ScheduleDay day = (ScheduleDay) dayIterator.next();
             writer.startElement(HTML.TD_ELEM, schedule);
             writer.writeAttribute(HTML.CLASS_ATTR, "column", null);
             writer.writeAttribute(HTML.STYLE_ATTR, "height: 100%;", null);
             writer.startElement(HTML.DIV_ELEM, schedule);
             writer.writeAttribute(HTML.CLASS_ATTR, "column", null);
-            writer.writeAttribute(
-                HTML.STYLE_ATTR,
-                "position: relative; top: 0px; left: 0px; width: 100%; height: 100%; z-index: 0;",
-                null
-            );
+            writer
+                    .writeAttribute(
+                            HTML.STYLE_ATTR,
+                            "position: relative; top: 0px; left: 0px; width: 100%; height: 100%; z-index: 0;",
+                            null);
             writeEntries(context, schedule, day, writer);
             writer.endElement(HTML.DIV_ELEM);
             writer.endElement(HTML.TD_ELEM);
@@ -138,13 +126,11 @@
      * @see javax.faces.render.Renderer#encodeEnd(javax.faces.context.FacesContext,
      *      javax.faces.component.UIComponent)
      */
-    public void encodeEnd(
-        FacesContext context,
-        UIComponent component
-    )
-        throws IOException
+    public void encodeEnd(FacesContext context, UIComponent component)
+            throws IOException
     {
-        if (!component.isRendered()) {
+        if (!component.isRendered())
+        {
             return;
         }
 
@@ -156,70 +142,61 @@
         writer.endElement(HTML.DIV_ELEM);
     }
 
-    private String getCellClass(
-        HtmlSchedule schedule,
-        int column,
-        int row
-    )
+    private String getCellClass(HtmlSchedule schedule, int column, int row)
     {
         String cellClass = "free";
         ScheduleDay day = (ScheduleDay) schedule.getModel().get(column);
 
-        if (!day.isWorkingDay()) {
+        if (!day.isWorkingDay())
+        {
             return cellClass;
         }
 
-        if (
-            ((schedule.getVisibleStartHour() + (row / 2)) >= schedule.getWorkingStartHour()) &&
-                ((schedule.getVisibleStartHour() + (row / 2)) < schedule.getWorkingEndHour())
-        ) {
+        if (((schedule.getVisibleStartHour() + (row / 2)) >= schedule
+                .getWorkingStartHour())
+                && ((schedule.getVisibleStartHour() + (row / 2)) < schedule
+                        .getWorkingEndHour()))
+        {
             cellClass = ((row % 2) == 0) ? "even" : "uneven";
         }
 
         return cellClass;
     }
 
-    private boolean isSelected(
-        HtmlSchedule schedule,
-        EntryWrapper entry
-    )
+    private boolean isSelected(HtmlSchedule schedule, EntryWrapper entry)
     {
         ScheduleEntry selectedEntry = schedule.getModel().getSelectedEntry();
 
-        if (selectedEntry == null) {
+        if (selectedEntry == null)
+        {
             return false;
         }
 
-        boolean returnboolean =
-            selectedEntry.getId().equals(entry.entry.getId());
+        boolean returnboolean = selectedEntry.getId().equals(
+                entry.entry.getId());
 
         return returnboolean;
     }
 
-    private void maximizeEntries(
-        EntryWrapper[] entries,
-        int numberOfColumns
-    )
+    private void maximizeEntries(EntryWrapper[] entries, int numberOfColumns)
     {
-        for (int i = 0; i < entries.length; i++) {
+        for (int i = 0; i < entries.length; i++)
+        {
             EntryWrapper entry = entries[i];
 
             //now see if we can expand the entry to the columns on the right
-            while (
-                ((entry.column + entry.colspan) < numberOfColumns) &&
-                    entry.canFitInColumn(entry.column + entry.colspan)
-            ) {
+            while (((entry.column + entry.colspan) < numberOfColumns)
+                    && entry.canFitInColumn(entry.column + entry.colspan))
+            {
                 entry.colspan++;
             }
         }
     }
 
-    private void scanEntries(
-        EntryWrapper[] entries,
-        int index
-    )
+    private void scanEntries(EntryWrapper[] entries, int index)
     {
-        if (entries.length <= 0) {
+        if (entries.length <= 0)
+        {
             return;
         }
 
@@ -227,120 +204,118 @@
         entry.column = 0;
 
         //see what columns are already taken
-        for (int i = 0; i < index; i++) {
-            if (entry.overlaps(entries[i])) {
+        for (int i = 0; i < index; i++)
+        {
+            if (entry.overlaps(entries[i]))
+            {
                 entry.overlappingEntries.add(entries[i]);
                 entries[i].overlappingEntries.add(entry);
             }
         }
 
         //find an available column
-        while (!entry.canFitInColumn(entry.column)) {
+        while (!entry.canFitInColumn(entry.column))
+        {
             entry.column++;
         }
 
         //recursively scan the remaining entries for overlaps
-        if (++index < entries.length) {
+        if (++index < entries.length)
+        {
             scanEntries(entries, index);
         }
     }
 
-    private void writeBackground(
-        FacesContext context,
-        HtmlSchedule schedule,
-        ResponseWriter writer
-    )
-        throws IOException
+    private void writeBackground(FacesContext context, HtmlSchedule schedule,
+            ResponseWriter writer) throws IOException
     {
         //a calendar component should always be inside a UIForm
         UIForm parentForm = getParentForm(schedule);
 
-        if (parentForm == null) {
+        if (parentForm == null)
+        {
             throw new NullPointerException("No parent UIForm found");
         }
 
         writer.startElement(HTML.DIV_ELEM, schedule);
         writer.writeAttribute(HTML.CLASS_ATTR, "background", null);
-        writer.writeAttribute(
-            HTML.STYLE_ATTR,
-            "position: absolute;	left: 0px; top: 0px; width: 100%; height: 100%; z-index: 0;",
-            null
-        );
+        writer
+                .writeAttribute(
+                        HTML.STYLE_ATTR,
+                        "position: absolute;	left: 0px; top: 0px; width: 100%; height: 100%; z-index: 0;",
+                        null);
 
         //background table for the schedule grid
         writer.startElement(HTML.TABLE_ELEM, schedule);
         writer.writeAttribute(HTML.CLASS_ATTR, "background", null);
         writer.writeAttribute(HTML.CELLPADDING_ATTR, "0", null);
         writer.writeAttribute(HTML.CELLSPACING_ATTR, "1", null);
-        writer.writeAttribute(HTML.STYLE_ATTR, "width: 100%; height: 100%", null);
+        writer.writeAttribute(HTML.STYLE_ATTR, "width: 100%; height: 100%",
+                null);
         writer.startElement(HTML.TBODY_ELEM, schedule);
 
         //header row, containing the column names
         writer.startElement(HTML.TR_ELEM, schedule);
         writer.startElement(HTML.TD_ELEM, schedule);
         writer.writeAttribute(HTML.CLASS_ATTR, "gutter", null);
-        writer.writeAttribute(
-            HTML.STYLE_ATTR,
-            "height: 21px; border-style: none; border-width: 0px; overflow: hidden; padding: 0px",
-            null
-        );
+        writer
+                .writeAttribute(
+                        HTML.STYLE_ATTR,
+                        "height: 21px; border-style: none; border-width: 0px; overflow: hidden; padding: 0px",
+                        null);
         writer.startElement(HTML.DIV_ELEM, schedule);
-        writer.writeAttribute(HTML.STYLE_ATTR, "height: 1px; width: 56px", null);
+        writer
+                .writeAttribute(HTML.STYLE_ATTR, "height: 1px; width: 56px",
+                        null);
         writer.endElement(HTML.DIV_ELEM);
         writer.endElement(HTML.TD_ELEM);
 
-        float columnWidth =
-            (schedule.getModel().size() == 0) ? 100
-                                              : (100 / schedule.getModel().size());
-
-        for (
-            Iterator dayIterator = schedule.getModel().iterator();
-                dayIterator.hasNext();
-        ) {
+        float columnWidth = (schedule.getModel().size() == 0) ? 100
+                : (100 / schedule.getModel().size());
+
+        for (Iterator dayIterator = schedule.getModel().iterator(); dayIterator
+                .hasNext();)
+        {
             ScheduleDay day = (ScheduleDay) dayIterator.next();
             writer.startElement(HTML.TD_ELEM, schedule);
             writer.writeAttribute(HTML.CLASS_ATTR, "header", null);
-            writer.writeAttribute(
-                HTML.STYLE_ATTR,
-                "height: 31px; border-style: none; border-width: 0px; overflow: hidden;",
-                null
-            );
-            writer.writeAttribute(
-                HTML.WIDTH_ATTR, String.valueOf(columnWidth) + "%", null
-            );
+            writer
+                    .writeAttribute(
+                            HTML.STYLE_ATTR,
+                            "height: 31px; border-style: none; border-width: 0px; overflow: hidden;",
+                            null);
+            writer.writeAttribute(HTML.WIDTH_ATTR, String.valueOf(columnWidth)
+                    + "%", null);
             writer.startElement(HTML.DIV_ELEM, schedule);
-            writer.writeAttribute(
-                HTML.STYLE_ATTR,
-                "position: relative; left: 0px; top: 0px; width: 100%; height: 100%;",
-                null
-            );
+            writer
+                    .writeAttribute(
+                            HTML.STYLE_ATTR,
+                            "position: relative; left: 0px; top: 0px; width: 100%; height: 100%;",
+                            null);
 
             //write the date
             writer.startElement(HTML.SPAN_ELEM, schedule);
             writer.writeAttribute(HTML.CLASS_ATTR, "date", null);
-            writer.writeAttribute(
-                HTML.STYLE_ATTR,
-                "position: absolute; left: 0px; top: 0px; height: 15px; width: 100%; vertical-align: top; overflow: hidden; white-space: nowrap;",
-                null
-            );
-            writer.writeText(
-                getDateString(context, schedule.getAttributes(), day.getDate()),
-                null
-            );
+            writer
+                    .writeAttribute(
+                            HTML.STYLE_ATTR,
+                            "position: absolute; left: 0px; top: 0px; height: 15px; width: 100%; vertical-align: top; overflow: hidden; white-space: nowrap;",
+                            null);
+            writer.writeText(getDateString(context, schedule, day.getDate()),
+                    null);
             writer.endElement(HTML.SPAN_ELEM);
 
             //write the name of the holiday, if there is one
-            if (
-                (day.getSpecialDayName() != null) &&
-                    (day.getSpecialDayName().length() > 0)
-            ) {
+            if ((day.getSpecialDayName() != null)
+                    && (day.getSpecialDayName().length() > 0))
+            {
                 writer.startElement(HTML.SPAN_ELEM, schedule);
                 writer.writeAttribute(HTML.CLASS_ATTR, "holiday", null);
-                writer.writeAttribute(
-                    HTML.STYLE_ATTR,
-                    "position: absolute; left: 0px; top: 15px; width: 100%; vertical-align: top; overflow: hidden; white-space: nowrap;",
-                    null
-                );
+                writer
+                        .writeAttribute(
+                                HTML.STYLE_ATTR,
+                                "position: absolute; left: 0px; top: 15px; width: 100%; vertical-align: top; overflow: hidden; white-space: nowrap;",
+                                null);
                 writer.writeText(day.getSpecialDayName(), null);
                 writer.endElement(HTML.SPAN_ELEM);
             }
@@ -351,59 +326,54 @@
 
         writer.endElement(HTML.TR_ELEM);
 
-        int numberOfRows =
-            (schedule.getVisibleEndHour() - schedule.getVisibleStartHour()) * 2;
+        int numberOfRows = (schedule.getVisibleEndHour() - schedule
+                .getVisibleStartHour()) * 2;
 
-        for (int row = 0; row < numberOfRows; row++) {
+        for (int row = 0; row < numberOfRows; row++)
+        {
             writer.startElement(HTML.TR_ELEM, schedule);
 
             //write the hours of the day on the left
             //this only happens on even rows, or every hour
-            if ((row % 2) == 0) {
+            if ((row % 2) == 0)
+            {
                 writer.startElement(HTML.TD_ELEM, schedule);
                 writer.writeAttribute(HTML.CLASS_ATTR, "gutter", null);
-                writer.writeAttribute(
-                    HTML.STYLE_ATTR,
-                    "height: 21px; border-style: none; border-width: 0px; overflow: hidden; padding: 0px",
-                    null
-                );
+                writer
+                        .writeAttribute(
+                                HTML.STYLE_ATTR,
+                                "height: 21px; border-style: none; border-width: 0px; overflow: hidden; padding: 0px",
+                                null);
                 writer.writeAttribute("rowspan", "2", null);
                 writer.startElement(HTML.SPAN_ELEM, schedule);
                 writer.writeAttribute(HTML.CLASS_ATTR, "hours", null);
-                writer.writeAttribute(
-                    HTML.STYLE_ATTR, "vertical-align: top; height: 100%; padding: 0px;",
-                    null
-                );
-                writer.writeText(
-                    String.valueOf(schedule.getVisibleStartHour() + (row / 2)),
-                    null
-                );
+                writer.writeAttribute(HTML.STYLE_ATTR,
+                        "vertical-align: top; height: 100%; padding: 0px;",
+                        null);
+                writer.writeText(String.valueOf(schedule.getVisibleStartHour()
+                        + (row / 2)), null);
                 writer.endElement(HTML.SPAN_ELEM);
                 writer.startElement(HTML.SPAN_ELEM, schedule);
                 writer.writeAttribute(HTML.CLASS_ATTR, "minutes", null);
-                writer.writeAttribute(
-                    HTML.STYLE_ATTR, "vertical-align: top; height: 100%; padding: 0px;",
-                    null
-                );
+                writer.writeAttribute(HTML.STYLE_ATTR,
+                        "vertical-align: top; height: 100%; padding: 0px;",
+                        null);
                 writer.writeText("00", null);
                 writer.endElement(HTML.SPAN_ELEM);
                 writer.endElement(HTML.TD_ELEM);
             }
 
             //write the cells of the day columns on this row
-            for (int column = 0; column < schedule.getModel().size();
-                    column++
-            ) {
+            for (int column = 0; column < schedule.getModel().size(); column++)
+            {
                 writer.startElement(HTML.TD_ELEM, schedule);
-                writer.writeAttribute(
-                    HTML.CLASS_ATTR, getCellClass(schedule, column, row), null
-                );
-                writer.writeAttribute(
-                    HTML.STYLE_ATTR, "overflow: hidden; height: 21px;", null
-                );
-                writer.writeAttribute(
-                    HTML.WIDTH_ATTR, String.valueOf(columnWidth) + "%", null
-                );
+                writer.writeAttribute(HTML.CLASS_ATTR, getCellClass(schedule,
+                        column, row), null);
+                writer.writeAttribute(HTML.STYLE_ATTR,
+                        "overflow: hidden; height: 21px;", null);
+                writer.writeAttribute(HTML.WIDTH_ATTR, String
+                        .valueOf(columnWidth)
+                        + "%", null);
                 writer.write(HTML.NBSP_ENTITY);
                 writer.endElement(HTML.TD_ELEM);
             }
@@ -416,27 +386,20 @@
         writer.endElement(HTML.DIV_ELEM);
     }
 
-    private void writeEntries(
-        FacesContext context,
-        HtmlSchedule schedule,
-        ScheduleDay day,
-        ResponseWriter writer
-    )
-        throws IOException
+    private void writeEntries(FacesContext context, HtmlSchedule schedule,
+            ScheduleDay day, ResponseWriter writer) throws IOException
     {
         TreeSet entrySet = new TreeSet();
         Map attributes = schedule.getAttributes();
 
-        for (Iterator entryIterator = day.iterator(); entryIterator.hasNext();) {
-            entrySet.add(
-                new EntryWrapper((ScheduleEntry) entryIterator.next(), day)
-            );
+        for (Iterator entryIterator = day.iterator(); entryIterator.hasNext();)
+        {
+            entrySet.add(new EntryWrapper((ScheduleEntry) entryIterator.next(),
+                    day));
         }
 
-        EntryWrapper[] entries =
-            (EntryWrapper[]) entrySet.toArray(
-                new EntryWrapper[entrySet.size()]
-            );
+        EntryWrapper[] entries = (EntryWrapper[]) entrySet
+                .toArray(new EntryWrapper[entrySet.size()]);
 
         //determine overlaps
         scanEntries(entries, 0);
@@ -444,10 +407,9 @@
         //determine the number of columns within this day
         int maxColumn = 0;
 
-        for (
-            Iterator entryIterator = entrySet.iterator();
-                entryIterator.hasNext();
-        ) {
+        for (Iterator entryIterator = entrySet.iterator(); entryIterator
+                .hasNext();)
+        {
             EntryWrapper wrapper = (EntryWrapper) entryIterator.next();
             maxColumn = Math.max(wrapper.column, maxColumn);
         }
@@ -463,34 +425,30 @@
         UIForm parentForm = getParentForm(schedule);
 
         //and now draw the entries in the columns
-        for (
-            Iterator entryIterator = entrySet.iterator();
-                entryIterator.hasNext();
-        ) {
+        for (Iterator entryIterator = entrySet.iterator(); entryIterator
+                .hasNext();)
+        {
             EntryWrapper wrapper = (EntryWrapper) entryIterator.next();
 
-            if (isSelected(schedule, wrapper)) {
+            if (isSelected(schedule, wrapper))
+            {
                 writer.startElement(HTML.DIV_ELEM, schedule);
                 writer.writeAttribute(HTML.CLASS_ATTR, "entry-selected", null);
-                writer.writeAttribute(
-                    HTML.STYLE_ATTR, wrapper.getBounds(schedule, columnWidth), null
-                );
+                writer.writeAttribute(HTML.STYLE_ATTR, wrapper.getBounds(
+                        schedule, columnWidth), null);
 
                 //draw the tooltip
-                if (showTooltip(schedule.getAttributes())) {
-                    writer.writeAttribute(
-                        "onmouseover",
-                        getTooltipText(wrapper.entry, schedule.getAttributes()),
-                        null
-                    );
+                if (showTooltip(schedule))
+                {
+                    writer.writeAttribute("onmouseover", getTooltipText(
+                            wrapper.entry, schedule), null);
                 }
 
                 //draw the contents of the selected entry
                 writer.startElement(HTML.DIV_ELEM, null);
                 writer.writeAttribute(HTML.CLASS_ATTR, "text", null);
-                writer.writeAttribute(
-                    HTML.STYLE_ATTR, "height: 100%; width: 100%;", null
-                );
+                writer.writeAttribute(HTML.STYLE_ATTR,
+                        "height: 100%; width: 100%;", null);
                 writer.startElement(HTML.SPAN_ELEM, schedule);
                 writer.writeAttribute(HTML.CLASS_ATTR, "title", null);
                 writer.writeText(wrapper.entry.getTitle(), null);
@@ -503,23 +461,23 @@
                 writer.endElement(HTML.SPAN_ELEM);
                 writer.endElement(HTML.DIV_ELEM);
                 writer.endElement(HTML.DIV_ELEM);
-            } else {
+            }
+            else
+            {
                 //if the schedule is read-only, the entries should not be
                 //hyperlinks
                 writer.startElement(
-                    schedule.isReadonly() ? HTML.DIV_ELEM : "a", schedule
-                );
+                        schedule.isReadonly() ? HTML.DIV_ELEM : "a", schedule);
 
                 //draw the tooltip
-                if (showTooltip(schedule.getAttributes())) {
-                    writer.writeAttribute(
-                        "onmouseover",
-                        getTooltipText(wrapper.entry, schedule.getAttributes()),
-                        null
-                    );
+                if (showTooltip(schedule))
+                {
+                    writer.writeAttribute("onmouseover", getTooltipText(
+                            wrapper.entry, schedule), null);
                 }
 
-                if (!schedule.isReadonly()) {
+                if (!schedule.isReadonly())
+                {
                     writer.writeAttribute("href", "#", null);
 
                     String clientId = schedule.getClientId(context);
@@ -533,15 +491,13 @@
                     mousedown.append("'; document.forms['");
                     mousedown.append(parentForm.getClientId(context));
                     mousedown.append("'].submit()");
-                    writer.writeAttribute(
-                        "onmousedown", mousedown.toString(), null
-                    );
+                    writer.writeAttribute("onmousedown", mousedown.toString(),
+                            null);
                 }
 
                 writer.writeAttribute(HTML.CLASS_ATTR, "entry", null);
-                writer.writeAttribute(
-                    HTML.STYLE_ATTR, wrapper.getBounds(schedule, columnWidth), null
-                );
+                writer.writeAttribute(HTML.STYLE_ATTR, wrapper.getBounds(
+                        schedule, columnWidth), null);
                 writer.startElement(HTML.SPAN_ELEM, schedule);
                 writer.writeAttribute(HTML.CLASS_ATTR, "title", null);
                 writer.writeText(wrapper.entry.getTitle(), null);
@@ -557,64 +513,56 @@
         }
     }
 
-    private void writeForegroundEnd(
-        FacesContext context,
-        HtmlSchedule schedule,
-        ResponseWriter writer
-    )
-        throws IOException
+    private void writeForegroundEnd(FacesContext context,
+            HtmlSchedule schedule, ResponseWriter writer) throws IOException
     {
         writer.endElement(HTML.TR_ELEM);
         writer.endElement(HTML.TABLE_ELEM);
         writer.endElement(HTML.DIV_ELEM);
     }
 
-    private void writeForegroundStart(
-        FacesContext context,
-        HtmlSchedule schedule,
-        ResponseWriter writer
-    )
-        throws IOException
+    private void writeForegroundStart(FacesContext context,
+            HtmlSchedule schedule, ResponseWriter writer) throws IOException
     {
         writer.startElement(HTML.DIV_ELEM, schedule);
         writer.writeAttribute(HTML.CLASS_ATTR, "foreground", null);
-        writer.writeAttribute(
-            HTML.STYLE_ATTR,
-            "position: absolute;	left: 0px; top: 0px; width: 100%; height: 100%;	z-index: 2;",
-            null
-        );
+        writer
+                .writeAttribute(
+                        HTML.STYLE_ATTR,
+                        "position: absolute;	left: 0px; top: 0px; width: 100%; height: 100%;	z-index: 2;",
+                        null);
 
         writer.startElement(HTML.TABLE_ELEM, schedule);
         writer.writeAttribute(HTML.CLASS_ATTR, "foreground", null);
         writer.writeAttribute(HTML.CELLSPACING_ATTR, "1", null);
         writer.writeAttribute(HTML.CELLPADDING_ATTR, "0", null);
-        writer.writeAttribute(HTML.STYLE_ATTR, "width: 100%; height: 100%", null);
+        writer.writeAttribute(HTML.STYLE_ATTR, "width: 100%; height: 100%",
+                null);
         writer.startElement(HTML.TR_ELEM, schedule);
         writer.startElement(HTML.TD_ELEM, schedule);
         writer.startElement(HTML.DIV_ELEM, schedule);
-        writer.writeAttribute(HTML.STYLE_ATTR, "height: 1px; width: 56px", null);
+        writer
+                .writeAttribute(HTML.STYLE_ATTR, "height: 1px; width: 56px",
+                        null);
         writer.endElement(HTML.DIV_ELEM);
         writer.endElement(HTML.TD_ELEM);
 
-        float columnWidth =
-            (schedule.getModel().size() == 0) ? 100
-                                              : (100 / schedule.getModel().size());
-
-        for (
-            Iterator dayIterator = schedule.getModel().iterator();
-                dayIterator.hasNext();
-        ) {
+        float columnWidth = (schedule.getModel().size() == 0) ? 100
+                : (100 / schedule.getModel().size());
+
+        for (Iterator dayIterator = schedule.getModel().iterator(); dayIterator
+                .hasNext();)
+        {
             ScheduleDay day = (ScheduleDay) dayIterator.next();
             writer.startElement(HTML.TD_ELEM, schedule);
             writer.writeAttribute(HTML.CLASS_ATTR, "header", null);
-            writer.writeAttribute(
-                HTML.STYLE_ATTR,
-                "height: 31px; border-style: none; border-width: 0px; overflow: hidden;",
-                null
-            );
-            writer.writeAttribute(
-                HTML.WIDTH_ATTR, String.valueOf(columnWidth) + "%", null
-            );
+            writer
+                    .writeAttribute(
+                            HTML.STYLE_ATTR,
+                            "height: 31px; border-style: none; border-width: 0px; overflow: hidden;",
+                            null);
+            writer.writeAttribute(HTML.WIDTH_ATTR, String.valueOf(columnWidth)
+                    + "%", null);
 
             writer.endElement(HTML.TD_ELEM);
         }
@@ -624,15 +572,16 @@
         writer.startElement(HTML.TR_ELEM, schedule);
         writer.startElement(HTML.TD_ELEM, schedule);
         writer.startElement(HTML.DIV_ELEM, schedule);
-        writer.writeAttribute(HTML.STYLE_ATTR, "height: 1px; width: 56px", null);
+        writer
+                .writeAttribute(HTML.STYLE_ATTR, "height: 1px; width: 56px",
+                        null);
         writer.endElement(HTML.DIV_ELEM);
         writer.endElement(HTML.TD_ELEM);
     }
 
     //~ Inner Classes ----------------------------------------------------------
 
-    private class EntryWrapper
-        implements Comparable
+    private class EntryWrapper implements Comparable
     {
         //~ Static fields/initializers -----------------------------------------
 
@@ -648,10 +597,7 @@
 
         //~ Constructors -------------------------------------------------------
 
-        EntryWrapper(
-            ScheduleEntry entry,
-            ScheduleDay day
-        )
+        EntryWrapper(ScheduleEntry entry, ScheduleDay day)
         {
             this.entry = entry;
             this.day = day;
@@ -675,22 +621,23 @@
          */
         public boolean equals(Object o)
         {
-            if (o instanceof EntryWrapper) {
+            if (o instanceof EntryWrapper)
+            {
                 EntryWrapper other = (EntryWrapper) o;
 
-                boolean returnboolean =
-                	(entry.getStartTime().equals(other.entry.getStartTime())) &&
-                	(entry.getEndTime().equals(other.entry.getEndTime())) &&
-                	(entry.getId().equals(other.entry.getId())) &&
-                	(day.equals(other.day));
+                boolean returnboolean = (entry.getStartTime()
+                        .equals(other.entry.getStartTime()))
+                        && (entry.getEndTime().equals(other.entry.getEndTime()))
+                        && (entry.getId().equals(other.entry.getId()))
+                        && (day.equals(other.day));
                 /*
-                    new EqualsBuilder().append(
-                        entry.getStartTime(), other.entry.getStartTime()
-                    ).append(entry.getEndTime(), other.entry.getEndTime())
-                                       .append(
-                        entry.getId(), other.entry.getId()
-                    ).append(day, other.day).isEquals();
-                */
+                 new EqualsBuilder().append(
+                 entry.getStartTime(), other.entry.getStartTime()
+                 ).append(entry.getEndTime(), other.entry.getEndTime())
+                 .append(
+                 entry.getId(), other.entry.getId()
+                 ).append(day, other.day).isEquals();
+                 */
                 return returnboolean;
             }
 
@@ -702,10 +649,8 @@
          */
         public int hashCode()
         {
-            int returnint = 
-            	entry.getStartTime().hashCode() ^ 
-            	entry.getEndTime().hashCode() ^ 
-            	entry.getId().hashCode();
+            int returnint = entry.getStartTime().hashCode()
+                    ^ entry.getEndTime().hashCode() ^ entry.getId().hashCode();
 
             return returnint;
         }
@@ -720,10 +665,7 @@
          *
          * @return the bounds
          */
-        String getBounds(
-            HtmlSchedule schedule,
-            float columnWidth
-        )
+        String getBounds(HtmlSchedule schedule, float columnWidth)
         {
             float width = (columnWidth * colspan) - 0.5f;
             float left = column * columnWidth;
@@ -744,9 +686,8 @@
             cal.set(Calendar.MILLISECOND, 0);
 
             long visibleStartMillis = cal.getTimeInMillis();
-            startMillis =
-                day.equalsDate(entry.getStartTime())
-                ? Math.max(startMillis, visibleStartMillis) : visibleStartMillis;
+            startMillis = day.equalsDate(entry.getStartTime()) ? Math.max(
+                    startMillis, visibleStartMillis) : visibleStartMillis;
             cal.setTime(entry.getEndTime());
             cal.set(curyear, curmonth, curday);
 
@@ -757,14 +698,11 @@
             cal.set(Calendar.MILLISECOND, 0);
 
             long visibleEndMillis = cal.getTimeInMillis();
-            endMillis =
-                day.equalsDate(entry.getEndTime())
-                ? Math.min(endMillis, visibleEndMillis) : visibleEndMillis;
-
-            int top =
-                (int) (((startMillis - visibleStartMillis) * rowHeightInPixels) / HALF_HOUR);
-            int height =
-                (int) (((endMillis - startMillis) * rowHeightInPixels) / HALF_HOUR);
+            endMillis = day.equalsDate(entry.getEndTime()) ? Math.min(
+                    endMillis, visibleEndMillis) : visibleEndMillis;
+
+            int top = (int) (((startMillis - visibleStartMillis) * rowHeightInPixels) / HALF_HOUR);
+            int height = (int) (((endMillis - startMillis) * rowHeightInPixels) / HALF_HOUR);
             StringBuffer buffer = new StringBuffer();
             buffer.append("position: absolute; height: ");
             buffer.append(height);
@@ -774,9 +712,8 @@
             buffer.append(left);
             buffer.append("%; width: ");
             buffer.append(width);
-            buffer.append(
-                "%; padding: 0px; overflow: hidden; border-width: 1.0px; border-style:solid;"
-            );
+            buffer
+                    .append("%; padding: 0px; overflow: hidden; border-width: 1.0px; border-style:solid;");
 
             return buffer.toString();
         }
@@ -792,13 +729,13 @@
          */
         boolean canFitInColumn(int column)
         {
-            for (
-                Iterator overlapIterator = overlappingEntries.iterator();
-                    overlapIterator.hasNext();
-            ) {
+            for (Iterator overlapIterator = overlappingEntries.iterator(); overlapIterator
+                    .hasNext();)
+            {
                 EntryWrapper overlap = (EntryWrapper) overlapIterator.next();
 
-                if (overlap.column == column) {
+                if (overlap.column == column)
+                {
                     return false;
                 }
             }
@@ -817,13 +754,14 @@
          */
         boolean overlaps(EntryWrapper other)
         {
-            if ((entry.getStartTime() == null) || (entry.getEndTime() == null)) {
+            if ((entry.getStartTime() == null) || (entry.getEndTime() == null))
+            {
                 return false;
             }
 
-            boolean returnboolean =
-                (entry.getStartTime().before(other.entry.getEndTime()) &&
-                entry.getEndTime().after(other.entry.getStartTime()));
+            boolean returnboolean = (entry.getStartTime().before(
+                    other.entry.getEndTime()) && entry.getEndTime().after(
+                    other.entry.getStartTime()));
 
             return returnboolean;
         }

Added: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/default.css
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/default.css?rev=225754&view=auto
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/default.css (added)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/default.css Thu Jul 28 04:53:37 2005
@@ -0,0 +1,294 @@
+/* This is the default theme for the schedule and planner components */
+
+/* PART I: Detailed Day Renderer */
+
+div.schedule-detailed {
+ 	border-style: solid;
+	border-width: 1px;
+	border-color: rgb(163,177,140);
+	position: relative;
+	width: 100%;
+	left: 0px;
+    right: 0px;
+}
+
+div.schedule-detailed table.background {
+    background-color: rgb(255,255,255);
+}
+
+div.schedule-detailed td.gutter {
+    background-color: rgb(205,214,198);
+    color: rgb(0,0,0);
+    text-align: right;
+    vertical-align: top;
+}
+
+div.schedule-detailed table.background td.header, div.schedule-detailed table.foreground td.header {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    color: rgb(0,0,0);
+    text-align: center;
+    vertical-align: middle;
+}
+
+div.schedule-detailed table.background td.header {
+    background-color: rgb(205,214,198);
+}
+
+div.schedule-detailed td.header span.date, div.schedule-detailed td.header span.holiday {
+  text-align: center;
+}
+
+div.schedule-detailed td.header span.date {
+}
+
+div.schedule-detailed td.header span.holiday {
+}
+
+div.schedule-detailed td.gutter span.hours {
+    font-size: 26px;
+}
+
+div.schedule-detailed td.gutter span.minutes {
+    font-size: 13px;
+}
+
+div.schedule-detailed table.background td.even,
+div.schedule-detailed table.background td.uneven,
+div.schedule-detailed table.background td.free {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    text-align: center;
+}
+
+div.schedule-detailed table.background td.uneven {
+    background-color: rgb(240,244,233);
+    color: rgb(240,244,233);
+}
+
+div.schedule-detailed table.background td.even {
+    background-color: rgb(235,239,228);
+    color: rgb(235,239,228);
+}
+
+div.schedule-detailed table.background td.free {
+	background-color: rgb(215,219,208);
+	color: rgb(215,219,208);
+}
+
+div.schedule-detailed .entry, div.schedule-detailed div.entry-selected {
+  background-color: rgb(255,255,255);
+  text-align: center;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+  vertical-align: middle;
+  border-color: rgb(0,0,0);
+  text-decoration: none;
+}
+
+div.schedule-detailed a.entry:hover,
+div.schedule-detailed div.entry-selected {
+  border-color: rgb(153,204,51);
+}
+
+div.schedule-detailed div.entry-selected div.text {
+  border-left: solid rgb(153,204,51) 5.0px;
+}
+
+div.schedule-detailed .entry span.subtitle,
+div.schedule-detailed .entry-selected span.subtitle {
+	font-style: italic;
+	font-size: 9px;
+}
+
+div.schedule-detailed .entry span.title,
+div.schedule-detailed .entry-selected span.title {
+	font-size: 11px;
+}
+
+
+
+/* PART II: Compact Renderer */
+div.schedule-compact {
+	position: relative;
+	width: 100%;
+	left: 0px;
+	background-color: rgb(163,177,140);
+}
+
+div.schedule-compact table.day {
+  background-color: rgb(255,255,255);
+}
+
+div.schedule-compact table.day td.header {
+  background-color: rgb(205,214,198);
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 10px;
+  color: rgb(0,0,0);
+  text-align: left;
+  vertical-align: middle;
+}
+
+div.schedule-compact td.content div {
+}
+
+div.schedule-compact td.content td {
+  background-color: rgb(255,255,255);
+  color: rgb(0,0,0);
+  text-align: left;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+  padding: 1px;
+  border-color: rgb(255,255,255);
+  border-width: 1.0px;
+  border-style: solid;  
+}
+
+div.schedule-compact a {
+  text-decoration: none;
+  color: rgb(0,0,0);
+  text-align: left;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+}
+
+div.schedule-compact td.content td.selected {
+  background-color: rgb(153,204,51);
+  border-color: rgb(153,204,51);
+}
+
+div.schedule-compact td.inactive-day td.content {
+  background-color: rgb(205,214,198);
+  visibility: visible;
+}
+
+div.schedule-compact td.inactive-day td.header {
+  background-color: rgb(205,214,198);
+  visibility: visible;
+}
+
+
+
+/* Part III: Planner renderer */
+div.planner {
+ 	border-style: solid;
+	border-width: 1px;
+	border-color: rgb(163,177,140);
+	position: relative;
+	width: 100%;
+	left: 0px;
+}
+
+div.planner table.background {
+    background-color: rgb(255,255,255);
+}
+
+div.planner div.background td.gutter, div.planner div.foreground td.gutter {
+    color: rgb(0,0,0);
+    text-align: right;
+}
+
+div.planner div.background td.gutter {
+    background-color: rgb(205,214,198);
+}
+
+
+div.planner div.background td.header, div.planner div.foreground td.header, div.planner div.background td.hours {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    color: rgb(0,0,0);
+    text-align: center;
+    vertical-align: middle;
+    border-style: none;
+    border-width: 0px;
+}
+
+div.planner div.background td.hours {
+	border-color: rgb(255,255,255);
+    background-color: rgb(205,214,198);
+}
+
+div.planner div.foreground td.hours {
+    text-align: center;
+    vertical-align: middle;
+}
+
+div.planner div.background td.header {
+    background-color: rgb(205,214,198);
+}
+
+div.planner div.background div.header span.date {
+  text-align: left;
+  font-weight: bold;
+  vertical-align: top;
+}
+
+div.planner div.background div.header span.holiday {
+  text-align: left;
+  vertical-align: top;
+}
+
+div.planner div.background div.header span.hours {
+  text-align: left;
+  vertical-align: middle;
+}
+
+div.planner td.gutter span.title {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    vertical-align: middle;
+    padding: 1px;
+    font-size: 10px;
+    font-weight: bold;
+}
+
+div.planner td.even, div.planner td.uneven, div.planner td.free {
+    border-color : rgb(255,255,255);
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    text-align: center;
+}
+
+div.planner td.uneven {
+    background-color: rgb(240,244,233);
+    color: rgb(240,244,233);
+}
+
+div.planner td.even {
+    background-color: rgb(235,239,228);
+    color: rgb(235,239,228);
+}
+
+div.planner td.free {
+	background-color: rgb(215,219,208);
+	color: rgb(215,219,208);
+}
+
+div.planner table.foreground td.row {
+  border-color: rgb(255,255,255);
+}
+
+div.planner div.row div.entry {
+  background-color: rgb(0,0,255);
+  vertical-align: middle;
+  text-decoration: none;
+}
+
+
+
+/* PART IV: Tooltips */
+div.domTT {
+    border: 1px solid #333366;
+    background-color: #333366;
+}
+div.domTT .caption {
+    font-family: Verdana, Helvetica;
+    font-size: 10px;
+    font-weight: bold;
+    color: #FFFFFF;
+}
+div.domTT .contents {
+    font-size: 10px;
+    font-family: Verdana, Helvetica;
+    padding: 2px;
+    background-color: #F1F1FF;
+}

Added: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/evolution.css
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/evolution.css?rev=225754&view=auto
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/evolution.css (added)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/evolution.css Thu Jul 28 04:53:37 2005
@@ -0,0 +1,297 @@
+/* This is the evolution theme for the schedule and planner components */
+
+/* PART I: Detailed Day Renderer */
+
+div.schedule-detailed {
+ 	border-style: solid;
+	border-width: 1px;
+	border-color: rgb(255,255,255);
+	position: relative;
+	width: 100%;
+	left: 0px;
+    right: 0px;
+}
+
+div.schedule-detailed table.background {
+    background-color: rgb(172,172,172);
+}
+
+div.schedule-detailed td.gutter {
+    background-color: rgb(246,246,246);
+    color: rgb(0,0,0);
+    text-align: right;
+    vertical-align: top;
+}
+
+div.schedule-detailed table.background td.header, div.schedule-detailed table.foreground td.header {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    color: rgb(0,0,0);
+    text-align: center;
+    vertical-align: middle;
+}
+
+div.schedule-detailed table.background td.header {
+    background-color: rgb(246,246,246);
+}
+
+div.schedule-detailed td.header span.date, div.schedule-detailed td.header span.holiday {
+  text-align: center;
+}
+
+div.schedule-detailed td.header span.date {
+}
+
+div.schedule-detailed td.header span.holiday {
+}
+
+div.schedule-detailed td.gutter span.hours {
+    font-size: 26px;
+}
+
+div.schedule-detailed td.gutter span.minutes {
+    font-size: 13px;
+}
+
+div.schedule-detailed table.background td.even,
+div.schedule-detailed table.background td.uneven,
+div.schedule-detailed table.background td.free {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    text-align: center;
+}
+
+div.schedule-detailed table.background td.uneven {
+    background-color: rgb(255,255,255);
+    color: rgb(255,255,255);
+}
+
+div.schedule-detailed table.background td.even {
+    background-color: rgb(255,255,255);
+    color: rgb(255,255,255);
+}
+
+div.schedule-detailed table.background td.free {
+	background-color: rgb(217,217,217);
+	color: rgb(217,217,217);
+}
+
+div.schedule-detailed .entry, div.schedule-detailed div.entry-selected {
+  background-color: rgb(190,206,221);
+  text-align: center;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+  vertical-align: middle;
+  border-color: rgb(172,172,172);
+  text-decoration: none;
+}
+
+div.schedule-detailed a.entry:hover,
+div.schedule-detailed div.entry-selected {
+  border-color: rgb(100,132,164);
+}
+
+div.schedule-detailed div.entry-selected div.text {
+  border-left: solid rgb(100,132,164) 5.0px;
+}
+
+div.schedule-detailed .entry span.subtitle,
+div.schedule-detailed .entry-selected span.subtitle {
+	font-style: italic;
+	font-size: 9px;
+}
+
+div.schedule-detailed .entry span.title,
+div.schedule-detailed .entry-selected span.title {
+	font-size: 11px;
+}
+
+
+
+/* PART II: Compact Renderer */
+div.schedule-compact {
+	position: relative;
+	width: 100%;
+	left: 0px;
+    background-color: rgb(172,172,172);
+}
+
+div.schedule-compact table.day {
+  background-color: rgb(255,255,255);
+}
+
+div.schedule-compact table.day td.header {
+  background-color: rgb(255,255,255);
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 10px;
+  color: rgb(0,0,0);
+  text-align: left;
+  vertical-align: middle;
+  border-bottom-color: rgb(172,172,172);
+  border-bottom-style: solid;
+  border-bottom-width: 1px;
+}
+
+div.schedule-compact td.content div {
+}
+
+div.schedule-compact td.content td {
+  background-color: rgb(255,255,255);
+  color: rgb(0,0,0);
+  text-align: left;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+  padding: 1px;
+  border-color: rgb(255,255,255);
+  border-width: 1.0px;
+  border-style: solid;  
+}
+
+div.schedule-compact a {
+  text-decoration: none;
+  color: rgb(0,0,0);
+  text-align: left;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+}
+
+div.schedule-compact td.content td.selected {
+  background-color: rgb(190,206,221);
+  border-color: rgb(190,206,221);
+}
+
+div.schedule-compact td.inactive-day td.content {
+  background-color: rgb(238,235,231);
+  visibility: visible;
+}
+
+div.schedule-compact td.inactive-day td.header {
+  background-color: rgb(238,235,231);
+  visibility: visible;
+}
+
+
+
+/* Part III: Planner renderer */
+div.planner {
+ 	border-style: solid;
+	border-width: 1px;
+    border-color: rgb(255,255,255);
+	position: relative;
+	width: 100%;
+	left: 0px;
+}
+
+div.planner table.background {
+    background-color: rgb(172,172,172);
+}
+
+div.planner div.background td.gutter, div.planner div.foreground td.gutter {
+    color: rgb(0,0,0);
+    text-align: right;
+}
+
+div.planner div.background td.gutter {
+    background-color: rgb(246,246,246);
+}
+
+
+div.planner div.background td.header, div.planner div.foreground td.header, div.planner div.background td.hours {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    color: rgb(0,0,0);
+    text-align: center;
+    vertical-align: middle;
+    border-style: none;
+    border-width: 0px;
+}
+
+div.planner div.background td.hours {
+	border-color: rgb(246,246,246);
+    background-color: rgb(246,246,246);
+}
+
+div.planner div.foreground td.hours {
+    text-align: center;
+    vertical-align: middle;
+}
+
+div.planner div.background td.header {
+    background-color: rgb(246,246,246);
+}
+
+div.planner div.background div.header span.date {
+  text-align: left;
+  font-weight: bold;
+  vertical-align: top;
+}
+
+div.planner div.background div.header span.holiday {
+  text-align: left;
+  vertical-align: top;
+}
+
+div.planner div.background div.header span.hours {
+  text-align: left;
+  vertical-align: middle;
+}
+
+div.planner td.gutter span.title {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    vertical-align: middle;
+    padding: 1px;
+    font-size: 10px;
+    font-weight: bold;
+}
+
+div.planner td.even, div.planner td.uneven, div.planner td.free {
+    border-color : rgb(255,255,255);
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    text-align: center;
+}
+
+div.planner td.uneven {
+    background-color: rgb(255,255,255);
+    color: rgb(255,255,255);
+}
+
+div.planner td.even {
+    background-color: rgb(255,255,255);
+    color: rgb(255,255,255);
+}
+
+div.planner td.free {
+	background-color: rgb(217,217,217);
+	color: rgb(217,217,217);
+}
+
+div.planner table.foreground td.row {
+  border-color: rgb(255,255,255);
+}
+
+div.planner div.row div.entry {
+  background-color: rgb(190,206,221);
+  vertical-align: middle;
+  text-decoration: none;
+}
+
+
+
+/* PART IV: Tooltips */
+div.domTT {
+    border: 1px solid #333366;
+    background-color: #333366;
+}
+div.domTT .caption {
+    font-family: Verdana, Helvetica;
+    font-size: 10px;
+    font-weight: bold;
+    color: #FFFFFF;
+}
+div.domTT .contents {
+    font-size: 10px;
+    font-family: Verdana, Helvetica;
+    padding: 2px;
+    background-color: #F1F1FF;
+}

Added: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/outlookxp.css
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/outlookxp.css?rev=225754&view=auto
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/outlookxp.css (added)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/outlookxp.css Thu Jul 28 04:53:37 2005
@@ -0,0 +1,295 @@
+/* This is the outlookxp theme for the schedule and planner components */
+
+/* PART I: Detailed Day Renderer */
+
+div.schedule-detailed {
+    border-style: solid;
+    border-width: 1px;
+    border-color: rgb(128,128,128);
+    position: relative;
+    width: 100%;
+    left: 0px;
+    right: 0px;
+}
+
+div.schedule-detailed table.background {
+    background-color: rgb(128,128,128);
+}
+
+div.schedule-detailed td.gutter {
+    background-color: rgb(219,216,209);
+    color: rgb(0,0,0);
+    text-align: right;
+    vertical-align: top;
+}
+
+div.schedule-detailed table.background td.header, div.schedule-detailed table.foreground td.header {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    color: rgb(0,0,0);
+    text-align: center;
+    vertical-align: middle;
+}
+
+div.schedule-detailed table.background td.header {
+    background-color: rgb(219,216,209);
+}
+
+div.schedule-detailed td.header span.date, div.schedule-detailed td.header span.holiday {
+  text-align: center;
+}
+
+div.schedule-detailed td.header span.date {
+}
+
+div.schedule-detailed td.header span.holiday {
+}
+
+div.schedule-detailed td.gutter span.hours {
+    font-size: 26px;
+}
+
+div.schedule-detailed td.gutter span.minutes {
+    font-size: 13px;
+}
+
+div.schedule-detailed table.background td.even,
+div.schedule-detailed table.background td.uneven,
+div.schedule-detailed table.background td.free {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    text-align: center;
+}
+
+div.schedule-detailed table.background td.uneven {
+    background-color: rgb(255,255,143);
+    color: rgb(255,255,143);
+}
+
+div.schedule-detailed table.background td.even {
+    background-color: rgb(255,255,143);
+    color: rgb(255,255,143);
+}
+
+div.schedule-detailed table.background td.free {
+    background-color: rgb(239,240,112);
+    color: rgb(239,240,112);
+}
+
+div.schedule-detailed .entry, div.schedule-detailed div.entry-selected {
+  background-color: rgb(255,255,255);
+  text-align: center;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+  vertical-align: middle;
+  border-color: rgb(0,0,0);
+  text-decoration: none;
+}
+
+div.schedule-detailed a.entry:hover,
+div.schedule-detailed div.entry-selected {
+  border-color: rgb(1,2,217);
+}
+
+div.schedule-detailed div.entry-selected div.text {
+  border-left: solid rgb(1,2,217) 5.0px;
+}
+
+div.schedule-detailed .entry span.subtitle,
+div.schedule-detailed .entry-selected span.subtitle {
+    font-style: italic;
+    font-size: 9px;
+}
+
+div.schedule-detailed .entry span.title,
+div.schedule-detailed .entry-selected span.title {
+    font-size: 11px;
+}
+
+
+
+/* PART II: Compact Renderer */
+div.schedule-compact {
+    position: relative;
+    width: 100%;
+    left: 0px;
+    background-color: rgb(128,128,128);
+}
+
+div.schedule-compact table.day {
+  background-color: rgb(255,255,255);
+}
+
+div.schedule-compact table.day td.header {
+  background-color: rgb(219,216,209);
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 10px;
+  color: rgb(0,0,0);
+  text-align: left;
+  vertical-align: middle;
+}
+
+div.schedule-compact td.content div {
+}
+
+div.schedule-compact td.content td {
+  background-color: rgb(255,255,255);
+  color: rgb(0,0,0);
+  text-align: left;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+  padding: 1px;
+  border-color: rgb(255,255,255);
+  border-width: 1.0px;
+  border-style: solid;  
+}
+
+div.schedule-compact a {
+  text-decoration: none;
+  color: rgb(0,0,0);
+  text-align: left;
+  font-family: Verdana, Arial, Helvetica, Sans-Serif;
+  font-size: 11px;
+}
+
+div.schedule-compact td.content td.selected {
+  background-color: rgb(1,2,217);
+  border-color: rgb(1,2,217);
+  color: rgb(255,255,255);
+}
+
+div.schedule-compact td.inactive-day td.content {
+  background-color: rgb(219,216,209);
+  visibility: visible;
+}
+
+div.schedule-compact td.inactive-day td.header {
+  background-color: rgb(219,216,209);
+  visibility: visible;
+}
+
+
+
+/* Part III: Planner renderer */
+div.planner {
+    border-style: solid;
+    border-width: 1px;
+    border-color: rgb(128,128,128);
+    position: relative;
+    width: 100%;
+    left: 0px;
+}
+
+div.planner table.background {
+    border-color: rgb(128,128,128);
+}
+
+div.planner div.background td.gutter, div.planner div.foreground td.gutter {
+    color: rgb(0,0,0);
+    text-align: right;
+}
+
+div.planner div.background td.gutter {
+    background-color: rgb(219,216,209);
+}
+
+
+div.planner div.background td.header, div.planner div.foreground td.header, div.planner div.background td.hours {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    color: rgb(0,0,0);
+    text-align: center;
+    vertical-align: middle;
+    border-style: none;
+    border-width: 0px;
+}
+
+div.planner div.background td.hours {
+    border-color: rgb(255,255,255);
+    background-color: rgb(219,216,209);
+}
+
+div.planner div.foreground td.hours {
+    text-align: center;
+    vertical-align: middle;
+}
+
+div.planner div.background td.header {
+    background-color: rgb(219,216,209);
+}
+
+div.planner div.background div.header span.date {
+  text-align: left;
+  font-weight: bold;
+  vertical-align: top;
+}
+
+div.planner div.background div.header span.holiday {
+  text-align: left;
+  vertical-align: top;
+}
+
+div.planner div.background div.header span.hours {
+  text-align: left;
+  vertical-align: middle;
+}
+
+div.planner td.gutter span.title {
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    vertical-align: middle;
+    padding: 1px;
+    font-size: 10px;
+    font-weight: bold;
+}
+
+div.planner td.even, div.planner td.uneven, div.planner td.free {
+    border-color : rgb(255,255,255);
+    font-family: Verdana, Arial, Helvetica, Sans-Serif;
+    font-size: 10px;
+    text-align: center;
+}
+
+div.planner td.uneven {
+    background-color: rgb(255,255,143);
+    color: rgb(255,255,143);
+}
+
+div.planner td.even {
+    background-color: rgb(255,255,143);
+    color: rgb(255,255,143);
+}
+
+div.planner td.free {
+    background-color: rgb(239,240,112);
+    color: rgb(239,240,112);
+}
+
+div.planner table.foreground td.row {
+  border-color: rgb(255,255,255);
+}
+
+div.planner div.row div.entry {
+  background-color: rgb(1,2,255);
+  vertical-align: middle;
+  text-decoration: none;
+}
+
+
+
+/* PART IV: Tooltips */
+div.domTT {
+    border: 1px solid #333366;
+    background-color: #333366;
+}
+div.domTT .caption {
+    font-family: Verdana, Helvetica;
+    font-size: 10px;
+    font-weight: bold;
+    color: #FFFFFF;
+}
+div.domTT .contents {
+    font-size: 10px;
+    font-family: Verdana, Helvetica;
+    padding: 2px;
+    background-color: #F1F1FF;
+}

Modified: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/schedule.css
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/schedule.css?rev=225754&r1=225753&r2=225754&view=diff
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/schedule.css (original)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/schedule/resource/css/schedule.css Thu Jul 28 04:53:37 2005
@@ -1,3 +1,5 @@
+/* This is the default theme for the schedule and planner components */
+
 /* PART I: Detailed Day Renderer */
 
 div.schedule-detailed {
@@ -7,6 +9,7 @@
 	position: relative;
 	width: 100%;
 	left: 0px;
+    right: 0px;
 }
 
 div.schedule-detailed table.background {