Repository: flex-falcon Updated Branches: refs/heads/develop c040b5c88 -> b628a01d0
FLEX-35171 handle child selectors in CSS output generation Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/b628a01d Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/b628a01d Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/b628a01d Branch: refs/heads/develop Commit: b628a01d0e7a7b2943810e97b163c34fbc224456 Parents: c040b5c Author: Alex Harui <[email protected]> Authored: Wed Nov 23 22:03:02 2016 -0800 Committer: Alex Harui <[email protected]> Committed: Wed Nov 23 22:03:02 2016 -0800 ---------------------------------------------------------------------- .../flex/compiler/internal/css/CSSSelector.java | 24 +++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b628a01d/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java ---------------------------------------------------------------------- diff --git a/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java b/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java index edb7c7b..b3290b8 100644 --- a/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java +++ b/compiler/src/main/java/org/apache/flex/compiler/internal/css/CSSSelector.java @@ -102,10 +102,32 @@ public class CSSSelector extends CSSNodeBase implements ICSSSelector result.append(namespacePrefix).append("|"); if (elementName != null) result.append(elementName); - result.append(Joiner.on("").join(conditions)); + result.append(stringifyConditions(conditions)); return result.toString(); } + public String stringifyConditions(List<ICSSSelectorCondition> conditions) + { + StringBuilder s = new StringBuilder(); + int n = conditions.size(); + if (n == 0) return ""; + if (n == 1) return conditions.get(0).toString(); + for (int i = 0; i < n; i++) + { + ICSSSelectorCondition condition = conditions.get(i); + if (condition.getConditionType() == ConditionType.CHILD) + { + String prefix = condition.getConditionType().prefix + " "; + s.insert(0, prefix); + } + else + { + s.append(condition.getConditionType().prefix); + s.append(condition.getValue()); + } + } + return s.toString(); + } @Override public ICSSCombinator getCombinator() {
