From 4f254bde7530e2ca1b1eb1e9dd58477890cbf754 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Mon, 31 Mar 2014 15:03:04 +0200 Subject: [PATCH] add StyleBuilder interface --- vtm/src/org/oscim/theme/styles/AreaStyle.java | 2 +- vtm/src/org/oscim/theme/styles/LineStyle.java | 7 ++++++- vtm/src/org/oscim/theme/styles/RenderStyle.java | 6 ++++++ vtm/src/org/oscim/theme/styles/TextStyle.java | 7 ++++++- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/vtm/src/org/oscim/theme/styles/AreaStyle.java b/vtm/src/org/oscim/theme/styles/AreaStyle.java index 9a1d28ba..35adebbb 100644 --- a/vtm/src/org/oscim/theme/styles/AreaStyle.java +++ b/vtm/src/org/oscim/theme/styles/AreaStyle.java @@ -104,7 +104,7 @@ public class AreaStyle extends RenderStyle { renderCallback.renderWay(outline, level + 1); } - public static class AreaBuilder { + public static class AreaBuilder implements StyleBuilder { public int level; public String style; public LineStyle outline; diff --git a/vtm/src/org/oscim/theme/styles/LineStyle.java b/vtm/src/org/oscim/theme/styles/LineStyle.java index 152756c5..0c59fc01 100644 --- a/vtm/src/org/oscim/theme/styles/LineStyle.java +++ b/vtm/src/org/oscim/theme/styles/LineStyle.java @@ -98,7 +98,7 @@ public final class LineStyle extends RenderStyle { return (LineStyle) mCurrent; } - public final static class LineBuilder { + public final static class LineBuilder implements StyleBuilder { public int level; public String style; @@ -203,5 +203,10 @@ public final class LineStyle extends RenderStyle { public LineStyle build() { return new LineStyle(this); } + + public LineBuilder cap(Cap cap) { + this.cap = cap; + return this; + } } } diff --git a/vtm/src/org/oscim/theme/styles/RenderStyle.java b/vtm/src/org/oscim/theme/styles/RenderStyle.java index 82127b0f..4ad6b15c 100644 --- a/vtm/src/org/oscim/theme/styles/RenderStyle.java +++ b/vtm/src/org/oscim/theme/styles/RenderStyle.java @@ -24,6 +24,12 @@ import org.oscim.theme.IRenderTheme.Callback; */ public abstract class RenderStyle { + public interface StyleBuilder { + RenderStyle build(); + + StyleBuilder level(int level); + } + RenderStyle mCurrent = this; RenderStyle mNext; boolean update; diff --git a/vtm/src/org/oscim/theme/styles/TextStyle.java b/vtm/src/org/oscim/theme/styles/TextStyle.java index c6c0a3ab..130c3b42 100644 --- a/vtm/src/org/oscim/theme/styles/TextStyle.java +++ b/vtm/src/org/oscim/theme/styles/TextStyle.java @@ -27,7 +27,7 @@ import org.oscim.theme.IRenderTheme.Callback; public final class TextStyle extends RenderStyle { - public static class TextBuilder { + public static class TextBuilder implements StyleBuilder { public String style; public float fontSize; @@ -134,6 +134,11 @@ public final class TextStyle extends RenderStyle { this.strokeWidth = strokeWidth; return this; } + + @Override + public TextBuilder level(int level) { + return this; + } } TextStyle(TextBuilder tb) {