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/08/16 20:36:56 UTC
svn commit: r432026 -
/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/CSSGenerationUtils.java
Author: jwaldman
Date: Wed Aug 16 13:36:55 2006
New Revision: 432026
URL: http://svn.apache.org/viewvc?rev=432026&view=rev
Log:
fix for ADFFACES-136 skinning css generator fails to generate "af|foo::pseudo-element.StyleClass" css style correctly
Modified:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/CSSGenerationUtils.java
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/CSSGenerationUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/CSSGenerationUtils.java?rev=432026&r1=432025&r2=432026&view=diff
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/CSSGenerationUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/CSSGenerationUtils.java Wed Aug 16 13:36:55 2006
@@ -834,6 +834,8 @@
* if I see this: af|foo:p-class.StyleClass::element, return this:
* 'af|foo:p-class.StyleClass' 'af|foo::element'
* af|foo.StyleClass::element -> 'af|foo.StyleClass' 'af|foo::element'
+ * If I see thiss: af|foo::p-element.StyleClass, return this
+ * af|foo::p-element.StyleClass (leave alone).
*/
private static String[] _orderPseudoElementsAndClasses(
String[] input,
@@ -854,29 +856,34 @@
int indexOfDoubleColon = input[i].indexOf("::");
if (indexOfDoubleColon == -1)
{
- // no double colon
+ // no double colon (aka pseudo-element)
output.add(input[i]);
}
else
{
- // you have a double colon.
- int indexOfColon = input[i].indexOf(':');
- if (indexOfColon == indexOfDoubleColon)
- indexOfColon = -1;
+ // you have a double colon index. Now look to see if we need to
+ // reorder. We have to reorder if the pseudo-element comes after
+ // the pseudo-class or composite style classes.
+ int indexOfFirstColon = input[i].indexOf(':');
int indexOfDot = input[i].indexOf('.');
- if ((indexOfColon >= indexOfDoubleColon &&
- indexOfDot >= indexOfDoubleColon) ||
- (indexOfColon == -1 && indexOfDot == -1))
+
+ boolean pseudoClassBeforePseudoElement =
+ (indexOfFirstColon < indexOfDoubleColon);
+ boolean styleClassBeforePseudoElement =
+ (indexOfDot != -1 && indexOfDot < indexOfDoubleColon);
+
+ if (!(pseudoClassBeforePseudoElement ||
+ styleClassBeforePseudoElement))
{
- // colon and styleClasses are after double colon
- // OR there are no colons and styleClasses.
- output.add(input[i]);
- }
+ output.add(input[i]);
+ }
else
{
- int indexOfClass = Math.min(indexOfColon, indexOfDot);
+ if (indexOfFirstColon == indexOfDoubleColon)
+ indexOfFirstColon = -1;
+ int indexOfClass = Math.min(indexOfFirstColon, indexOfDot);
if (indexOfClass == -1)
- indexOfClass = Math.max(indexOfColon, indexOfDot);
+ indexOfClass = Math.max(indexOfFirstColon, indexOfDot);
// we have the condition where pseudo-class or styleClass is before
// pseudo-element: af|foo:psdo-class::psdo-element