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 2016/11/26 11:04:51 UTC

svn commit: r1771462 - in /myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal: component/ renderkit/renderer/ taglib/component/ taglib/declaration/

Author: lofwyr
Date: Sat Nov 26 11:04:50 2016
New Revision: 1771462

URL: http://svn.apache.org/viewvc?rev=1771462&view=rev
Log:
TOBAGO-1636: End of theme-dependent resource selection (ResourceManager)
TOBAGO-1503: Optimize the tc:tree Bootstrap implementation

Added:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAlt.java
      - copied, changed from r1771432, myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasTip.java
Modified:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIImage.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ImageRenderer.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ImageTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeIconTagDeclaration.java

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIImage.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIImage.java?rev=1771462&r1=1771461&r2=1771462&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIImage.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIImage.java Sat Nov 26 11:04:50 2016
@@ -27,4 +27,5 @@ public abstract class AbstractUIImage ex
     implements Visual {
 
   public abstract boolean isDisabled();
+  public abstract String getAlt();
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ImageRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ImageRenderer.java?rev=1771462&r1=1771461&r2=1771462&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ImageRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ImageRenderer.java Sat Nov 26 11:04:50 2016
@@ -19,17 +19,16 @@
 
 package org.apache.myfaces.tobago.internal.renderkit.renderer;
 
-import org.apache.myfaces.tobago.component.Attributes;
-import org.apache.myfaces.tobago.context.ResourceManagerUtils;
 import org.apache.myfaces.tobago.internal.component.AbstractUICommandBase;
 import org.apache.myfaces.tobago.internal.component.AbstractUIImage;
+import org.apache.myfaces.tobago.internal.util.HtmlRendererUtils;
+import org.apache.myfaces.tobago.internal.util.StringUtils;
 import org.apache.myfaces.tobago.renderkit.RendererBase;
+import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
 import org.apache.myfaces.tobago.renderkit.css.Classes;
 import org.apache.myfaces.tobago.renderkit.css.FontAwesomeIconEncoder;
 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
 import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
-import org.apache.myfaces.tobago.internal.util.HtmlRendererUtils;
-import org.apache.myfaces.tobago.util.ComponentUtils;
 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
 
 import javax.faces.component.UIComponent;
@@ -45,55 +44,33 @@ public class ImageRenderer extends Rende
 
     final AbstractUIImage image = (AbstractUIImage) component;
     final String value = image.getUrl();
-    final String src;
-    boolean fontAwesome = false;
-    if (value != null) {
-      if (ResourceManagerUtils.isAbsoluteResource(value)) {
-        // absolute Path to image : nothing to do
-        src = value;
-      } else {
-//        final boolean disabled = isDisabled(image);
-        if (ResourceManagerUtils.indexOfExtension(value) > -1) { // has extension
-          src = value;
-// XXX RM         src = ResourceManagerUtils.getImageOrDisabledImageWithPath(facesContext, value, disabled);
-        } else if (value.startsWith("fa-")) {
-          fontAwesome = true;
-          src = null;
-        } else {
-          src = value;
-// XXX RM         src = ResourceManagerUtils.getImageOrDisabledImage(facesContext, value, disabled);
-        }
-      }
-    } else {
-      src = null;
-    }
-
-    final String alt = ComponentUtils.getStringAttribute(image, Attributes.alt, "");
-
+    boolean fontAwesome = StringUtils.startsWith(value, "fa-");
     if (fontAwesome) {
       // todo: should not be static
       writer.writeIcon(null, image.getStyle(), FontAwesomeIconEncoder.generateClass(value));
     } else {
+      final String alt = image.getAlt();
       writer.startElement(HtmlElements.IMG);
       writer.writeIdAttribute(image.getClientId(facesContext));
       HtmlRendererUtils.writeDataAttributes(facesContext, writer, image);
-      if (src != null) {
-        writer.writeAttribute(HtmlAttributes.SRC, src, true);
-      }
-      writer.writeAttribute(HtmlAttributes.ALT, alt, true);
+      writer.writeAttribute(HtmlAttributes.SRC, value, true);
+      writer.writeAttribute(HtmlAttributes.ALT, alt != null ? alt : "", true);
       final String title = HtmlRendererUtils.getTitleFromTipAndMessages(facesContext, image);
       if (title != null) {
         writer.writeAttribute(HtmlAttributes.TITLE, title, true);
       }
-      writer.writeClassAttribute(Classes.create(image), image.getCustomClass());
+      writer.writeClassAttribute(
+          Classes.create(image),
+          isDisabled(image) ? BootstrapClass.DISABLED : null,
+          image.getCustomClass());
       writer.writeStyleAttribute(image.getStyle());
       writer.endElement(HtmlElements.IMG);
     }
   }
 
-  private boolean isDisabled(final AbstractUIImage graphic) {
-    return graphic.isDisabled()
-        || (graphic.getParent() instanceof AbstractUICommandBase
-        && ((AbstractUICommandBase) graphic.getParent()).isDisabled());
+  private boolean isDisabled(final AbstractUIImage image) {
+    return image.isDisabled()
+        || (image.getParent() instanceof AbstractUICommandBase
+        && ((AbstractUICommandBase) image.getParent()).isDisabled());
   }
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ImageTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ImageTagDeclaration.java?rev=1771462&r1=1771461&r2=1771462&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ImageTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ImageTagDeclaration.java Sat Nov 26 11:04:50 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
 import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAlt;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
 import org.apache.myfaces.tobago.internal.taglib.declaration.IsDisabled;
@@ -43,7 +44,7 @@ import javax.faces.component.UIGraphic;
     rendererType = RendererTypes.IMAGE,
     allowedChildComponenents = "NONE")
 public interface ImageTagDeclaration
-    extends HasIdBindingAndRendered, HasTip, IsDisabled, IsVisual {
+    extends HasIdBindingAndRendered, HasTip, IsDisabled, IsVisual, HasAlt {
 
   /**
    * Absolute url to an image or image name to lookup in tobago resource path.
@@ -54,11 +55,4 @@ public interface ImageTagDeclaration
   @UIComponentTagAttribute()
   void setValue(String value);
 
-  /**
-   * Alternate textual description of the image rendered by this component.
-   */
-  @TagAttribute
-  @UIComponentTagAttribute()
-  void setAlt(String alt);
-
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeIconTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeIconTagDeclaration.java?rev=1771462&r1=1771461&r2=1771462&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeIconTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeIconTagDeclaration.java Sat Nov 26 11:04:50 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
 import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAlt;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
 import org.apache.myfaces.tobago.internal.taglib.declaration.IsDisabled;
@@ -42,7 +43,7 @@ import javax.faces.component.UIGraphic;
     componentFamily = UIGraphic.COMPONENT_FAMILY,
     rendererType = RendererTypes.TREE_ICON,
     allowedChildComponenents = "NONE")
-public interface TreeIconTagDeclaration extends HasIdBindingAndRendered, HasTip, IsDisabled, IsVisual {
+public interface TreeIconTagDeclaration extends HasIdBindingAndRendered, HasTip, IsDisabled, IsVisual, HasAlt {
 
   /**
    * Name of the icon.

Copied: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAlt.java (from r1771432, myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasTip.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAlt.java?p2=myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAlt.java&p1=myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasTip.java&r1=1771432&r2=1771462&rev=1771462&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasTip.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAlt.java Sat Nov 26 11:04:50 2016
@@ -22,11 +22,11 @@ package org.apache.myfaces.tobago.intern
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
 
-public interface HasTip {
+public interface HasAlt {
   /**
-   * Text value to display as tooltip.
+   * Alternate textual description of the image rendered by this component.
    */
   @TagAttribute
   @UIComponentTagAttribute()
-  void setTip(String tip);
+  void setAlt(String alt);
 }