You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2007/05/02 17:55:36 UTC

svn commit: r534522 - in /myfaces/tobago/trunk: core/src/main/java/org/apache/myfaces/tobago/component/ core/src/main/java/org/apache/myfaces/tobago/renderkit/html/ core/src/test/java/org/apache/myfaces/tobago/renderkit/html/ theme/scarborough/src/main...

Author: lofwyr
Date: Wed May  2 08:55:35 2007
New Revision: 534522

URL: http://svn.apache.org/viewvc?view=rev&rev=534522
Log:
TOBAGO-737: Refatoring: New object StyleClasses to replace the string-replacement-stuff for ATTR_STYLE_CLASS

Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/StyleClasses.java
    myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/renderkit/html/StyleClassesUnitTest.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/MenuBarRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/RichTextEditorRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java Wed May  2 08:55:35 2007
@@ -239,7 +239,7 @@
     image.setRendered(true);
     image.setValue("image/date.gif");
     image.getAttributes().put(ATTR_ALT, ""); //TODO: i18n
-    StyleClasses.ensureStyleClasses(image).addClass("tobago-input-picker");
+    StyleClasses.ensureStyleClasses(image).addFullQualifiedClass("tobago-input-picker"); // XXX not a standard name
     link.getChildren().add(image);
   }
 

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java Wed May  2 08:55:35 2007
@@ -112,7 +112,8 @@
   public static void createCssClass(FacesContext facesContext, UIComponent component) {
     String rendererName = getRendererName(facesContext, component);
     if (rendererName != null) {
-      createClassAttribute(component, rendererName);
+      StyleClasses classes = StyleClasses.ensureStyleClasses(component);
+      classes.updateClassAttribute(rendererName, component);
     }
   }
 
@@ -297,7 +298,7 @@
    */
   @Deprecated
   public static void addCssClass(UIComponent component, String clazz) {
-    StyleClasses.ensureStyleClasses(component).addClass(clazz);
+    StyleClasses.ensureStyleClasses(component).addFullQualifiedClass(clazz);
   }
 
   public static void layoutWidth(FacesContext facesContext, UIComponent component) {
@@ -403,11 +404,6 @@
     }
   }
 
-  private static void createClassAttribute(UIComponent component, String name) {
-    StyleClasses classes = StyleClasses.ensureStyleClasses(component);
-    classes.updateClassAttribute(name, component);
-  }
-
   /**
    * @deprecated Please use StyleClasses.ensureStyleClasses(component).updateClassAttribute(renderer, component);
    */
@@ -422,7 +418,7 @@
 
     if (component instanceof SupportsMarkup) {
       String[] markups = ((SupportsMarkup) component).getMarkup();
-      for (String markup: markups) {
+      for (String markup : markups) {
         Theme theme = ClientProperties.getInstance(FacesContext.getCurrentInstance().getViewRoot()).getTheme();
         if (theme.getRenderersConfig().isMarkupSupported(rendererName, markup)) {
           tobagoClass.append(StyleClasses.PREFIX).append(rendererName).append("-").append(subComponent)
@@ -441,7 +437,7 @@
       for (String markup: markups) {
         Theme theme = ClientProperties.getInstance(FacesContext.getCurrentInstance().getViewRoot()).getTheme();
         if (theme.getRenderersConfig().isMarkupSupported(rendererName, markup)) {
-          classes.addClass(StyleClasses.PREFIX + rendererName + "-markup-" + markup);
+          classes.addMarkupClass(rendererName, markup);
         } else {
           LOG.warn("Unknown markup='" + markup + "'");
         }
@@ -449,21 +445,17 @@
     }
   }
 
-  public static void addImageSources(
-      FacesContext facesContext, ResponseWriter writer, String src, String id)
+  public static void addImageSources(FacesContext facesContext, ResponseWriter writer, String src, String id)
       throws IOException {
     StringBuilder buffer = new StringBuilder();
     buffer.append("new Tobago.Image('");
     buffer.append(id);
     buffer.append("','");
-    buffer.append(ResourceManagerUtil.getImageWithPath(
-        facesContext, src, false));
+    buffer.append(ResourceManagerUtil.getImageWithPath(facesContext, src, false));
     buffer.append("','");
-    buffer.append(ResourceManagerUtil.getImageWithPath(
-        facesContext, createSrc(src, "Disabled"), true));
+    buffer.append(ResourceManagerUtil.getImageWithPath(facesContext, createSrc(src, "Disabled"), true));
     buffer.append("','");
-    buffer.append(ResourceManagerUtil.getImageWithPath(
-        facesContext, createSrc(src, "Hover"), true));
+    buffer.append(ResourceManagerUtil.getImageWithPath(facesContext, createSrc(src, "Hover"), true));
     buffer.append("');");
     writeJavascript(writer, buffer.toString());
   }

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/StyleClasses.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/StyleClasses.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/StyleClasses.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/StyleClasses.java Wed May  2 08:55:35 2007
@@ -36,13 +36,9 @@
 
 public class StyleClasses implements Serializable {
 
-  public static final String PREFIX = "tobago-";
-  public static final String SUFFIX_DEFAULT = "-default";
-  public static final String SUFFIX_DISABLED = "-disabled";
-  public static final String SUFFIX_READONLY = "-readonly";
-  public static final String SUFFIX_INLINE = "-inline";
-  public static final String SUFFIX_ERROR = "-error";
-  public static final String SUFFIX_REQUIRED = "-required";
+  public static final char SEPERATOR = '-';
+  public static final String PREFIX = "tobago" + SEPERATOR;
+  public static final String MARKUP = SEPERATOR + "markup" + SEPERATOR;
 
   private ListOrderedSet classes;
 
@@ -69,10 +65,66 @@
     return new StyleClasses(ensureStyleClasses(component));
   }
 
-  public void addClass(String clazz) {
+  @Deprecated
+  public void addFullQualifiedClass(String clazz) {
     classes.add(clazz);
   }
 
+  public void addClass(String renderer, String sub) {
+    StringBuilder builder = new StringBuilder();
+    builder.append(PREFIX);
+    builder.append(renderer);
+    builder.append(SEPERATOR);
+    builder.append(sub);
+    classes.add(builder.toString());
+  }
+
+  public void addMarkupClass(String renderer, String markup) {
+    StringBuilder builder = new StringBuilder();
+    builder.append(PREFIX);
+    builder.append(renderer);
+    builder.append(MARKUP);
+    builder.append(markup);
+    classes.add(builder.toString());
+  }
+
+  public void addMarkupClass(String renderer, String sub, String markup) {
+    StringBuilder builder = new StringBuilder();
+    builder.append(PREFIX);
+    builder.append(renderer);
+    builder.append(SEPERATOR);
+    builder.append(sub);
+    builder.append(MARKUP);
+    builder.append(markup);
+    classes.add(builder.toString());
+  }
+
+  public void addAspectClass(String renderer, Aspect aspect) {
+    StringBuilder builder = new StringBuilder();
+    builder.append(PREFIX);
+    builder.append(renderer);
+    builder.append(aspect);
+    classes.add(builder.toString());
+  }
+
+  public void removeAspectClass(String renderer, Aspect aspect) {
+    StringBuilder builder = new StringBuilder();
+    builder.append(PREFIX);
+    builder.append(renderer);
+    builder.append(aspect);
+    classes.remove(builder.toString());
+  }
+
+  public void addAspectClass(String renderer, String sub, Aspect aspect) {
+    StringBuilder builder = new StringBuilder();
+    builder.append(PREFIX);
+    builder.append(renderer);
+    builder.append(SEPERATOR);
+    builder.append(sub);
+    builder.append(aspect);
+    classes.add(builder.toString());
+  }
+
   public void addClasses(StyleClasses styleClasses) {
     for (String clazz : (Iterable<String>) styleClasses.classes) {
       classes.add(clazz);
@@ -96,24 +148,23 @@
     // first remove old tobago-<rendererName>-<type> classes from class-attribute
     removeTobagoClasses(rendererName);
 
-    StringBuilder prefix = new StringBuilder(PREFIX).append(rendererName);
-    addClass(prefix + SUFFIX_DEFAULT);
+    addAspectClass(rendererName, Aspect.DEFAULT);
     if (ComponentUtil.getBooleanAttribute(component, ATTR_DISABLED)) {
-      addClass(prefix + SUFFIX_DISABLED);
+      addAspectClass(rendererName, Aspect.DISABLED);
     }
     if (ComponentUtil.getBooleanAttribute(component, ATTR_READONLY)) {
-      addClass(prefix + SUFFIX_READONLY);
+      addAspectClass(rendererName, Aspect.READONLY);
     }
     if (ComponentUtil.getBooleanAttribute(component, ATTR_INLINE)) {
-      addClass(prefix + SUFFIX_INLINE);
+      addAspectClass(rendererName, Aspect.INLINE);
     }
     if (component instanceof UIInput) {
       UIInput input = (UIInput) component;
       if (ComponentUtil.isError(input)) {
-        addClass(prefix + SUFFIX_ERROR);
+        addAspectClass(rendererName, Aspect.ERROR);
       }
       if (input.isRequired()) {
-        addClass(prefix + SUFFIX_REQUIRED);
+        addAspectClass(rendererName, Aspect.REQUIRED);
       }
     }
 
@@ -131,5 +182,26 @@
       }
     }
     return buffer.toString();
+  }
+
+  public enum Aspect {
+
+    DEFAULT,
+    DISABLED,
+    READONLY,
+    INLINE,
+    ERROR,
+    REQUIRED;
+
+    private String aspect;
+
+    Aspect() {
+      aspect = '-' + name().toLowerCase();
+    }
+
+    @Override
+    public String toString() {
+      return aspect;
+    }
   }
 }

Modified: myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/renderkit/html/StyleClassesUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/renderkit/html/StyleClassesUnitTest.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/renderkit/html/StyleClassesUnitTest.java (original)
+++ myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/renderkit/html/StyleClassesUnitTest.java Wed May  2 08:55:35 2007
@@ -27,18 +27,18 @@
 
   public void testRemoveOneMatch() {
     StyleClasses c = new StyleClasses();
-    c.addClass("bla");
-    c.addClass("tobago-test-inline");
-    c.addClass("blupp");
+    c.addFullQualifiedClass("bla");
+    c.addFullQualifiedClass("tobago-test-inline");
+    c.addFullQualifiedClass("blupp");
     c.removeTobagoClasses("test");
     assertEquals("bla blupp", c.toString());
   }
 
   public void testRemoveNoMatch() {
     StyleClasses c = new StyleClasses();
-    c.addClass("bla");
-    c.addClass("tobago-test-inline");
-    c.addClass("blupp");
+    c.addFullQualifiedClass("bla");
+    c.addFullQualifiedClass("tobago-test-inline");
+    c.addFullQualifiedClass("blupp");
     c.removeTobagoClasses("no");
     assertEquals("bla tobago-test-inline blupp", c.toString());
   }
@@ -48,4 +48,29 @@
     c.removeTobagoClasses("no");
     assertEquals("", c.toString());
   }
+
+  public void testAddMarkupClass() {
+    StyleClasses c = new StyleClasses();
+    c.addMarkupClass("myComponent", "big");
+    assertEquals("tobago-myComponent-markup-big", c.toString());
+  }
+
+  public void testAddMarkupClassSub() {
+    StyleClasses c = new StyleClasses();
+    c.addMarkupClass("myComponent", "mySub", "big");
+    assertEquals("tobago-myComponent-mySub-markup-big", c.toString());
+  }
+
+  public void testAddAspectClass() {
+    StyleClasses c = new StyleClasses();
+    c.addAspectClass("myComponent", StyleClasses.Aspect.DISABLED);
+    assertEquals("tobago-myComponent-disabled", c.toString());
+  }
+
+  public void testAddAspectClassSub() {
+    StyleClasses c = new StyleClasses();
+    c.addAspectClass("myComponent", "mySub", StyleClasses.Aspect.DISABLED);
+    assertEquals("tobago-myComponent-mySub-disabled", c.toString());
+  }
+
 }

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/GridLayoutRenderer.java Wed May  2 08:55:35 2007
@@ -296,10 +296,10 @@
             int spanY = UIGridLayout.getSpanY(cell);
             StyleClasses classes = StyleClasses.ensureStyleClassesCopy(layout);
             if (rowIndex == 0) {
-              classes.addClass("tobago-gridLayout-first-row");
+              classes.addClass("gridLayout", "first-row"); // XXX not a standard compliant name
             }
             if (columnIndex == 0) {
-              classes.addClass("tobago-gridLayout-first-column");
+              classes.addClass("gridLayout", "first-column"); // XXX not a standard compliant name
             }
 
             int cellWidth = -1;

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java Wed May  2 08:55:35 2007
@@ -128,7 +128,7 @@
         && ComponentUtil.getBooleanAttribute(component, ATTR_REQUIRED)) {
       StyleClasses styleClasses = StyleClasses.ensureStyleClasses(component);
       String rendererName = HtmlRendererUtil.getRendererName(facesContext, component);
-      styleClasses.removeClass(StyleClasses.PREFIX + rendererName + StyleClasses.SUFFIX_REQUIRED);
+      styleClasses.removeAspectClass(rendererName, StyleClasses.Aspect.REQUIRED);
     }
     writer.writeComponentClass();
     if (renderAjaxSuggest) {

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/MenuBarRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/MenuBarRenderer.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/MenuBarRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/MenuBarRenderer.java Wed May  2 08:55:35 2007
@@ -92,7 +92,7 @@
       writer.writeIdAttribute(clientId);
       StyleClasses styleClasses = StyleClasses.ensureStyleClasses(component);
       if (ComponentUtil.getBooleanAttribute(component, ATTR_PAGE_MENU)) {
-        styleClasses.addClass("tobago-menuBar-page-facet");
+        styleClasses.addClass("menuBar", "page-facet"); // XXX not a standard compliant name
       } else {
         writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
       }

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/RichTextEditorRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/RichTextEditorRenderer.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/RichTextEditorRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/RichTextEditorRenderer.java Wed May  2 08:55:35 2007
@@ -112,7 +112,7 @@
     TobagoResponseWriter writer = (TobagoResponseWriter) facesContext.getResponseWriter();
 
     StyleClasses containerClasses = StyleClasses.ensureStyleClassesCopy(component);
-    containerClasses.addClass("tobago-richTextEditor-container");
+    containerClasses.addClass("richTextEditor", "container");
 
     writer.startElement(HtmlConstants.DIV, component);
     writer.writeClassAttribute(containerClasses);
@@ -133,7 +133,7 @@
     String content = getCurrentValue(facesContext, component);
 
     StyleClasses bodyClasses = StyleClasses.ensureStyleClassesCopy(component);
-    bodyClasses.addClass("tobago-richTextEditor-body");
+    bodyClasses.addClass("richTextEditor", "body");
 
     if (previewState) {
       writer.startElement(HtmlConstants.INPUT, component);

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java?view=diff&rev=534522&r1=534521&r2=534522
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java Wed May  2 08:55:35 2007
@@ -360,10 +360,10 @@
         columnIndex++;
 
         StyleClasses tdClass = new StyleClasses();
-        tdClass.addClass("tobago-sheet-cell-td");
+        tdClass.addClass("sheet", "cell-td");// XXX not a standard compliant name
         HtmlRendererUtil.addMarkupClass(column, "column", tdClass);
         if (columnIndex == 0) {
-          tdClass.addClass("tobago-sheet-cell-first-column");
+          tdClass.addClass("sheet", "cell-first-column");// XXX not a standard compliant name
         }
         StyleClasses cellClass = StyleClasses.ensureStyleClasses(column);
         tdClass.addClasses(cellClass);