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 aw...@apache.org on 2006/09/22 22:18:36 UTC
svn commit: r449112 [3/3] - in /incubator/adffaces/trunk/trinidad:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/
trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/
trinidad-impl/src/main/java/org/apache/myfaces/trinidadin...
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/Skin.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/Skin.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/Skin.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/Skin.java Fri Sep 22 15:18:32 2006
@@ -15,25 +15,13 @@
*/
package org.apache.myfaces.trinidadinternal.skin;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import java.util.MissingResourceException;
-import java.util.Stack;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
-import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SkinProperties;
-import org.apache.myfaces.trinidadinternal.share.expl.Coercions;
import org.apache.myfaces.trinidadinternal.share.nls.LocaleContext;
import org.apache.myfaces.trinidadinternal.skin.icon.Icon;
import org.apache.myfaces.trinidadinternal.skin.icon.ReferenceIcon;
import org.apache.myfaces.trinidadinternal.style.StyleContext;
-import org.apache.myfaces.trinidadinternal.style.xml.StyleSheetDocumentUtils;
-import org.apache.myfaces.trinidadinternal.style.xml.parse.StyleSheetDocument;
-import org.apache.myfaces.trinidadinternal.ui.laf.xml.parse.IconNode;
-import org.apache.myfaces.trinidadinternal.ui.laf.xml.parse.SkinPropertyNode;
-import org.apache.myfaces.trinidadinternal.util.OptimisticHashMap;
@@ -56,10 +44,7 @@
* can be retrieved by id via SkinFactory.getSkin().
* @see org.apache.myfaces.trinidadinternal.skin.SkinFactory#getSkin
*/
- public String getId()
- {
- return null;
- }
+ abstract public String getId();
/**
* Returns the name of the skin "family" for this skin.
@@ -70,18 +55,12 @@
* particular skin instance to be selected based on the
* current render-kit-id.
*/
- public String getFamily()
- {
- return null;
- }
+ abstract public String getFamily();
/**
* Returns the renderKitId for the Skin.
*/
- public String getRenderKitId()
- {
- return null;
- }
+ abstract public String getRenderKitId();
/**
* Returns the name of the XSS style sheet for this Skin.
@@ -91,17 +70,10 @@
/**
* Returns a translated String in the LocaleContext's translation Locale.
*/
- public String getTranslatedString(
+ abstract public String getTranslatedString(
LocaleContext lContext,
String key
- ) throws MissingResourceException
- {
- Object o = getTranslatedValue(lContext, key);
- if (o == null)
- return null;
-
- return o.toString();
- }
+ ) throws MissingResourceException;
/**
* Returns a translated value in the LocaleContext's translation Locale.
@@ -112,238 +84,26 @@
* @param key The key of the translation to retrieve. Cannot be null.
* @throws NullPointerException if lContext or key is null.
*/
- public Object getTranslatedValue(
+ abstract public Object getTranslatedValue(
LocaleContext lContext,
String key
- ) throws MissingResourceException
- {
- //testTranslationKey(key); //jmw test
-
- if (lContext == null)
- throw new NullPointerException("Null lContext");
- if (key == null)
- throw new NullPointerException("Null key");
-
- String bundleName = getBundleName();
- if (bundleName == null)
- return null;
-
- return lContext.getBundle(bundleName).getObject(key);
- }
-
-
-
- /**
- * This is a test function.
- * This looks at the stack that I have on the request map for the
- * current component being rendered -- I store the prefix in
- * UIComponentUINode.
- * @param key
- */
- /********* jmw for testing translation keys
- public static void testTranslationKey(
- String key)
- {
-
- javax.faces.context.FacesContext fcontext =
- javax.faces.context.FacesContext.getCurrentInstance();
- Stack translationKeyStack = (Stack)fcontext.getExternalContext().
- getRequestMap().get("TRANSLATION_KEY");
-
-
- String translationKeyPrefix = null;
-
- if ((translationKeyStack != null) && !translationKeyStack.empty())
- translationKeyPrefix = (String)translationKeyStack.peek();
-
-
- // System.out.println(translationKeyPrefix + " / " + key); //jmw test
-
- String keyPrefix = null;
- int index = key.indexOf('.');
- if (index != -1)
- keyPrefix = key.substring(0, index);
-
- if (translationKeyPrefix != null)
- {
- if (!(translationKeyPrefix.equalsIgnoreCase(keyPrefix)))
- {
- System.out.println("***NO MATCH " + translationKeyPrefix + " / " + key + "");
- }
- }
- if ((translationKeyPrefix == null) && (key != null) &&
- !(key.equals("WINDOW_CREATION_ERROR") || key.equals("NO_SCRIPT_MESSAGE")))
- {
- System.out.println("***nothing was rendered, but I have a key of " + key);
- }
-
- }
- ****/
-
- /**
- * Returns the name of the ResourceBundle for the Skin.
- */
- abstract protected String getBundleName();
+ ) throws MissingResourceException;
/**
* Our renderers call this to get the icon. This returns a renderable
* icon. (ReferenceIcons are resolved -- the real icon they point to is
* returned)
*/
- public Icon getIcon(
- String iconName
- )
- {
- return getIcon(iconName, true);
- }
+ abstract public Icon getIcon(String iconName);
/**
* Returns an Icon object; can be a ReferenceIcon.
* @param iconName The name of the icon to retrieve. Cannot be null
* @throws NullPointerException if iconName is null.
*/
- public Icon getIcon(
+ abstract public Icon getIcon(
String iconName,
- boolean resolveIcon
- )
- {
- if (iconName == null)
- throw new NullPointerException("Null iconName");
-
- Icon icon = _icons.get(iconName);
- if (resolveIcon)
- {
- if (icon instanceof ReferenceIcon)
- {
- // find the true icon, not a ReferenceIcon
- icon = _resolveReferenceIcon((ReferenceIcon)icon,
- null);
- }
- }
-
- return icon;
- }
-
- /**
- * Find the actual icon
- * @param refIcon a ReferenceIcon instance
- * @param referencedIconStack The stack of reference icon names which have
- * already been visited. Used to detect circular dependencies.
- * @return icon which is resolved. i.e., it is not a ReferenceIcon.
- */
- private Icon _resolveReferenceIcon(
- ReferenceIcon refIcon,
- Stack<String> referencedIconStack)
- {
- String refName = refIcon.getName();
-
- // make sure we don't have a circular dependency
- if ( _stackContains(referencedIconStack, refName))
- {
- if (_LOG.isWarning())
- _LOG.warning(_CIRCULAR_INCLUDE_ERROR + refName);
- return null;
- }
-
- if (referencedIconStack == null)
- {
- referencedIconStack = new Stack<String>();
- }
-
- referencedIconStack.push(refName);
-
- Icon icon = getIcon(refName, false);
-
- if ((icon instanceof ReferenceIcon) && (icon != null))
- {
-
- return _resolveReferenceIcon((ReferenceIcon)icon,
- referencedIconStack);
-
- }
-
- return icon;
- }
-
- // Tests whether the value is present in the (possibly null) stack.
- private static boolean _stackContains(Stack<String> stack, Object value)
- {
- if (stack == null)
- return false;
-
- return stack.contains(value);
- }
-
- /**
- * Registers an Icon for the specified icon name.
- * @param iconName The name of the icon. Cannot be null.
- * @param icon The Icon to register.
- * @throws NullPointerException if iconName is null.
- */
- synchronized public void registerIcon(
- String iconName,
- Icon icon
- )
- {
- if (iconName == null)
- throw new NullPointerException("Null iconName");
-
- _icons.put(iconName, icon);
- }
-
- /**
- * Registers a style sheet which defines extension-specific
- * styles. The styles specified by this style sheet will be
- * merged with the Skin's own styles. The full set
- * of styles can be obtained by calling getStyleSheetDocument().
- * @todo Is this even supported???
- * @param styleSheetName The name of the style sheet which
- * defines the extension's styles. This style sheet
- * should be installed under the directory specified by
- * Configuration.STYLES_DIRECTORY path.
- * @see #getStyleSheetDocument
- * @throws NullPointerException if styleSheetName is null.
- */
- public void registerStyleSheet(
- String styleSheetName
- )
- {
- if (styleSheetName == null)
- throw new NullPointerException("Null styleSheetName");
-
- if (_extensionStyleSheetNames == null)
- {
- _extensionStyleSheetNames = new ArrayList<String>();
- }
-
- _extensionStyleSheetNames.add(styleSheetName);
- }
-
- /**
- * Returns the StyleSheetDocument object which defines all of the
- * styles for this Skin, including any styles that are
- * contributed by UIExtensions.
- */
- public StyleSheetDocument getStyleSheetDocument(StyleContext context)
- {
- // We synchronize here because technically speaking multiple
- // threads can simultaneously update the underlying style sheet
- // objects. However, in practice, this should never be an issue -
- // especially in production systems where modification checking
- // should always be disabled. In this case, the style sheet objects
- // are created when the first request is received and are never
- // updated after that point. So, if this synchronization turns
- // out to be a bottleneck, it should be safe to remove this
- // synchronization - at least when modification checking is
- // disabled, if not altogether.
- synchronized (this)
- {
- if ((_styleSheetDocument == null) || _checkStylesModified(context))
- _styleSheetDocument = _createStyleSheetDocument(context);
-
- return _styleSheetDocument;
- }
- }
+ boolean resolveIcon);
/**
* Retrieves a property that was set via a call to setProperty().
@@ -351,254 +111,25 @@
* Skin instance to avoid having to re-compute Skin-specific
* values on each render.
*/
- public Object getProperty(Object key)
- {
- if (_properties == null)
- return null;
-
- return _properties.get(key);
- }
+ abstract public Object getProperty(Object key);
/**
* Sets a value for the specified property key.
+ * Some Renderer implementations may store properties on the
+ * Skin instance to avoid having to re-compute Skin-specific
+ * values on each render.
*/
- synchronized public void setProperty(
+ abstract public void setProperty(
Object key,
- Object value
- )
- {
- if (_properties == null)
- _properties = new OptimisticHashMap<Object, Object>();
-
- _properties.put(key, value);
- }
-
- // Checks to see whether any of our style sheets have been updated
- private boolean _checkStylesModified(
- StyleContext context
- )
- {
- boolean modified = false;
-
- if (_skinStyleSheet != null)
- modified = _skinStyleSheet.checkModified(context);
-
- // We also check all of the UIExtension style sheets even
- // if we already know that the skin's style sheet has been
- // modified. We need to do this because we want to call
- // StyleSheetEntry.checkModified() for each entry - otherwise
- // out of date StyleSheetEntries may not get updated.
- if (_extensionStyleSheets != null)
- {
- for (int i = 0; i < _extensionStyleSheets.length; i++)
- {
- StyleSheetEntry entry = _extensionStyleSheets[i];
- if (entry.checkModified(context))
- modified = true;
- }
- }
-
- return modified;
- }
-
- // Creates the StyleSheetDocument for this Skin
- // (as a side effect, this also registers icons and skin properties
- // defined in the skin's style-sheet.)
- private StyleSheetDocument _createStyleSheetDocument(
- StyleContext context
- )
- {
- // If we haven't created the StyleSheetDocument yet,
- // then presumably we haven't attempted to load the
- // style sheet files. Create StyleSheetEntry instances
- // for each style sheet file that we depend on.
- if (_styleSheetDocument == null)
- {
- 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();
- // convert to a type if possible first
- // =-=jmw should I get the type for af|breadCrumbs-ora-show-last-item or just
- // -ora-show-last-item. in other words, will the property name be the same type
- // no matter which component it is being used for? If so, then
- // just storing -ora-show-last-item in the map is good enough.
- // For now, just for the heck of it, use af|breadCrumbs-ora-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);
- }
- }
- }
- }
-
-
- // Now create entries for UIExtension-specific style sheets.
- _extensionStyleSheets = _getExtensionStyleSheets(context);
- }
-
- // Now merge all of the documents provided by all of our
- // entries into a single StyleSheetDocument.
- StyleSheetDocument document = null;
-
- if (_skinStyleSheet != null)
- document = _skinStyleSheet.getDocument();
-
- // Merge in any UIExtension style sheets on top of
- // the skin's style sheet
- if (_extensionStyleSheets != null)
- {
- for (int i = 0; i < _extensionStyleSheets.length; i++)
- {
- StyleSheetEntry entry = _extensionStyleSheets[i];
- 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);
- // =-=jmw @todo when we have extension documents, we'll need
- // to register icons and skin properties from those on the skin?
- }
- }
- }
-
- // We're done!
- if (document != null)
- return document;
-
- // If we weren't able to produce a StyleSheetDocument for whatever
- // reason (maybe we don't have any style sheet, maybe there were
- // I/O problems), create a empty StyleSheetDocument so that we
- // don't repeatedly try to re-create the document.
- return new StyleSheetDocument(null,
- null,
- StyleSheetDocument.UNKNOWN_TIMESTAMP);
- }
-
- // Gets the StyleSheetEntries for UIExtensions
- private StyleSheetEntry[] _getExtensionStyleSheets(StyleContext context)
- {
- if (_extensionStyleSheetNames == null)
- return null;
-
- // Create a list to hold our StyleSheetEntries
- int count = _extensionStyleSheetNames.size();
- List<StyleSheetEntry> entries = new ArrayList<StyleSheetEntry>(count);
-
- // Loop through all registered style sheet names and
- // try to create a StyleSheetEntry for each name.
- for(String name : _extensionStyleSheetNames)
- {
- StyleSheetEntry entry = StyleSheetEntry.createEntry(context, name);
- if (entry != null)
- {
- entries.add(entry);
- }
- }
-
- if (!entries.isEmpty())
- {
- _extensionStyleSheets = new StyleSheetEntry[entries.size()];
- return entries.toArray(_extensionStyleSheets);
- }
-
- return null;
- }
-
- // HashMap that maps icon name to Icons
- private OptimisticHashMap<String, Icon> _icons = new OptimisticHashMap<String, Icon>();
-
- // The StyleSheetDocument which contains all of the styles
- // for this Skin - including styles contributed by UIExtensions.
- private StyleSheetDocument _styleSheetDocument;
-
- // A StyleSheetEntry which defines the styles that are
- // provided by this Skin's style sheet only (does
- // not include UIExtension styles).
- private StyleSheetEntry _skinStyleSheet;
-
- // List of extension style sheet names
- private List<String> _extensionStyleSheetNames;
-
- // Array of UIExtension StyleSheetEntries
- private StyleSheetEntry[] _extensionStyleSheets;
-
- // HashMap of Skin properties
- private OptimisticHashMap<Object, Object> _properties;
-
- // Map of property to class type
- private static final Map<String, Class<?>> _PROPERTY_CLASS_TYPE_MAP;
- static
- {
- _PROPERTY_CLASS_TYPE_MAP = new HashMap<String, Class<?>>();
-
- _PROPERTY_CLASS_TYPE_MAP.put(
- SkinProperties.AF_NAVIGATIONPATH_SHOW_LAST_ITEM_PROPERTY_KEY, Boolean.class);
- _PROPERTY_CLASS_TYPE_MAP.put(
- SkinProperties.AF_TABLE_SELECTION_BAR_IN_TABLE, Boolean.class);
- _PROPERTY_CLASS_TYPE_MAP.put(
- SkinProperties.AF_TABLE_REPEAT_CONTROL_BAR, Boolean.class);
- }
-
- // Error messages
- private static final String _CIRCULAR_INCLUDE_ERROR =
- "Circular dependency detected in skin reference icon ";
- private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(Skin.class);
+ Object value);
+
+ /**
+ * Registers an Icon for the specified icon name.
+ * @param iconName The name of the icon. Cannot be null.
+ * @param icon The Icon to register.
+ * @throws NullPointerException if iconName is null.
+ */
+ abstract public void registerIcon(
+ String iconName,
+ Icon icon);
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinExtension.java Fri Sep 22 15:18:32 2006
@@ -48,7 +48,7 @@
* @version $Name: $ ($Revision: adfrt/faces/adf-faces-impl/src/main/java/oracle/adfinternal/view/faces/skin/SkinExtension.java#0 $) $Date: 10-nov-2005.18:58:55 $
* @author The Oracle ADF Faces Team
*/
-public class SkinExtension extends Skin
+public class SkinExtension extends SkinImpl
{
/**
* Creates a Skin which extends the specified base
@@ -94,7 +94,7 @@
if (renderKitId == null)
renderKitId = "org.apache.myfaces.trinidad.desktop";
- _baseSkin = baseSkin;
+ _baseSkin = (SkinImpl) baseSkin;
_id = id;
_family = family;
_renderKitId = renderKitId;
@@ -368,7 +368,7 @@
// sheet.
// Get the StyleSheetDocument from the base Skin
- Skin baseSkin = getBaseSkin();
+ SkinImpl baseSkin = (SkinImpl) getBaseSkin();
StyleSheetDocument baseDocument = baseSkin.getStyleSheetDocument(context);
// Get the StyleSheetDocument for the SkinExtension - we
@@ -623,7 +623,7 @@
private String _id;
private String _family;
private String _renderKitId;
- private Skin _baseSkin;
+ private SkinImpl _baseSkin;
private String _styleSheetName;
private String _bundleName;
Added: 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=auto&rev=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinImpl.java (added)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinImpl.java Fri Sep 22 15:18:32 2006
@@ -0,0 +1,607 @@
+/*
+ * Copyright 2000-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.myfaces.trinidadinternal.skin;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.Stack;
+
+import org.apache.myfaces.trinidad.logging.TrinidadLogger;
+import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SkinProperties;
+import org.apache.myfaces.trinidadinternal.share.expl.Coercions;
+import org.apache.myfaces.trinidadinternal.share.nls.LocaleContext;
+import org.apache.myfaces.trinidadinternal.skin.icon.Icon;
+import org.apache.myfaces.trinidadinternal.skin.icon.ReferenceIcon;
+import org.apache.myfaces.trinidadinternal.style.StyleContext;
+import org.apache.myfaces.trinidadinternal.style.xml.StyleSheetDocumentUtils;
+import org.apache.myfaces.trinidadinternal.style.xml.parse.StyleSheetDocument;
+import org.apache.myfaces.trinidadinternal.ui.laf.xml.parse.IconNode;
+import org.apache.myfaces.trinidadinternal.ui.laf.xml.parse.SkinPropertyNode;
+import org.apache.myfaces.trinidadinternal.util.OptimisticHashMap;
+
+
+
+/**
+ * Defines the components (icons, styles, etc)
+ * which are used to implement a particular skin.
+ * @todo. look through UIExtension comments.
+ *
+ * This implementation class adds the details that should
+ * not be exposed outside of this API.
+ *
+ * @see SkinFactory
+ * @see org.apache.myfaces.trinidadinternal.ui.UIXRenderingContext#getSkinFactory
+ *
+ * @version $Name: $ ($Revision: adfrt/faces/adf-faces-impl/src/main/java/oracle/adfinternal/view/faces/skin/Skin.java#0 $) $Date: 10-nov-2005.18:58:54 $
+ * @author The Oracle ADF Faces Team
+ */
+abstract public class SkinImpl extends Skin
+{
+ /**
+ * Returns an string identifier which uniquely identies
+ * this Skin implementation. Skin implementations
+ * can be retrieved by id via SkinFactory.getSkin().
+ * @see org.apache.myfaces.trinidadinternal.skin.SkinFactory#getSkin
+ */
+ public String getId()
+ {
+ return null;
+ }
+
+ /**
+ * Returns the name of the skin "family" for this skin.
+ * The family name is used when specifying a preferred skin
+ * in trinidad-config.xml.
+ * This provides a way to refer to a group of
+ * related skin implementations while allowing the
+ * particular skin instance to be selected based on the
+ * current render-kit-id.
+ */
+ public String getFamily()
+ {
+ return null;
+ }
+
+ /**
+ * Returns the renderKitId for the Skin.
+ */
+ public String getRenderKitId()
+ {
+ return null;
+ }
+
+ /**
+ * Returns the name of the XSS style sheet for this Skin.
+ */
+ abstract public String getStyleSheetName();
+
+ /**
+ * Returns a translated String in the LocaleContext's translation Locale.
+ */
+ public String getTranslatedString(
+ LocaleContext lContext,
+ String key
+ ) throws MissingResourceException
+ {
+ Object o = getTranslatedValue(lContext, key);
+ if (o == null)
+ return null;
+
+ return o.toString();
+ }
+
+ /**
+ * Returns a translated value in the LocaleContext's translation Locale.
+ * This value may or may not be a String, and developers should avoid
+ * calling toString() unless absolutely necessary.
+ * @param lContext The LocaleContext which provides the translation Locale.
+ * Cannot be null.
+ * @param key The key of the translation to retrieve. Cannot be null.
+ * @throws NullPointerException if lContext or key is null.
+ */
+ public Object getTranslatedValue(
+ LocaleContext lContext,
+ String key
+ ) throws MissingResourceException
+ {
+ //testTranslationKey(key); //jmw test
+
+ if (lContext == null)
+ throw new NullPointerException("Null lContext");
+ if (key == null)
+ throw new NullPointerException("Null key");
+
+ String bundleName = getBundleName();
+ if (bundleName == null)
+ return null;
+
+ return lContext.getBundle(bundleName).getObject(key);
+ }
+
+
+
+ /**
+ * This is a test function.
+ * This looks at the stack that I have on the request map for the
+ * current component being rendered -- I store the prefix in
+ * UIComponentUINode.
+ * @param key
+ */
+ /********* jmw for testing translation keys
+ public static void testTranslationKey(
+ String key)
+ {
+
+ javax.faces.context.FacesContext fcontext =
+ javax.faces.context.FacesContext.getCurrentInstance();
+ Stack translationKeyStack = (Stack)fcontext.getExternalContext().
+ getRequestMap().get("TRANSLATION_KEY");
+
+
+ String translationKeyPrefix = null;
+
+ if ((translationKeyStack != null) && !translationKeyStack.empty())
+ translationKeyPrefix = (String)translationKeyStack.peek();
+
+
+ // System.out.println(translationKeyPrefix + " / " + key); //jmw test
+
+ String keyPrefix = null;
+ int index = key.indexOf('.');
+ if (index != -1)
+ keyPrefix = key.substring(0, index);
+
+ if (translationKeyPrefix != null)
+ {
+ if (!(translationKeyPrefix.equalsIgnoreCase(keyPrefix)))
+ {
+ System.out.println("***NO MATCH " + translationKeyPrefix + " / " + key + "");
+ }
+ }
+ if ((translationKeyPrefix == null) && (key != null) &&
+ !(key.equals("WINDOW_CREATION_ERROR") || key.equals("NO_SCRIPT_MESSAGE")))
+ {
+ System.out.println("***nothing was rendered, but I have a key of " + key);
+ }
+
+ }
+ ****/
+
+ /**
+ * Returns the name of the ResourceBundle for the Skin.
+ */
+ abstract protected String getBundleName();
+
+ /**
+ * Our renderers call this to get the icon. This returns a renderable
+ * icon. (ReferenceIcons are resolved -- the real icon they point to is
+ * returned)
+ */
+ public Icon getIcon(
+ String iconName
+ )
+ {
+ return getIcon(iconName, true);
+ }
+
+ /**
+ * Returns an Icon object; can be a ReferenceIcon.
+ * @param iconName The name of the icon to retrieve. Cannot be null
+ * @throws NullPointerException if iconName is null.
+ */
+ public Icon getIcon(
+ String iconName,
+ boolean resolveIcon
+ )
+ {
+ if (iconName == null)
+ throw new NullPointerException("Null iconName");
+
+ Icon icon = _icons.get(iconName);
+ if (resolveIcon)
+ {
+ if (icon instanceof ReferenceIcon)
+ {
+ // find the true icon, not a ReferenceIcon
+ icon = _resolveReferenceIcon((ReferenceIcon)icon,
+ null);
+ }
+ }
+
+ return icon;
+ }
+
+ /**
+ * Find the actual icon
+ * @param refIcon a ReferenceIcon instance
+ * @param referencedIconStack The stack of reference icon names which have
+ * already been visited. Used to detect circular dependencies.
+ * @return icon which is resolved. i.e., it is not a ReferenceIcon.
+ */
+ private Icon _resolveReferenceIcon(
+ ReferenceIcon refIcon,
+ Stack<String> referencedIconStack)
+ {
+ String refName = refIcon.getName();
+
+ // make sure we don't have a circular dependency
+ if ( _stackContains(referencedIconStack, refName))
+ {
+ if (_LOG.isWarning())
+ _LOG.warning(_CIRCULAR_INCLUDE_ERROR + refName);
+ return null;
+ }
+
+ if (referencedIconStack == null)
+ {
+ referencedIconStack = new Stack<String>();
+ }
+
+ referencedIconStack.push(refName);
+
+ Icon icon = getIcon(refName, false);
+
+ if ((icon instanceof ReferenceIcon) && (icon != null))
+ {
+
+ return _resolveReferenceIcon((ReferenceIcon)icon,
+ referencedIconStack);
+
+ }
+
+ return icon;
+ }
+
+ // Tests whether the value is present in the (possibly null) stack.
+ private static boolean _stackContains(Stack<String> stack, Object value)
+ {
+ if (stack == null)
+ return false;
+
+ return stack.contains(value);
+ }
+
+ /**
+ * Registers an Icon for the specified icon name.
+ * @param iconName The name of the icon. Cannot be null.
+ * @param icon The Icon to register.
+ * @throws NullPointerException if iconName is null.
+ */
+ synchronized public void registerIcon(
+ String iconName,
+ Icon icon
+ )
+ {
+ if (iconName == null)
+ throw new NullPointerException("Null iconName");
+
+ _icons.put(iconName, icon);
+ }
+
+ /**
+ * Registers a style sheet which defines extension-specific
+ * styles. The styles specified by this style sheet will be
+ * merged with the Skin's own styles. The full set
+ * of styles can be obtained by calling getStyleSheetDocument().
+ * @todo Is this even supported???
+ * @param styleSheetName The name of the style sheet which
+ * defines the extension's styles. This style sheet
+ * should be installed under the directory specified by
+ * Configuration.STYLES_DIRECTORY path.
+ * @see #getStyleSheetDocument
+ * @throws NullPointerException if styleSheetName is null.
+ */
+ public void registerStyleSheet(
+ String styleSheetName
+ )
+ {
+ if (styleSheetName == null)
+ throw new NullPointerException("Null styleSheetName");
+
+ if (_extensionStyleSheetNames == null)
+ {
+ _extensionStyleSheetNames = new ArrayList<String>();
+ }
+
+ _extensionStyleSheetNames.add(styleSheetName);
+ }
+
+ /**
+ * Returns the StyleSheetDocument object which defines all of the
+ * styles for this Skin, including any styles that are
+ * contributed by UIExtensions.
+ */
+ public StyleSheetDocument getStyleSheetDocument(StyleContext context)
+ {
+ // We synchronize here because technically speaking multiple
+ // threads can simultaneously update the underlying style sheet
+ // objects. However, in practice, this should never be an issue -
+ // especially in production systems where modification checking
+ // should always be disabled. In this case, the style sheet objects
+ // are created when the first request is received and are never
+ // updated after that point. So, if this synchronization turns
+ // out to be a bottleneck, it should be safe to remove this
+ // synchronization - at least when modification checking is
+ // disabled, if not altogether.
+ synchronized (this)
+ {
+ if ((_styleSheetDocument == null) || _checkStylesModified(context))
+ _styleSheetDocument = _createStyleSheetDocument(context);
+
+ return _styleSheetDocument;
+ }
+ }
+
+ /**
+ * Retrieves a property that was set via a call to setProperty().
+ * Some Renderer implementations may store properties on the
+ * Skin instance to avoid having to re-compute Skin-specific
+ * values on each render.
+ */
+ public Object getProperty(Object key)
+ {
+ if (_properties == null)
+ return null;
+
+ return _properties.get(key);
+ }
+
+ /**
+ * Sets a value for the specified property key.
+ */
+ synchronized public void setProperty(
+ Object key,
+ Object value
+ )
+ {
+ if (_properties == null)
+ _properties = new OptimisticHashMap<Object, Object>();
+
+ _properties.put(key, value);
+ }
+
+ // Checks to see whether any of our style sheets have been updated
+ private boolean _checkStylesModified(
+ StyleContext context
+ )
+ {
+ boolean modified = false;
+
+ if (_skinStyleSheet != null)
+ modified = _skinStyleSheet.checkModified(context);
+
+ // We also check all of the UIExtension style sheets even
+ // if we already know that the skin's style sheet has been
+ // modified. We need to do this because we want to call
+ // StyleSheetEntry.checkModified() for each entry - otherwise
+ // out of date StyleSheetEntries may not get updated.
+ if (_extensionStyleSheets != null)
+ {
+ for (int i = 0; i < _extensionStyleSheets.length; i++)
+ {
+ StyleSheetEntry entry = _extensionStyleSheets[i];
+ if (entry.checkModified(context))
+ modified = true;
+ }
+ }
+
+ return modified;
+ }
+
+ // Creates the StyleSheetDocument for this Skin
+ // (as a side effect, this also registers icons and skin properties
+ // defined in the skin's style-sheet.)
+ private StyleSheetDocument _createStyleSheetDocument(
+ StyleContext context
+ )
+ {
+ // If we haven't created the StyleSheetDocument yet,
+ // then presumably we haven't attempted to load the
+ // style sheet files. Create StyleSheetEntry instances
+ // for each style sheet file that we depend on.
+ if (_styleSheetDocument == null)
+ {
+ 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();
+ // convert to a type if possible first
+ // =-=jmw should I get the type for af|breadCrumbs-ora-show-last-item or just
+ // -ora-show-last-item. in other words, will the property name be the same type
+ // no matter which component it is being used for? If so, then
+ // just storing -ora-show-last-item in the map is good enough.
+ // For now, just for the heck of it, use af|breadCrumbs-ora-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);
+ }
+ }
+ }
+ }
+
+
+ // Now create entries for UIExtension-specific style sheets.
+ _extensionStyleSheets = _getExtensionStyleSheets(context);
+ }
+
+ // Now merge all of the documents provided by all of our
+ // entries into a single StyleSheetDocument.
+ StyleSheetDocument document = null;
+
+ if (_skinStyleSheet != null)
+ document = _skinStyleSheet.getDocument();
+
+ // Merge in any UIExtension style sheets on top of
+ // the skin's style sheet
+ if (_extensionStyleSheets != null)
+ {
+ for (int i = 0; i < _extensionStyleSheets.length; i++)
+ {
+ StyleSheetEntry entry = _extensionStyleSheets[i];
+ 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);
+ // =-=jmw @todo when we have extension documents, we'll need
+ // to register icons and skin properties from those on the skin?
+ }
+ }
+ }
+
+ // We're done!
+ if (document != null)
+ return document;
+
+ // If we weren't able to produce a StyleSheetDocument for whatever
+ // reason (maybe we don't have any style sheet, maybe there were
+ // I/O problems), create a empty StyleSheetDocument so that we
+ // don't repeatedly try to re-create the document.
+ return new StyleSheetDocument(null,
+ null,
+ StyleSheetDocument.UNKNOWN_TIMESTAMP);
+ }
+
+ // Gets the StyleSheetEntries for UIExtensions
+ private StyleSheetEntry[] _getExtensionStyleSheets(StyleContext context)
+ {
+ if (_extensionStyleSheetNames == null)
+ return null;
+
+ // Create a list to hold our StyleSheetEntries
+ int count = _extensionStyleSheetNames.size();
+ List<StyleSheetEntry> entries = new ArrayList<StyleSheetEntry>(count);
+
+ // Loop through all registered style sheet names and
+ // try to create a StyleSheetEntry for each name.
+ for(String name : _extensionStyleSheetNames)
+ {
+ StyleSheetEntry entry = StyleSheetEntry.createEntry(context, name);
+ if (entry != null)
+ {
+ entries.add(entry);
+ }
+ }
+
+ if (!entries.isEmpty())
+ {
+ _extensionStyleSheets = new StyleSheetEntry[entries.size()];
+ return entries.toArray(_extensionStyleSheets);
+ }
+
+ return null;
+ }
+
+ // HashMap that maps icon name to Icons
+ private OptimisticHashMap<String, Icon> _icons = new OptimisticHashMap<String, Icon>();
+
+ // The StyleSheetDocument which contains all of the styles
+ // for this Skin - including styles contributed by UIExtensions.
+ private StyleSheetDocument _styleSheetDocument;
+
+ // A StyleSheetEntry which defines the styles that are
+ // provided by this Skin's style sheet only (does
+ // not include UIExtension styles).
+ private StyleSheetEntry _skinStyleSheet;
+
+ // List of extension style sheet names
+ private List<String> _extensionStyleSheetNames;
+
+ // Array of UIExtension StyleSheetEntries
+ private StyleSheetEntry[] _extensionStyleSheets;
+
+ // HashMap of Skin properties
+ private OptimisticHashMap<Object, Object> _properties;
+
+ // Map of property to class type
+ private static final Map<String, Class<?>> _PROPERTY_CLASS_TYPE_MAP;
+ static
+ {
+ _PROPERTY_CLASS_TYPE_MAP = new HashMap<String, Class<?>>();
+
+ _PROPERTY_CLASS_TYPE_MAP.put(
+ SkinProperties.AF_NAVIGATIONPATH_SHOW_LAST_ITEM_PROPERTY_KEY, Boolean.class);
+ _PROPERTY_CLASS_TYPE_MAP.put(
+ SkinProperties.AF_TABLE_SELECTION_BAR_IN_TABLE, Boolean.class);
+ _PROPERTY_CLASS_TYPE_MAP.put(
+ SkinProperties.AF_TABLE_REPEAT_CONTROL_BAR, Boolean.class);
+ }
+
+ // Error messages
+ private static final String _CIRCULAR_INCLUDE_ERROR =
+ "Circular dependency detected in skin reference icon ";
+ private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(Skin.class);
+}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinNotAvailable.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinNotAvailable.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinNotAvailable.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinNotAvailable.java Fri Sep 22 15:18:32 2006
@@ -24,7 +24,7 @@
*
* @author The Oracle ADF Faces Team
*/
-public class SkinNotAvailable extends Skin
+public class SkinNotAvailable extends SkinImpl
{
/**
* returns the singleton instance of this class.
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleProvider.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleProvider.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleProvider.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleProvider.java Fri Sep 22 15:18:32 2006
@@ -143,7 +143,7 @@
synchronized (this)
{
// gets the skin's StyleSheetDocument (it creates it if needed)
- skinDocument = _skinDocument = _skin.getStyleSheetDocument(context);
+ skinDocument = _skinDocument = ((SkinImpl) _skin).getStyleSheetDocument(context);
}
@@ -168,7 +168,7 @@
// Synchronize access to _skinDocument
synchronized (this)
{
- return (_skinDocument != _skin.getStyleSheetDocument(context));
+ return (_skinDocument != ((SkinImpl) _skin).getStyleSheetDocument(context));
}
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/BaseImageIcon.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/BaseImageIcon.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/BaseImageIcon.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/BaseImageIcon.java Fri Sep 22 15:18:32 2006
@@ -219,8 +219,8 @@
* URI separator ('/').
*/
abstract protected String getBaseURI(
- FacesContext context,
- RenderingContext arc);
+ FacesContext context,
+ RenderingContext arc);
/**
* Returns the URI of the image relative to the base URI.
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/ContextImageIcon.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/ContextImageIcon.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/ContextImageIcon.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/ContextImageIcon.java Fri Sep 22 15:18:32 2006
@@ -17,14 +17,11 @@
package org.apache.myfaces.trinidadinternal.skin.icon;
import java.io.IOException;
+import java.io.InputStream;
import javax.faces.context.FacesContext;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
-import org.apache.myfaces.trinidadinternal.share.io.InputStreamProvider;
-import org.apache.myfaces.trinidadinternal.share.io.ServletNameResolver;
import org.apache.myfaces.trinidadinternal.style.Style;
@@ -110,25 +107,13 @@
/**
* Override of Icon.getImageIcon().
*/
- @Override
- public InputStreamProvider getImageData(
+ public InputStream openStream(
FacesContext context,
RenderingContext arc
) throws IOException
{
-
- ServletRequest servletRequest =
- (ServletRequest)context.getExternalContext().getRequest();
- ServletContext servletContext =
- (ServletContext)context.getExternalContext().getContext();
-
- if ((servletRequest == null) || (servletContext == null))
- return null;
-
- ServletNameResolver resolver = new ServletNameResolver(servletRequest,
- servletContext);
-
- return resolver.getProvider(getRelativeURI(context, arc));
+ return context.getExternalContext().getResourceAsStream(
+ getRelativeURI(context, arc));
}
/**
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/Icon.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/Icon.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/Icon.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/icon/Icon.java Fri Sep 22 15:18:32 2006
@@ -17,13 +17,13 @@
package org.apache.myfaces.trinidadinternal.skin.icon;
import java.io.IOException;
+import java.io.InputStream;
import java.util.Map;
import javax.faces.context.FacesContext;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
-import org.apache.myfaces.trinidadinternal.share.io.InputStreamProvider;
/**
* An object which represents a customizable icon that is capable of
@@ -111,14 +111,14 @@
}
/**
- * Returns an InputStreamProvider which provides access to the
+ * Returns an InputStream which provides access to the
* image data for image-based Icons.
* @param FacesContext context
* @param RenderingContext arc The RenderingContext for the
* current request.
* @todo Is this still necessary?
*/
- public InputStreamProvider getImageData(
+ public InputStream openStream(
FacesContext context,
RenderingContext arc
) throws IOException
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java Fri Sep 22 15:18:32 2006
@@ -979,7 +979,7 @@
_init(
localeContext.getTranslationLocale(),
- localeContext.getReadingDirection(),
+ LocaleUtils.getReadingDirection(localeContext),
agent.getAgentApplication(),
agent.getAgentMajorVersion(),
agent.getAgentOS(),
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/GraphicsUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/GraphicsUtils.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/GraphicsUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/GraphicsUtils.java Fri Sep 22 15:18:32 2006
@@ -268,13 +268,10 @@
}
else if ((current - start) > abortTimeout)
{
- // Stop the graphics loader thread
- // -= Simon Lessard =-
- // FIXME: stop() is bad, especially with all that synchronized
- // class used, it's deadlock prone, should stop it
- // differently.
+ // Don't know whether interrupt() is useful here,
+ // but give it a whirl
if (_sGraphicsLoaderThread != null)
- _sGraphicsLoaderThread.stop();
+ _sGraphicsLoaderThread.interrupt();
// Disable the graphics environment
__setGraphicsLoaded(false);
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java Fri Sep 22 15:18:32 2006
@@ -420,7 +420,7 @@
// Get the direction as a String
private static String _getDirectionString(StyleContext context)
{
- int direction = context.getLocaleContext().getReadingDirection();
+ int direction = LocaleUtils.getReadingDirection(context.getLocaleContext());
String name = getDirectionName(direction);
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocument.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocument.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocument.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocument.java Fri Sep 22 15:18:32 2006
@@ -308,7 +308,7 @@
{
LocaleContext localeContext = context.getLocaleContext();
Locale locale = localeContext.getTranslationLocale();
- int direction = localeContext.getReadingDirection();
+ int direction = LocaleUtils.getReadingDirection(localeContext);
int mode = NameUtils.getMode(ModeUtils.getCurrentMode(context));
TrinidadAgent agent = context.getAgent();
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/RootRenderingContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/RootRenderingContext.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/RootRenderingContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/RootRenderingContext.java Fri Sep 22 15:18:32 2006
@@ -462,8 +462,7 @@
Skin skin = getSkin();
if (mappedIconName != null)
{
- if ((getLocaleContext().getReadingDirection() ==
- LocaleUtils.DIRECTION_RIGHTTOLEFT) &&
+ if (getLocaleContext().isRightToLeft() &&
(!mappedIconName.endsWith(StyleUtils.RTL_CSS_SUFFIX)))
{
// append :rtl to the mappedIconName. If no icon with that name,
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/UIXRenderingContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/UIXRenderingContext.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/UIXRenderingContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/UIXRenderingContext.java Fri Sep 22 15:18:32 2006
@@ -27,7 +27,7 @@
import org.apache.myfaces.trinidadinternal.image.ImageContext;
-import org.apache.myfaces.trinidadinternal.renderkit.core.ppr.PartialPageContext;
+import org.apache.myfaces.trinidadinternal.renderkit.PartialPageContext;
import org.apache.myfaces.trinidadinternal.skin.icon.Icon;
import org.apache.myfaces.trinidadinternal.skin.Skin;
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/composite/CompositeRenderingContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/composite/CompositeRenderingContext.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/composite/CompositeRenderingContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/composite/CompositeRenderingContext.java Fri Sep 22 15:18:32 2006
@@ -32,7 +32,7 @@
import org.apache.myfaces.trinidadinternal.image.ImageContext;
-import org.apache.myfaces.trinidadinternal.renderkit.core.ppr.PartialPageContext;
+import org.apache.myfaces.trinidadinternal.renderkit.PartialPageContext;
import org.apache.myfaces.trinidadinternal.style.StyleContext;
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java Fri Sep 22 15:18:32 2006
@@ -19,9 +19,11 @@
import javax.faces.component.UIComponent;
+import org.apache.myfaces.trinidad.context.RequestContext;
+
import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
import org.apache.myfaces.trinidadinternal.agent.CapabilityKey;
-import org.apache.myfaces.trinidadinternal.share.config.AccessibilityMode;
+import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
import org.apache.myfaces.trinidadinternal.share.config.Configuration;
import org.apache.myfaces.trinidadinternal.ui.AttributeKey;
import org.apache.myfaces.trinidadinternal.ui.ElementRenderer;
@@ -497,8 +499,7 @@
UIXRenderingContext context
)
{
- return context.getLocaleContext().getReadingDirection() ==
- LocaleUtils.DIRECTION_RIGHTTOLEFT;
+ return context.getLocaleContext().isRightToLeft();
}
@@ -1047,7 +1048,9 @@
*/
public static boolean isInaccessibleMode(UIXRenderingContext context)
{
- return AccessibilityMode.isInaccessibleMode(context.getConfiguration());
+ RenderingContext rc = RenderingContext.getCurrentInstance();
+ return rc.getAccessibilityMode() ==
+ RequestContext.Accessibility.INACCESSIBLE;
}
/**
@@ -1055,7 +1058,9 @@
*/
public static boolean isScreenReaderMode(UIXRenderingContext context)
{
- return AccessibilityMode.isScreenReaderMode(context.getConfiguration());
+ RenderingContext rc = RenderingContext.getCurrentInstance();
+ return rc.getAccessibilityMode() ==
+ RequestContext.Accessibility.SCREEN_READER;
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafUtils.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafUtils.java Fri Sep 22 15:18:32 2006
@@ -125,8 +125,7 @@
UIXRenderingContext context
)
{
- return context.getLocaleContext().getReadingDirection() ==
- LocaleUtils.DIRECTION_RIGHTTOLEFT;
+ return context.getLocaleContext().isRightToLeft();
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GeneratedImageRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GeneratedImageRenderer.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GeneratedImageRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GeneratedImageRenderer.java Fri Sep 22 15:18:32 2006
@@ -497,15 +497,6 @@
return BaseDesktopUtils.getBackgroundColor(context);
}
- static protected int getDirection(
- UIXRenderingContext context,
- UINode node
- )
- {
- // Always get direction from LocaleContext
- return context.getLocaleContext().getReadingDirection();
- }
-
static protected boolean isTextAntialiased(
UIXRenderingContext context,
UINode node,
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/TreeRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/TreeRenderer.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/TreeRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/TreeRenderer.java Fri Sep 22 15:18:32 2006
@@ -111,7 +111,7 @@
final String varName = "_adftree" +
XhtmlUtils.getJSIdentifier(name);
- int readingDirection = context.getLocaleContext().getReadingDirection();
+ boolean leftToRight = !context.getLocaleContext().isRightToLeft();
int rootSize = tree.getRowCount();
RowKeySet state = getExpandedRowKeys(tree);
Map<Object, Boolean> selectedPaths = getSelectedPaths(focusPath);
@@ -129,7 +129,7 @@
state,
selectedPaths,
new Boolean[_DEFAULT_TREE_DEPTH],
- (readingDirection == LocaleUtils.DIRECTION_LEFTTORIGHT),
+ leftToRight,
(i == 0),
(i == rootSize - 1),
0);
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/AccentedLafIconProvider.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/AccentedLafIconProvider.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/AccentedLafIconProvider.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/AccentedLafIconProvider.java Fri Sep 22 15:18:32 2006
@@ -173,7 +173,7 @@
if (isDirectionIndependent)
direction = LocaleUtils.DIRECTION_LEFTTORIGHT;
else
- direction = context.getLocaleContext().getReadingDirection();
+ direction = LocaleUtils.getReadingDirection(context.getLocaleContext());
assert (direction != -1);
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/FormValueRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/FormValueRenderer.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/FormValueRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/FormValueRenderer.java Fri Sep 22 15:18:32 2006
@@ -23,7 +23,7 @@
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
-import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormData;
+import org.apache.myfaces.trinidadinternal.renderkit.FormData;
import org.apache.myfaces.trinidadinternal.share.url.FormEncoder;
import org.apache.myfaces.trinidadinternal.ui.NodeRole;
import org.apache.myfaces.trinidadinternal.ui.UIXRenderingContext;
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HiddenLabelUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HiddenLabelUtils.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HiddenLabelUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HiddenLabelUtils.java Fri Sep 22 15:18:32 2006
@@ -22,7 +22,6 @@
import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
import org.apache.myfaces.trinidadinternal.share.config.Configuration;
-import org.apache.myfaces.trinidadinternal.share.config.AccessibilityMode;
import org.apache.myfaces.trinidadinternal.ui.UIXRenderingContext;
import org.apache.myfaces.trinidadinternal.ui.UIConstants;
@@ -92,8 +91,7 @@
UIComponent component
) throws IOException
{
- Configuration config = context.getConfiguration();
- if (!AccessibilityMode.isInaccessibleMode(config) &&
+ if (!XhtmlLafRenderer.isInaccessibleMode(context) &&
(text != null) &&
(id != null))
{
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HtmlRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HtmlRenderer.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HtmlRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HtmlRenderer.java Fri Sep 22 15:18:32 2006
@@ -220,10 +220,9 @@
LocaleContext localeContext = context.getLocaleContext();
- String direction =
- (localeContext.getReadingDirection()==LocaleUtils.DIRECTION_LEFTTORIGHT)
- ? "ltr"
- : "rtl";
+ String direction = localeContext.isRightToLeft()
+ ? "rtl"
+ : "ltr";
writer.writeAttribute("dir", direction, null);
// render the correct language
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/NavigationBarRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/NavigationBarRenderer.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/NavigationBarRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/NavigationBarRenderer.java Fri Sep 22 15:18:32 2006
@@ -41,7 +41,7 @@
import org.apache.myfaces.trinidadinternal.ui.data.bind.AccessKeyBoundValue;
import org.apache.myfaces.trinidadinternal.ui.laf.base.SkinTranslatedBoundValue;
import org.apache.myfaces.trinidadinternal.ui.laf.base.NodeRoleUtils;
-import org.apache.myfaces.trinidadinternal.renderkit.core.ppr.PartialPageContext;
+import org.apache.myfaces.trinidadinternal.renderkit.PartialPageContext;
import org.apache.myfaces.trinidadinternal.ui.partial.PartialPageRendererUtils;
/**
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafRenderer.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafRenderer.java Fri Sep 22 15:18:32 2006
@@ -30,8 +30,8 @@
import org.apache.myfaces.trinidadinternal.image.ImageProvider;
import org.apache.myfaces.trinidadinternal.image.ImageProviderRequest;
import org.apache.myfaces.trinidadinternal.image.ImageProviderResponse;
+import org.apache.myfaces.trinidadinternal.renderkit.PartialPageContext;
import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
-import org.apache.myfaces.trinidadinternal.renderkit.core.ppr.PartialPageContext;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormRenderer;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SkinSelectors;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlRenderer;
Added: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/simple/desktop/IconInputStreamProvider.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/simple/desktop/IconInputStreamProvider.java?view=auto&rev=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/simple/desktop/IconInputStreamProvider.java (added)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/simple/desktop/IconInputStreamProvider.java Fri Sep 22 15:18:32 2006
@@ -0,0 +1,89 @@
+package org.apache.myfaces.trinidadinternal.ui.laf.simple.desktop;
+
+import java.io.InputStream;
+import java.io.IOException;
+
+import javax.faces.context.FacesContext;
+
+import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
+import org.apache.myfaces.trinidadinternal.share.io.InputStreamProvider;
+import org.apache.myfaces.trinidadinternal.skin.icon.Icon;
+
+class IconInputStreamProvider implements InputStreamProvider
+{
+ IconInputStreamProvider(Icon icon)
+ {
+ _icon = icon;
+ }
+
+ /**
+ * Return an InputStream for the target. This function
+ * should never return null - if a stream cannot be opened,
+ * throw an IOException.
+ */
+ public InputStream openInputStream() throws IOException
+ {
+ return _icon.openStream(FacesContext.getCurrentInstance(),
+ RenderingContext.getCurrentInstance());
+ }
+
+ /**
+ * Returns the name of the target location, suitable
+ * for user display.
+ */
+ public String getDisplayName()
+ {
+ return _icon.toString();
+ }
+
+ /**
+ * Returns an identifier object that uniquely
+ * identifies the target location. If two providers
+ * return equal identifiers, that is, given:
+ * <pre>
+ * Object identifierA = providerA.getIdentifier();
+ * Object identifierB = providerB.getIdentifier();
+ * </pre>
+ * ... then:
+ * <pre>
+ * if (identifierA.equals(identifierB)) ...
+ * </pre>
+ * then the two providers must point to the same location.
+ */
+ public Object getIdentifier()
+ {
+ return _icon;
+ }
+
+ /**
+ * Returns true if the underlying target has changed
+ * since the last call to openInputStream()
+ */
+ public boolean hasSourceChanged()
+ {
+ return false;
+ }
+
+ /**
+ * Returns the cached result from reading and parsing this
+ * provider.
+ * @see CachingNameResolver
+ */
+ public Object getCachedResult()
+ {
+ return _cachedResult;
+ }
+
+ /**
+ * Stores the cached result of reading and parsing this
+ * provider.
+ * @see CachingNameResolver
+ */
+ public void setCachedResult(Object value)
+ {
+ _cachedResult = value;
+ }
+
+ private Icon _icon;
+ private Object _cachedResult;
+}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/simple/desktop/SimpleButtonUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/simple/desktop/SimpleButtonUtils.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/simple/desktop/SimpleButtonUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/simple/desktop/SimpleButtonUtils.java Fri Sep 22 15:18:32 2006
@@ -283,14 +283,7 @@
if (icon != null)
{
- try
- {
- return icon.getImageData(_fContext, _arc);
- }
- catch (IOException e)
- {
- _LOG.severe(e);
- }
+ return new IconInputStreamProvider(icon);
}
return null;
@@ -307,8 +300,7 @@
{
LocaleContext lContext = context.getLocaleContext();
- return (LocaleUtils.DIRECTION_RIGHTTOLEFT ==
- lContext.getReadingDirection());
+ return lContext.isRightToLeft();
}
// Key for Boolean Skin property which we use
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/uinode/FacesRenderingContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/uinode/FacesRenderingContext.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/uinode/FacesRenderingContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/uinode/FacesRenderingContext.java Fri Sep 22 15:18:32 2006
@@ -24,7 +24,7 @@
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
import org.apache.myfaces.trinidad.context.RequestContext;
-import org.apache.myfaces.trinidadinternal.renderkit.core.ppr.PartialPageContext;
+import org.apache.myfaces.trinidadinternal.renderkit.PartialPageContext;
import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
import org.apache.myfaces.trinidadinternal.share.config.ContextBasedConfiguration;
@@ -37,6 +37,7 @@
import org.apache.myfaces.trinidadinternal.style.StyleContext;
import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
+import org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderingContext;
/**
* RenderingContext implementation that supports JSF.
@@ -138,7 +139,7 @@
*/
public StyleContext getStyleContext()
{
- return _adfRenderingContext.getStyleContext();
+ return ((CoreRenderingContext) _adfRenderingContext).getStyleContext();
}
/**
@@ -151,7 +152,7 @@
public TrinidadAgent getAgent()
{
- return _adfRenderingContext.getAgent();
+ return ((CoreRenderingContext) _adfRenderingContext).getTrinidadAgent();
}
@Override
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/FormattedTextParser.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/FormattedTextParser.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/FormattedTextParser.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/FormattedTextParser.java Fri Sep 22 15:18:32 2006
@@ -721,8 +721,8 @@
return;
RenderingContext arc = RenderingContext.getCurrentInstance();
- if (!Boolean.FALSE.equals(arc.getAgent().getCapability(
- TrinidadAgent.CAP_NAVIGATION)))
+ if (!Boolean.FALSE.equals(arc.getAgent().getCapabilities().get(
+ TrinidadAgent.CAP_NAVIGATION)))
context.getResponseWriter().writeURIAttribute("href", href, null);
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/nls/LocaleUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/nls/LocaleUtils.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/nls/LocaleUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/nls/LocaleUtils.java Fri Sep 22 15:18:32 2006
@@ -17,6 +17,8 @@
import java.util.Locale;
+import org.apache.myfaces.trinidadinternal.share.nls.LocaleContext;
+
/**
@@ -45,6 +47,17 @@
*/
public static final int DIRECTION_RIGHTTOLEFT = 2;
+
+ /**
+ * Conversion function to go from LocaleContext to the obsolete
+ * reading direction API.
+ */
+ public static int getReadingDirection(LocaleContext localeContext)
+ {
+ return localeContext.isRightToLeft()
+ ? DIRECTION_RIGHTTOLEFT
+ : DIRECTION_LEFTTORIGHT;
+ }
/**
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/CoreRenderKitTest.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/CoreRenderKitTest.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/CoreRenderKitTest.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/CoreRenderKitTest.java Fri Sep 22 15:18:32 2006
@@ -32,6 +32,7 @@
import org.apache.myfaces.trinidad.component.core.CoreDocument;
import org.apache.myfaces.trinidad.component.core.CoreForm;
import org.apache.myfaces.trinidad.component.html.HtmlHtml;
+import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit;
@@ -138,12 +139,12 @@
false));
_definitions.add(new SuiteDefinition("minimalScrRdr",
"minimal",
- "screenReader",
+ RequestContext.Accessibility.SCREEN_READER,
RenderKitBootstrap.getGeckoAgent(),
false));
_definitions.add(new SuiteDefinition("minimalInacc",
"minimal",
- "inaccessible",
+ RequestContext.Accessibility.INACCESSIBLE,
RenderKitBootstrap.getGeckoAgent(),
false));
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java Fri Sep 22 15:18:32 2006
@@ -142,12 +142,12 @@
}
@Override
- public String getAccessibilityMode()
+ public Accessibility getAccessibilityMode()
{
return _accMode;
}
- public void setAccessibilityMode(String accMode)
+ public void setAccessibilityMode(Accessibility accMode)
{
_accMode = accMode;
}
@@ -260,7 +260,7 @@
}
private String _skin;
- private String _accMode;
+ private Accessibility _accMode;
private Agent _agent;
private boolean _rtl = false;
static private TimeZone _FIXED_TIME_ZONE =
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java?view=diff&rev=449112&r1=449111&r2=449112
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/RenderKitTestCase.java Fri Sep 22 15:18:32 2006
@@ -40,6 +40,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.myfaces.trinidad.context.Agent;
+import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidad.render.ExtendedRenderKitService;
import org.apache.myfaces.trinidad.util.Service;
@@ -80,7 +81,7 @@
String categoryName,
String skin,
Agent agent,
- String accMode,
+ RequestContext.Accessibility accMode,
boolean rightToLeft)
{
super(name + "-" + categoryName);
@@ -217,7 +218,7 @@
private MRequestContext _requestContext;
private String _skin;
private Agent _agent;
- private String _accMode;
+ private RequestContext.Accessibility _accMode;
private boolean _rightToLeft;
}
@@ -515,7 +516,7 @@
public SuiteDefinition(
String category,
String skin,
- String accessibilityMode,
+ RequestContext.Accessibility accessibilityMode,
Agent agent,
boolean rightToLeft)
{
@@ -536,7 +537,7 @@
return _skin;
}
- public String getAccessibilityMode()
+ public RequestContext.Accessibility getAccessibilityMode()
{
return _accessibilityMode;
}
@@ -554,7 +555,7 @@
private String _category;
private String _skin;
- private String _accessibilityMode;
+ private RequestContext.Accessibility _accessibilityMode;
private Agent _agent;
private boolean _rightToLeft;
}