You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by jw...@apache.org on 2006/10/11 17:15:59 UTC
svn commit: r462863 - in
/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin:
SkinImpl.java SkinStyleSheetParserUtils.java StyleSheetEntry.java
Author: jwaldman
Date: Wed Oct 11 10:15:58 2006
New Revision: 462863
URL: http://svn.apache.org/viewvc?view=rev&rev=462863
Log:
fix todo for registering icons and properties from an extension style sheet in SkinImpl.java, so now you can registerStyleSheet on a particular skin instance and that stylesheet's css definitions, icons and properties will be included into the skin. The other two files are comment changes only.
Modified:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinImpl.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/StyleSheetEntry.java
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinImpl.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinImpl.java?view=diff&rev=462863&r1=462862&r2=462863
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinImpl.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinImpl.java Wed Oct 11 10:15:58 2006
@@ -405,6 +405,60 @@
return modified;
}
+
+ private void _registerIconsAndPropertiesFromStyleSheetEntry(
+ StyleSheetEntry entry)
+ {
+ // register the icons and properties if there are any.
+ // get a List of IconNodes, and register them.
+ if (entry != null)
+ {
+ // register icons
+ List<IconNode> icons = entry.getIcons();
+ if (icons != null)
+ {
+ for(IconNode iconNode : icons)
+ {
+ registerIcon(iconNode.getIconName(), iconNode.getIcon());
+ }
+ }
+
+ // register properties
+ List<SkinPropertyNode> skinProperties = entry.getSkinProperties();
+
+ if (skinProperties != null)
+ {
+ for(SkinPropertyNode property : skinProperties)
+ {
+ Object propValueObj = property.getPropertyValue();
+ // Store the property selector + property Name as the Skin Property Key.
+ // e.g., use af|breadCrumbs-tr-show-last-item
+
+ String key = property.getPropertySelector() +
+ property.getPropertyName();
+ // look up in map to get conversion
+ Class<?> type = _PROPERTY_CLASS_TYPE_MAP.get(key);
+ if (type != null)
+ {
+ try
+ {
+ // coerce the value to the type
+ propValueObj = Coercions.coerce(null, (String)propValueObj,
+ type);
+ }
+ catch (IllegalArgumentException ex)
+ {
+ if (_LOG.isWarning())
+ _LOG.warning(ex);
+ }
+ }
+
+
+ setProperty(key, propValueObj);
+ }
+ }
+ }
+ }
// Creates the StyleSheetDocument for this Skin
// (as a side effect, this also registers icons and skin properties
@@ -421,68 +475,12 @@
{
String styleSheetName = getStyleSheetName();
- // =-=jmw I'm not sure where a good place is to parse the css file and
- // register the icons and properties. For now, I suppose I can do it here.
-
if (styleSheetName != null)
{
_skinStyleSheet = StyleSheetEntry.createEntry(context, styleSheetName);
-
-
- // register the icons and properties if there are any.
- // this is a strange place for this. Where is a better spot???
- // get a List of IconNodes, and register them.
- if (_skinStyleSheet != null)
- {
- // register icons
- List<IconNode> icons = _skinStyleSheet.getIcons();
- if (icons != null)
- {
- for(IconNode iconNode : icons)
- {
- registerIcon(iconNode.getIconName(), iconNode.getIcon());
- }
- }
-
- // register properties
- List<SkinPropertyNode> skinProperties =
- _skinStyleSheet.getSkinProperties();
-
- if (skinProperties != null)
- {
- for(SkinPropertyNode property : skinProperties)
- {
- Object propValueObj = property.getPropertyValue();
- // Store the property selector + property Name as the Skin Property Key.
- // e.g., use af|breadCrumbs-tr-show-last-item
-
- String key = property.getPropertySelector() +
- property.getPropertyName();
- // look up in map to get conversion
- Class<?> type = _PROPERTY_CLASS_TYPE_MAP.get(key);
- if (type != null)
- {
- try
- {
- // coerce the value to the type
- propValueObj = Coercions.coerce(null, (String)propValueObj,
- type);
- }
- catch (IllegalArgumentException ex)
- {
- if (_LOG.isWarning())
- _LOG.warning(ex);
- }
- }
-
-
- setProperty(key, propValueObj);
- }
- }
- }
+ _registerIconsAndPropertiesFromStyleSheetEntry(_skinStyleSheet);
}
-
// Now create entries for UIExtension-specific style sheets.
_extensionStyleSheets = _getExtensionStyleSheets(context);
}
@@ -501,21 +499,28 @@
for (int i = 0; i < _extensionStyleSheets.length; i++)
{
StyleSheetEntry entry = _extensionStyleSheets[i];
- StyleSheetDocument extensionDocument = entry.getDocument();
-
- if (extensionDocument != null)
+ if (entry != null)
{
- // Merge the UIExtension's StyleSheetDocument on top of
- // the current StyleSheetDocument. Note: This is not
- // exactly efficient - we would be better off creating
- // an array of StyleSheetDocuments and merging them all
- // in one pass. But since this code should rarely be
- // executed, this shouldn't be a bottleneck...
- document = StyleSheetDocumentUtils.mergeStyleSheetDocuments(
- document,
- extensionDocument);
- // =-=jmw @todo when we have extension documents, we'll need
- // to register icons and skin properties from those on the skin?
+ // add the icons and properties that are in the
+ // extensionDocument's StyleSheetEntry
+ _registerIconsAndPropertiesFromStyleSheetEntry(entry);
+
+ // now merge the css properties
+ StyleSheetDocument extensionDocument = entry.getDocument();
+
+ if (extensionDocument != null)
+ {
+ // Merge the UIExtension's StyleSheetDocument on top of
+ // the current StyleSheetDocument. Note: This is not
+ // exactly efficient - we would be better off creating
+ // an array of StyleSheetDocuments and merging them all
+ // in one pass. But since this code should rarely be
+ // executed, this shouldn't be a bottleneck...
+ document = StyleSheetDocumentUtils.mergeStyleSheetDocuments(
+ document,
+ extensionDocument);
+
+ }
}
}
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java?view=diff&rev=462863&r1=462862&r2=462863
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java Wed Oct 11 10:15:58 2006
@@ -99,6 +99,7 @@
{
// Store a resolver relative to the file we're about to parse
+ // =-=jmw TODO are these two lines needed?
XMLUtils.setResolver(context, resolver.getResolver(sourceName));
XMLUtils.setInputStreamProvider(context, provider);
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/StyleSheetEntry.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/StyleSheetEntry.java?view=diff&rev=462863&r1=462862&r2=462863
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/StyleSheetEntry.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/StyleSheetEntry.java Wed Oct 11 10:15:58 2006
@@ -403,7 +403,6 @@
private List <IconNode> _icons;
// List of -tr- properties that the skin can be set on the skin.
// This is a List of SkinPropertyNodes
- // jmw it will be key, name, value. or name/value???
private List <SkinPropertyNode> _skinProperties;
private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(StyleSheetEntry.class);