From 120797fe9684bd0071659c39f1cdf5c49dae4ba0 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Mon, 31 Mar 2014 15:07:00 +0200 Subject: [PATCH] add RuleBuilder setters for Rule- and Style-Builders --- vtm/src/org/oscim/theme/XmlThemeBuilder.java | 2 +- vtm/src/org/oscim/theme/rule/RuleBuilder.java | 30 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/vtm/src/org/oscim/theme/XmlThemeBuilder.java b/vtm/src/org/oscim/theme/XmlThemeBuilder.java index 5c480864..59b6f402 100644 --- a/vtm/src/org/oscim/theme/XmlThemeBuilder.java +++ b/vtm/src/org/oscim/theme/XmlThemeBuilder.java @@ -155,7 +155,7 @@ public class XmlThemeBuilder extends DefaultHandler { Rule[] rules = new Rule[mRulesList.size()]; for (int i = 0, n = rules.length; i < n; i++) - rules[i] = mRulesList.get(i).onComplete(); + rules[i] = mRulesList.get(i).onComplete(null); mRenderTheme = new RenderTheme(mMapBackground, mBaseTextSize, rules, mLevels); diff --git a/vtm/src/org/oscim/theme/rule/RuleBuilder.java b/vtm/src/org/oscim/theme/rule/RuleBuilder.java index 7a454740..47555873 100644 --- a/vtm/src/org/oscim/theme/rule/RuleBuilder.java +++ b/vtm/src/org/oscim/theme/rule/RuleBuilder.java @@ -36,6 +36,7 @@ public class RuleBuilder { ArrayList renderStyles = new ArrayList(4); ArrayList subRules = new ArrayList(4); + StyleBuilder[] styleBuilder; private static final String STRING_NEGATION = "~"; private static final String STRING_EXCLUSIVE = "-"; @@ -112,11 +113,17 @@ public class RuleBuilder { return this; } - public Rule onComplete() { + public Rule onComplete(int[] level) { RenderStyle[] styles = null; Rule[] rules = null; + if (styleBuilder != null) + for (StyleBuilder style : styleBuilder) { + renderStyles.add(style.level(level[0]).build()); + level[0] += 2; + } + if (renderStyles.size() > 0) { styles = new RenderStyle[renderStyles.size()]; renderStyles.toArray(styles); @@ -125,7 +132,7 @@ public class RuleBuilder { if (subRules.size() > 0) { rules = new Rule[subRules.size()]; for (int i = 0; i < rules.length; i++) - rules[i] = subRules.get(i).onComplete(); + rules[i] = subRules.get(i).onComplete(level); } int numKeys = keys.length; @@ -163,22 +170,25 @@ public class RuleBuilder { } - public void addStyle(RenderStyle style) { + public RuleBuilder addStyle(RenderStyle style) { renderStyles.add(style); + return this; } - public void addSubRule(RuleBuilder rule) { + public RuleBuilder addSubRule(RuleBuilder rule) { subRules.add(rule); + return this; } - RuleBuilder(boolean positive) { - this.positiveRule = positive; - this.element = Element.ANY; - this.zoom = ~0; + public RuleBuilder style(StyleBuilder... styles) { + styleBuilder = styles; + return this; } - public static RuleBuilder get() { - return new RuleBuilder(true); + public RuleBuilder rules(RuleBuilder... rules) { + for (RuleBuilder rule : rules) + subRules.add(rule); + return this; } public RuleBuilder select(int selector) {