You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by jw...@apache.org on 2013/02/04 21:57:30 UTC
svn commit: r1442351 - in /myfaces/trinidad/trunk:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/skin/
trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/
trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/p...
Author: jwaldman
Date: Mon Feb 4 20:57:29 2013
New Revision: 1442351
URL: http://svn.apache.org/viewvc?rev=1442351&view=rev
Log:
TRINIDAD-2358 add "features" support in the trinidad-skins to the "skin-addition" node
thanks to Gary VanMatre for the patch
Modified:
myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/skin/SkinAddition.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinUtils.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNode.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNodeParser.java
myfaces/trinidad/trunk/trinidad-impl/src/main/resources/org/apache/myfaces/trinidadinternal/ui/laf/xml/schemas/skin/trinidad-skins.xsd
Modified: myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/skin/SkinAddition.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/skin/SkinAddition.java?rev=1442351&r1=1442350&r2=1442351&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/skin/SkinAddition.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/skin/SkinAddition.java Mon Feb 4 20:57:29 2013
@@ -20,6 +20,8 @@ package org.apache.myfaces.trinidad.skin
import java.util.Collections;
+import java.util.Map;
+
import javax.el.ValueExpression;
import javax.faces.el.ValueBinding;
@@ -65,6 +67,7 @@ public class SkinAddition
_resourceBundleName = resourceBundleName;
_translationSourceVE = null;
_translationSourceVB = null;
+ _skinFeatures = null;
}
/**
@@ -79,6 +82,7 @@ public class SkinAddition
_resourceBundleName = null;
_translationSourceVE = translationSourceValueExpression;
_translationSourceVB = null;
+ _skinFeatures = null;
}
/**
* Constructor takes a styleSheet name. resource bundle name and
@@ -92,6 +96,68 @@ public class SkinAddition
_resourceBundleName = null;
_translationSourceVE = null;
_translationSourceVB = null;
+ _skinFeatures = null;
+ }
+
+ /**
+ * Constructor takes a styleSheet name and a resourceBundle name.
+ */
+ public SkinAddition (
+ String styleSheetName,
+ String resourceBundleName,
+ Map<String, String> features
+ )
+ {
+ _styleSheetName = styleSheetName;
+ _resourceBundleName = resourceBundleName;
+ _translationSourceVE = null;
+ _translationSourceVB = null;
+ _skinFeatures = features;
+ }
+
+ /**
+ * Constructor takes a styleSheet name and a translationSource ValueExpression.
+ */
+ public SkinAddition (
+ String styleSheetName,
+ ValueExpression translationSourceValueExpression,
+ Map<String, String> features
+ )
+ {
+ _styleSheetName = styleSheetName;
+ _resourceBundleName = null;
+ _translationSourceVE = translationSourceValueExpression;
+ _translationSourceVB = null;
+ _skinFeatures = features;
+ }
+ /**
+ * Constructor takes a styleSheet name. resource bundle name and
+ * translation source value expression will be null.
+ */
+ public SkinAddition (
+ String styleSheetName,
+ Map<String, String> features
+ )
+ {
+ _styleSheetName = styleSheetName;
+ _resourceBundleName = null;
+ _translationSourceVE = null;
+ _translationSourceVB = null;
+ _skinFeatures = features;
+ }
+
+ /**
+ * Constructor takes only features.
+ */
+ public SkinAddition (
+ Map<String, String> features
+ )
+ {
+ _styleSheetName = null;
+ _resourceBundleName = null;
+ _translationSourceVE = null;
+ _translationSourceVB = null;
+ _skinFeatures = features;
}
/**
@@ -108,6 +174,7 @@ public class SkinAddition
_resourceBundleName = null;
_translationSourceVE = null;
_translationSourceVB = translationSourceValueBinding;
+ _skinFeatures = null;
}
/**
@@ -150,11 +217,20 @@ public class SkinAddition
public ValueBinding getTranslationSourceValueBinding()
{
return _translationSourceVB;
- }
+ }
+
+ /**
+ * Gets any skin features added through the skin addition
+ */
+ public Map<String, String> getSkinFeatures()
+ {
+ return _skinFeatures;
+ }
private final String _styleSheetName;
private final String _resourceBundleName;
private final ValueExpression _translationSourceVE;
private final ValueBinding _translationSourceVB;
+ private final Map<String, String> _skinFeatures;
}
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java?rev=1442351&r1=1442350&r2=1442351&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java Mon Feb 4 20:57:29 2013
@@ -20,6 +20,7 @@ package org.apache.myfaces.trinidadinter
import java.io.IOException;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.Stack;
@@ -31,6 +32,7 @@ import org.apache.myfaces.trinidad.conte
import org.apache.myfaces.trinidad.context.RenderingContext;
import org.apache.myfaces.trinidad.skin.Skin;
import org.apache.myfaces.trinidad.skin.Icon;
+import org.apache.myfaces.trinidad.skin.SkinAddition;
import org.apache.myfaces.trinidad.skin.SkinVersion;
import org.apache.myfaces.trinidadinternal.skin.icon.ReferenceIcon;
@@ -325,6 +327,19 @@ public class SkinExtension extends SkinI
{
allFeatures.putAll(_skinFeatures);
}
+
+ List<SkinAddition> additions = getSkinAdditions();
+ if(additions != null && additions.size() > 0)
+ {
+ for(SkinAddition addition : additions)
+ {
+ Map<String, String> additionFeatures = addition.getSkinFeatures();
+ if(additionFeatures != null && additionFeatures.size() > 0)
+ {
+ allFeatures.putAll(additionFeatures);
+ }
+ }
+ }
return allFeatures;
}
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinUtils.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinUtils.java?rev=1442351&r1=1442350&r2=1442351&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinUtils.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinUtils.java Mon Feb 4 20:57:29 2013
@@ -828,12 +828,13 @@ public class SkinUtils
String skinId = skinAdditionNode.getSkinId();
String styleSheetName = skinAdditionNode.getStyleSheetName();
String resourceBundleName = skinAdditionNode.getResourceBundleName();
- String translationSourceExpression =
+ String translationSourceExpression =
skinAdditionNode.getTranslationSourceExpression();
-
+ Map<String, String> features = skinAdditionNode.getSkinFeatures();
+ SkinAddition addition = null;
Skin skin = skinFactory.getSkin(fContext, skinId);
- if (skin != null
- && ((styleSheetName != null)
+ if (skin != null
+ && ((styleSheetName != null)
|| (resourceBundleName != null)
|| (translationSourceExpression != null)))
{
@@ -843,13 +844,10 @@ public class SkinUtils
if (isMetaInfFile && (styleSheetName != null))
styleSheetName = _prependMetaInf(styleSheetName);
-
- SkinAddition addition = null;
-
if (resourceBundleName != null)
{
- // create SkinAddition with resourceBundleName
- addition = new SkinAddition(styleSheetName, resourceBundleName);
+ // create SkinAddition with resourceBundleName
+ addition = new SkinAddition(styleSheetName, resourceBundleName, features);
}
else
{
@@ -862,22 +860,25 @@ public class SkinUtils
if (translationSourceVE != null)
{
- // Create a SkinAddition with translationSourceVE
- addition = new SkinAddition(styleSheetName, translationSourceVE);
+ // Create a SkinAddition with translationSourceVE
+ addition = new SkinAddition(styleSheetName, translationSourceVE, features);
}
else
{
- // Create a SkinAddition with stylesheetName only
- addition = new SkinAddition(styleSheetName);
+ // Create a SkinAddition with stylesheetName only
+ addition = new SkinAddition(styleSheetName, features);
}
-
}
-
- skin.addSkinAddition(addition);
}
- }
+ else if(features != null)
+ {
+ addition = new SkinAddition(features);
+ }
+ if(addition != null)
+ skin.addSkinAddition(addition);
+ }
}
/**
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNode.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNode.java?rev=1442351&r1=1442350&r2=1442351&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNode.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNode.java Mon Feb 4 20:57:29 2013
@@ -18,6 +18,8 @@
*/
package org.apache.myfaces.trinidadinternal.skin.parse;
+import java.util.Map;
+
/**
* Object which represents a single <skin-addition> element in trinidad-skins.xml.
*
@@ -44,6 +46,19 @@ public class SkinAdditionNode implements
_translationSourceExpression = translationSourceExpression;
}
+ public SkinAdditionNode (
+ String skinId,
+ String styleSheetName,
+ String resourceBundleName,
+ String translationSourceExpression,
+ SkinFeaturesNode featuresNode
+ )
+ {
+ this(skinId, styleSheetName, resourceBundleName, translationSourceExpression);
+ if(featuresNode != null)
+ setSkinFeatures(featuresNode.getSkinFeatures());
+ }
+
public String getSkinId()
{
return _skinId;
@@ -87,6 +102,16 @@ public class SkinAdditionNode implements
return _translationSourceExpression;
}
+ public void setSkinFeatures(Map<String, String> skinFeatures)
+ {
+ _skinFeatures = skinFeatures;
+ }
+
+ public Map<String, String> getSkinFeatures()
+ {
+ return _skinFeatures;
+ }
+
// Sort by the name of the stylesheet
public int compareTo(SkinAdditionNode node)
{
@@ -97,5 +122,6 @@ public class SkinAdditionNode implements
private String _styleSheetName;
private String _resourceBundleName;
private String _translationSourceExpression;
+ private Map<String, String> _skinFeatures;
}
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNodeParser.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNodeParser.java?rev=1442351&r1=1442350&r2=1442351&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNodeParser.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/parse/SkinAdditionNodeParser.java Mon Feb 4 20:57:29 2013
@@ -18,6 +18,8 @@
*/
package org.apache.myfaces.trinidadinternal.skin.parse;
+import java.util.Map;
+
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
import org.apache.myfaces.trinidadinternal.share.xml.StringParser;
import org.xml.sax.Attributes;
@@ -75,7 +77,7 @@ public class SkinAdditionNodeParser exte
}
return new SkinAdditionNode(_skinId, _styleSheetName,
- _resourceBundleName, _translationSourceExpression);
+ _resourceBundleName, _translationSourceExpression, _skinFeatures);
}
@Override
@@ -95,7 +97,10 @@ public class SkinAdditionNodeParser exte
{
return new StringParser();
}
-
+ else if ("features".equals(localName))
+ {
+ return context.getParser(SkinFeaturesNode.class, namespaceURI, localName);
+ }
return null;
}
@@ -116,12 +121,17 @@ public class SkinAdditionNodeParser exte
_resourceBundleName = (String) child;
else if ("translation-source".equals(localName))
_translationSourceExpression = (String) child;
+ else if ("features".equals(localName))
+ {
+ _skinFeatures = (SkinFeaturesNode) child;
+ }
}
private String _skinId;
private String _styleSheetName;
private String _resourceBundleName;
private String _translationSourceExpression;
+ private SkinFeaturesNode _skinFeatures;
private static final TrinidadLogger _LOG =
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/org/apache/myfaces/trinidadinternal/ui/laf/xml/schemas/skin/trinidad-skins.xsd
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/org/apache/myfaces/trinidadinternal/ui/laf/xml/schemas/skin/trinidad-skins.xsd?rev=1442351&r1=1442350&r2=1442351&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/org/apache/myfaces/trinidadinternal/ui/laf/xml/schemas/skin/trinidad-skins.xsd (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/org/apache/myfaces/trinidadinternal/ui/laf/xml/schemas/skin/trinidad-skins.xsd Mon Feb 4 20:57:29 2013
@@ -140,7 +140,12 @@
</xsd:annotation>
</xsd:element>
<xsd:element ref="skin:bundleSource" minOccurs="0" maxOccurs="1" />
- <xsd:element ref="skin:metadata" minOccurs="0" maxOccurs="1" />
+ <xsd:element name="features" type="skin:featuresType" minOccurs="0" maxOccurs="1">
+ <xsd:annotation>
+ <xsd:documentation>Collection of features that a skin may require during rendering.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element ref="skin:metadata" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<!-- Use XSD "inheritance" of the substitution group to avoid the use of xsd:choice as it