diff --git a/src/de/schildbach/pte/AbstractEfaProvider.java b/src/de/schildbach/pte/AbstractEfaProvider.java index 07438e7a..3fa4ee90 100644 --- a/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1490,7 +1490,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider XmlPullUtil.exit(pp, "itdServingLine"); final String label = parseLine(motType, number, number, noTrainName); - return new Line(id, label, lineColors(label)); + return new Line(id, label, lineStyle(label)); } private static final Pattern P_STATION_NAME_WHITESPACE = Pattern.compile("\\s+"); @@ -1971,7 +1971,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider XmlPullUtil.exit(pp, "genAttrList"); } - final Line line = new Line(lineId, lineLabel, lineColors(lineLabel), lineAttrs); + final Line line = new Line(lineId, lineLabel, lineStyle(lineLabel), lineAttrs); parts.add(new Connection.Trip(line, destination, departureTargetTime != null ? departureTargetTime : departureTime, departureTargetTime, departurePosition, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime, diff --git a/src/de/schildbach/pte/AbstractHafasProvider.java b/src/de/schildbach/pte/AbstractHafasProvider.java index 12e73812..1195d065 100644 --- a/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/src/de/schildbach/pte/AbstractHafasProvider.java @@ -636,7 +636,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider lineStr = classChar + m.group(1) + m.group(2); else lineStr = classChar + prod; - line = new Line(null, lineStr, lineStr != null ? lineColors(lineStr) : null); + line = new Line(null, lineStr, lineStr != null ? lineStyle(lineStr) : null); } else { @@ -1863,14 +1863,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider { if (attrs.length == 0) { - return new Line(null, lineStr, lineColors(lineStr)); + return new Line(null, lineStr, lineStyle(lineStr)); } else { final Set attrSet = new HashSet(); for (final Line.Attr attr : attrs) attrSet.add(attr); - return new Line(null, lineStr, lineColors(lineStr), attrSet); + return new Line(null, lineStr, lineStyle(lineStr), attrSet); } } diff --git a/src/de/schildbach/pte/AbstractNetworkProvider.java b/src/de/schildbach/pte/AbstractNetworkProvider.java index 25f3b6b5..c3928dc8 100644 --- a/src/de/schildbach/pte/AbstractNetworkProvider.java +++ b/src/de/schildbach/pte/AbstractNetworkProvider.java @@ -21,28 +21,28 @@ import java.util.HashMap; import java.util.Map; import de.schildbach.pte.dto.Point; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach */ public abstract class AbstractNetworkProvider implements NetworkProvider { - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { - LINES.put('I', new int[] { Color.WHITE, Color.RED, Color.RED }); - LINES.put('R', new int[] { Color.GRAY, Color.WHITE }); - LINES.put('S', new int[] { Color.parseColor("#006e34"), Color.WHITE }); - LINES.put('U', new int[] { Color.parseColor("#003090"), Color.WHITE }); - LINES.put('T', new int[] { Color.parseColor("#cc0000"), Color.WHITE }); - LINES.put('B', new int[] { Color.parseColor("#993399"), Color.WHITE }); - LINES.put('F', new int[] { Color.BLUE, Color.WHITE }); - LINES.put('?', new int[] { Color.DKGRAY, Color.WHITE }); + LINES.put('I', new Style(Style.WHITE, Style.RED, Style.RED)); + LINES.put('R', new Style(Style.GRAY, Style.WHITE)); + LINES.put('S', new Style(Style.parseColor("#006e34"), Style.WHITE)); + LINES.put('U', new Style(Style.parseColor("#003090"), Style.WHITE)); + LINES.put('T', new Style(Style.parseColor("#cc0000"), Style.WHITE)); + LINES.put('B', new Style(Style.parseColor("#993399"), Style.WHITE)); + LINES.put('F', new Style(Style.BLUE, Style.WHITE)); + LINES.put('?', new Style(Style.DKGRAY, Style.WHITE)); } - public int[] lineColors(final String line) + public Style lineStyle(final String line) { if (line.length() == 0) return null; diff --git a/src/de/schildbach/pte/BvgProvider.java b/src/de/schildbach/pte/BvgProvider.java index 89bb9315..8ed7e4b3 100644 --- a/src/de/schildbach/pte/BvgProvider.java +++ b/src/de/schildbach/pte/BvgProvider.java @@ -44,10 +44,10 @@ import de.schildbach.pte.dto.QueryDeparturesResult; import de.schildbach.pte.dto.ResultHeader; import de.schildbach.pte.dto.StationDepartures; import de.schildbach.pte.dto.Stop; +import de.schildbach.pte.dto.Style; import de.schildbach.pte.exception.SessionExpiredException; import de.schildbach.pte.exception.UnexpectedRedirectException; import de.schildbach.pte.geo.Berlin; -import de.schildbach.pte.util.Color; import de.schildbach.pte.util.ParserUtils; /** @@ -927,125 +927,125 @@ public final class BvgProvider extends AbstractHafasProvider return 0; } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { - LINES.put("SS1", new int[] { Color.rgb(221, 77, 174), Color.WHITE }); - LINES.put("SS2", new int[] { Color.rgb(16, 132, 73), Color.WHITE }); - LINES.put("SS25", new int[] { Color.rgb(16, 132, 73), Color.WHITE }); - LINES.put("SS3", new int[] { Color.rgb(22, 106, 184), Color.WHITE }); - LINES.put("SS41", new int[] { Color.rgb(162, 63, 48), Color.WHITE }); - LINES.put("SS42", new int[] { Color.rgb(191, 90, 42), Color.WHITE }); - LINES.put("SS45", new int[] { Color.WHITE, Color.rgb(191, 128, 55) }); - LINES.put("SS46", new int[] { Color.rgb(191, 128, 55), Color.WHITE }); - LINES.put("SS47", new int[] { Color.rgb(191, 128, 55), Color.WHITE }); - LINES.put("SS5", new int[] { Color.rgb(243, 103, 23), Color.WHITE }); - LINES.put("SS7", new int[] { Color.rgb(119, 96, 176), Color.WHITE }); - LINES.put("SS75", new int[] { Color.rgb(119, 96, 176), Color.WHITE }); - LINES.put("SS8", new int[] { Color.rgb(85, 184, 49), Color.WHITE }); - LINES.put("SS85", new int[] { Color.WHITE, Color.rgb(85, 184, 49) }); - LINES.put("SS9", new int[] { Color.rgb(148, 36, 64), Color.WHITE }); + LINES.put("SS1", new Style(Style.rgb(221, 77, 174), Style.WHITE)); + LINES.put("SS2", new Style(Style.rgb(16, 132, 73), Style.WHITE)); + LINES.put("SS25", new Style(Style.rgb(16, 132, 73), Style.WHITE)); + LINES.put("SS3", new Style(Style.rgb(22, 106, 184), Style.WHITE)); + LINES.put("SS41", new Style(Style.rgb(162, 63, 48), Style.WHITE)); + LINES.put("SS42", new Style(Style.rgb(191, 90, 42), Style.WHITE)); + LINES.put("SS45", new Style(Style.WHITE, Style.rgb(191, 128, 55))); + LINES.put("SS46", new Style(Style.rgb(191, 128, 55), Style.WHITE)); + LINES.put("SS47", new Style(Style.rgb(191, 128, 55), Style.WHITE)); + LINES.put("SS5", new Style(Style.rgb(243, 103, 23), Style.WHITE)); + LINES.put("SS7", new Style(Style.rgb(119, 96, 176), Style.WHITE)); + LINES.put("SS75", new Style(Style.rgb(119, 96, 176), Style.WHITE)); + LINES.put("SS8", new Style(Style.rgb(85, 184, 49), Style.WHITE)); + LINES.put("SS85", new Style(Style.WHITE, Style.rgb(85, 184, 49))); + LINES.put("SS9", new Style(Style.rgb(148, 36, 64), Style.WHITE)); - LINES.put("UU1", new int[] { Color.rgb(84, 131, 47), Color.WHITE }); - LINES.put("UU2", new int[] { Color.rgb(215, 25, 16), Color.WHITE }); - LINES.put("UU3", new int[] { Color.rgb(47, 152, 154), Color.WHITE }); - LINES.put("UU4", new int[] { Color.rgb(255, 233, 42), Color.BLACK }); - LINES.put("UU5", new int[] { Color.rgb(91, 31, 16), Color.WHITE }); - LINES.put("UU55", new int[] { Color.rgb(91, 31, 16), Color.WHITE }); - LINES.put("UU6", new int[] { Color.rgb(127, 57, 115), Color.WHITE }); - LINES.put("UU7", new int[] { Color.rgb(0, 153, 204), Color.WHITE }); - LINES.put("UU8", new int[] { Color.rgb(24, 25, 83), Color.WHITE }); - LINES.put("UU9", new int[] { Color.rgb(255, 90, 34), Color.WHITE }); + LINES.put("UU1", new Style(Style.rgb(84, 131, 47), Style.WHITE)); + LINES.put("UU2", new Style(Style.rgb(215, 25, 16), Style.WHITE)); + LINES.put("UU3", new Style(Style.rgb(47, 152, 154), Style.WHITE)); + LINES.put("UU4", new Style(Style.rgb(255, 233, 42), Style.BLACK)); + LINES.put("UU5", new Style(Style.rgb(91, 31, 16), Style.WHITE)); + LINES.put("UU55", new Style(Style.rgb(91, 31, 16), Style.WHITE)); + LINES.put("UU6", new Style(Style.rgb(127, 57, 115), Style.WHITE)); + LINES.put("UU7", new Style(Style.rgb(0, 153, 204), Style.WHITE)); + LINES.put("UU8", new Style(Style.rgb(24, 25, 83), Style.WHITE)); + LINES.put("UU9", new Style(Style.rgb(255, 90, 34), Style.WHITE)); - LINES.put("TM1", new int[] { Color.parseColor("#eb8614"), Color.WHITE }); - LINES.put("TM2", new int[] { Color.parseColor("#68c52f"), Color.WHITE }); - LINES.put("TM4", new int[] { Color.parseColor("#cf1b22"), Color.WHITE }); - LINES.put("TM5", new int[] { Color.parseColor("#bf8037"), Color.WHITE }); - LINES.put("TM6", new int[] { Color.parseColor("#1e5ca2"), Color.WHITE }); - LINES.put("TM8", new int[] { Color.parseColor("#f46717"), Color.WHITE }); - LINES.put("TM10", new int[] { Color.parseColor("#108449"), Color.WHITE }); - LINES.put("TM13", new int[] { Color.parseColor("#36ab94"), Color.WHITE }); - LINES.put("TM17", new int[] { Color.parseColor("#a23f30"), Color.WHITE }); + LINES.put("TM1", new Style(Style.parseColor("#eb8614"), Style.WHITE)); + LINES.put("TM2", new Style(Style.parseColor("#68c52f"), Style.WHITE)); + LINES.put("TM4", new Style(Style.parseColor("#cf1b22"), Style.WHITE)); + LINES.put("TM5", new Style(Style.parseColor("#bf8037"), Style.WHITE)); + LINES.put("TM6", new Style(Style.parseColor("#1e5ca2"), Style.WHITE)); + LINES.put("TM8", new Style(Style.parseColor("#f46717"), Style.WHITE)); + LINES.put("TM10", new Style(Style.parseColor("#108449"), Style.WHITE)); + LINES.put("TM13", new Style(Style.parseColor("#36ab94"), Style.WHITE)); + LINES.put("TM17", new Style(Style.parseColor("#a23f30"), Style.WHITE)); - LINES.put("T12", new int[] { Color.parseColor("#7d64b2"), Color.WHITE }); - LINES.put("T16", new int[] { Color.parseColor("#1e5ca2"), Color.WHITE }); - LINES.put("T18", new int[] { Color.parseColor("#f46717"), Color.WHITE }); - LINES.put("T21", new int[] { Color.parseColor("#7d64b2"), Color.WHITE }); - LINES.put("T27", new int[] { Color.parseColor("#a23f30"), Color.WHITE }); - LINES.put("T37", new int[] { Color.parseColor("#a23f30"), Color.WHITE }); - LINES.put("T50", new int[] { Color.parseColor("#36ab94"), Color.WHITE }); - LINES.put("T60", new int[] { Color.parseColor("#108449"), Color.WHITE }); - LINES.put("T61", new int[] { Color.parseColor("#108449"), Color.WHITE }); - LINES.put("T62", new int[] { Color.parseColor("#125030"), Color.WHITE }); - LINES.put("T63", new int[] { Color.parseColor("#36ab94"), Color.WHITE }); - LINES.put("T67", new int[] { Color.parseColor("#108449"), Color.WHITE }); - LINES.put("T68", new int[] { Color.parseColor("#108449"), Color.WHITE }); + LINES.put("T12", new Style(Style.parseColor("#7d64b2"), Style.WHITE)); + LINES.put("T16", new Style(Style.parseColor("#1e5ca2"), Style.WHITE)); + LINES.put("T18", new Style(Style.parseColor("#f46717"), Style.WHITE)); + LINES.put("T21", new Style(Style.parseColor("#7d64b2"), Style.WHITE)); + LINES.put("T27", new Style(Style.parseColor("#a23f30"), Style.WHITE)); + LINES.put("T37", new Style(Style.parseColor("#a23f30"), Style.WHITE)); + LINES.put("T50", new Style(Style.parseColor("#36ab94"), Style.WHITE)); + LINES.put("T60", new Style(Style.parseColor("#108449"), Style.WHITE)); + LINES.put("T61", new Style(Style.parseColor("#108449"), Style.WHITE)); + LINES.put("T62", new Style(Style.parseColor("#125030"), Style.WHITE)); + LINES.put("T63", new Style(Style.parseColor("#36ab94"), Style.WHITE)); + LINES.put("T67", new Style(Style.parseColor("#108449"), Style.WHITE)); + LINES.put("T68", new Style(Style.parseColor("#108449"), Style.WHITE)); - LINES.put("FF1", new int[] { Color.BLUE, Color.WHITE }); // Potsdam - LINES.put("FF10", new int[] { Color.BLUE, Color.WHITE }); - LINES.put("FF11", new int[] { Color.BLUE, Color.WHITE }); - LINES.put("FF12", new int[] { Color.BLUE, Color.WHITE }); - LINES.put("FF21", new int[] { Color.BLUE, Color.WHITE }); - LINES.put("FF23", new int[] { Color.BLUE, Color.WHITE }); - LINES.put("FF24", new int[] { Color.BLUE, Color.WHITE }); + LINES.put("FF1", new Style(Style.BLUE, Style.WHITE)); // Potsdam + LINES.put("FF10", new Style(Style.BLUE, Style.WHITE)); + LINES.put("FF11", new Style(Style.BLUE, Style.WHITE)); + LINES.put("FF12", new Style(Style.BLUE, Style.WHITE)); + LINES.put("FF21", new Style(Style.BLUE, Style.WHITE)); + LINES.put("FF23", new Style(Style.BLUE, Style.WHITE)); + LINES.put("FF24", new Style(Style.BLUE, Style.WHITE)); // Regional lines Brandenburg: - LINES.put("RRE1", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); - LINES.put("RRE2", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); - LINES.put("RRE3", new int[] { Color.parseColor("#F57921"), Color.WHITE }); - LINES.put("RRE4", new int[] { Color.parseColor("#952D4F"), Color.WHITE }); - LINES.put("RRE5", new int[] { Color.parseColor("#0072BC"), Color.WHITE }); - LINES.put("RRE6", new int[] { Color.parseColor("#DB6EAB"), Color.WHITE }); - LINES.put("RRE7", new int[] { Color.parseColor("#00854A"), Color.WHITE }); - LINES.put("RRE10", new int[] { Color.parseColor("#A7653F"), Color.WHITE }); - LINES.put("RRE11", new int[] { Color.parseColor("#059EDB"), Color.WHITE }); - LINES.put("RRE11", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); - LINES.put("RRE15", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); - LINES.put("RRE18", new int[] { Color.parseColor("#00A65E"), Color.WHITE }); - LINES.put("RRB10", new int[] { Color.parseColor("#60BB46"), Color.WHITE }); - LINES.put("RRB12", new int[] { Color.parseColor("#A3238E"), Color.WHITE }); - LINES.put("RRB13", new int[] { Color.parseColor("#F68B1F"), Color.WHITE }); - LINES.put("RRB13", new int[] { Color.parseColor("#00A65E"), Color.WHITE }); - LINES.put("RRB14", new int[] { Color.parseColor("#A3238E"), Color.WHITE }); - LINES.put("RRB20", new int[] { Color.parseColor("#00854A"), Color.WHITE }); - LINES.put("RRB21", new int[] { Color.parseColor("#5E6DB3"), Color.WHITE }); - LINES.put("RRB22", new int[] { Color.parseColor("#0087CB"), Color.WHITE }); - LINES.put("ROE25", new int[] { Color.parseColor("#0087CB"), Color.WHITE }); - LINES.put("RNE26", new int[] { Color.parseColor("#00A896"), Color.WHITE }); - LINES.put("RNE27", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); - LINES.put("RRB30", new int[] { Color.parseColor("#00A65E"), Color.WHITE }); - LINES.put("RRB31", new int[] { Color.parseColor("#60BB46"), Color.WHITE }); - LINES.put("RMR33", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); - LINES.put("ROE35", new int[] { Color.parseColor("#5E6DB3"), Color.WHITE }); - LINES.put("ROE36", new int[] { Color.parseColor("#A7653F"), Color.WHITE }); - LINES.put("RRB43", new int[] { Color.parseColor("#5E6DB3"), Color.WHITE }); - LINES.put("RRB45", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); - LINES.put("ROE46", new int[] { Color.parseColor("#DB6EAB"), Color.WHITE }); - LINES.put("RMR51", new int[] { Color.parseColor("#DB6EAB"), Color.WHITE }); - LINES.put("RRB51", new int[] { Color.parseColor("#DB6EAB"), Color.WHITE }); - LINES.put("RRB54", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); - LINES.put("RRB55", new int[] { Color.parseColor("#F57921"), Color.WHITE }); - LINES.put("ROE60", new int[] { Color.parseColor("#60BB46"), Color.WHITE }); - LINES.put("ROE63", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); - LINES.put("ROE65", new int[] { Color.parseColor("#0072BC"), Color.WHITE }); - LINES.put("RRB66", new int[] { Color.parseColor("#60BB46"), Color.WHITE }); - LINES.put("RPE70", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); - LINES.put("RPE73", new int[] { Color.parseColor("#00A896"), Color.WHITE }); - LINES.put("RPE74", new int[] { Color.parseColor("#0072BC"), Color.WHITE }); - LINES.put("T89", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); - LINES.put("RRB91", new int[] { Color.parseColor("#A7653F"), Color.WHITE }); - LINES.put("RRB93", new int[] { Color.parseColor("#A7653F"), Color.WHITE }); + LINES.put("RRE1", new Style(Style.parseColor("#EE1C23"), Style.WHITE)); + LINES.put("RRE2", new Style(Style.parseColor("#FFD403"), Style.BLACK)); + LINES.put("RRE3", new Style(Style.parseColor("#F57921"), Style.WHITE)); + LINES.put("RRE4", new Style(Style.parseColor("#952D4F"), Style.WHITE)); + LINES.put("RRE5", new Style(Style.parseColor("#0072BC"), Style.WHITE)); + LINES.put("RRE6", new Style(Style.parseColor("#DB6EAB"), Style.WHITE)); + LINES.put("RRE7", new Style(Style.parseColor("#00854A"), Style.WHITE)); + LINES.put("RRE10", new Style(Style.parseColor("#A7653F"), Style.WHITE)); + LINES.put("RRE11", new Style(Style.parseColor("#059EDB"), Style.WHITE)); + LINES.put("RRE11", new Style(Style.parseColor("#EE1C23"), Style.WHITE)); + LINES.put("RRE15", new Style(Style.parseColor("#FFD403"), Style.BLACK)); + LINES.put("RRE18", new Style(Style.parseColor("#00A65E"), Style.WHITE)); + LINES.put("RRB10", new Style(Style.parseColor("#60BB46"), Style.WHITE)); + LINES.put("RRB12", new Style(Style.parseColor("#A3238E"), Style.WHITE)); + LINES.put("RRB13", new Style(Style.parseColor("#F68B1F"), Style.WHITE)); + LINES.put("RRB13", new Style(Style.parseColor("#00A65E"), Style.WHITE)); + LINES.put("RRB14", new Style(Style.parseColor("#A3238E"), Style.WHITE)); + LINES.put("RRB20", new Style(Style.parseColor("#00854A"), Style.WHITE)); + LINES.put("RRB21", new Style(Style.parseColor("#5E6DB3"), Style.WHITE)); + LINES.put("RRB22", new Style(Style.parseColor("#0087CB"), Style.WHITE)); + LINES.put("ROE25", new Style(Style.parseColor("#0087CB"), Style.WHITE)); + LINES.put("RNE26", new Style(Style.parseColor("#00A896"), Style.WHITE)); + LINES.put("RNE27", new Style(Style.parseColor("#EE1C23"), Style.WHITE)); + LINES.put("RRB30", new Style(Style.parseColor("#00A65E"), Style.WHITE)); + LINES.put("RRB31", new Style(Style.parseColor("#60BB46"), Style.WHITE)); + LINES.put("RMR33", new Style(Style.parseColor("#EE1C23"), Style.WHITE)); + LINES.put("ROE35", new Style(Style.parseColor("#5E6DB3"), Style.WHITE)); + LINES.put("ROE36", new Style(Style.parseColor("#A7653F"), Style.WHITE)); + LINES.put("RRB43", new Style(Style.parseColor("#5E6DB3"), Style.WHITE)); + LINES.put("RRB45", new Style(Style.parseColor("#FFD403"), Style.BLACK)); + LINES.put("ROE46", new Style(Style.parseColor("#DB6EAB"), Style.WHITE)); + LINES.put("RMR51", new Style(Style.parseColor("#DB6EAB"), Style.WHITE)); + LINES.put("RRB51", new Style(Style.parseColor("#DB6EAB"), Style.WHITE)); + LINES.put("RRB54", new Style(Style.parseColor("#FFD403"), Style.BLACK)); + LINES.put("RRB55", new Style(Style.parseColor("#F57921"), Style.WHITE)); + LINES.put("ROE60", new Style(Style.parseColor("#60BB46"), Style.WHITE)); + LINES.put("ROE63", new Style(Style.parseColor("#FFD403"), Style.BLACK)); + LINES.put("ROE65", new Style(Style.parseColor("#0072BC"), Style.WHITE)); + LINES.put("RRB66", new Style(Style.parseColor("#60BB46"), Style.WHITE)); + LINES.put("RPE70", new Style(Style.parseColor("#FFD403"), Style.BLACK)); + LINES.put("RPE73", new Style(Style.parseColor("#00A896"), Style.WHITE)); + LINES.put("RPE74", new Style(Style.parseColor("#0072BC"), Style.WHITE)); + LINES.put("T89", new Style(Style.parseColor("#EE1C23"), Style.WHITE)); + LINES.put("RRB91", new Style(Style.parseColor("#A7653F"), Style.WHITE)); + LINES.put("RRB93", new Style(Style.parseColor("#A7653F"), Style.WHITE)); } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { - final int[] lineColors = LINES.get(line); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line); + if (style != null) + return style; else - return super.lineColors(line); + return super.lineStyle(line); } @Override diff --git a/src/de/schildbach/pte/GvhProvider.java b/src/de/schildbach/pte/GvhProvider.java index 47c243b4..33a8c4c1 100644 --- a/src/de/schildbach/pte/GvhProvider.java +++ b/src/de/schildbach/pte/GvhProvider.java @@ -24,7 +24,7 @@ import java.util.Map; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach @@ -60,31 +60,31 @@ public class GvhProvider extends AbstractEfaProvider return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { // Hamburg - LINES.put("SS1", new int[] { Color.parseColor("#00933B"), Color.WHITE }); - LINES.put("SS11", new int[] { Color.WHITE, Color.parseColor("#00933B"), Color.parseColor("#00933B") }); - LINES.put("SS2", new int[] { Color.WHITE, Color.parseColor("#9D271A"), Color.parseColor("#9D271A") }); - LINES.put("SS21", new int[] { Color.parseColor("#9D271A"), Color.WHITE }); - LINES.put("SS3", new int[] { Color.parseColor("#411273"), Color.WHITE }); - LINES.put("SS31", new int[] { Color.parseColor("#411273"), Color.WHITE }); + LINES.put("SS1", new Style(Style.parseColor("#00933B"), Style.WHITE)); + LINES.put("SS11", new Style(Style.WHITE, Style.parseColor("#00933B"), Style.parseColor("#00933B"))); + LINES.put("SS2", new Style(Style.WHITE, Style.parseColor("#9D271A"), Style.parseColor("#9D271A"))); + LINES.put("SS21", new Style(Style.parseColor("#9D271A"), Style.WHITE)); + LINES.put("SS3", new Style(Style.parseColor("#411273"), Style.WHITE)); + LINES.put("SS31", new Style(Style.parseColor("#411273"), Style.WHITE)); - LINES.put("UU1", new int[] { Color.parseColor("#044895"), Color.WHITE }); - LINES.put("UU2", new int[] { Color.parseColor("#DC2B19"), Color.WHITE }); - LINES.put("UU3", new int[] { Color.parseColor("#EE9D16"), Color.WHITE }); - LINES.put("UU4", new int[] { Color.parseColor("#13A59D"), Color.WHITE }); + LINES.put("UU1", new Style(Style.parseColor("#044895"), Style.WHITE)); + LINES.put("UU2", new Style(Style.parseColor("#DC2B19"), Style.WHITE)); + LINES.put("UU3", new Style(Style.parseColor("#EE9D16"), Style.WHITE)); + LINES.put("UU4", new Style(Style.parseColor("#13A59D"), Style.WHITE)); } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { - final int[] lineColors = LINES.get(line); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line); + if (style != null) + return style; else - return super.lineColors(line); + return super.lineStyle(line); } } diff --git a/src/de/schildbach/pte/InvgProvider.java b/src/de/schildbach/pte/InvgProvider.java index 86b496dd..5d7719fa 100644 --- a/src/de/schildbach/pte/InvgProvider.java +++ b/src/de/schildbach/pte/InvgProvider.java @@ -37,7 +37,7 @@ import de.schildbach.pte.dto.QueryDeparturesResult; import de.schildbach.pte.dto.QueryDeparturesResult.Status; import de.schildbach.pte.dto.ResultHeader; import de.schildbach.pte.dto.StationDepartures; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; import de.schildbach.pte.util.ParserUtils; /** @@ -290,28 +290,28 @@ public class InvgProvider extends AbstractHafasProvider if (mBus.matches()) { final String lineStr = "B" + mBus.group(1); - return new Line(null, lineStr, lineColors(lineStr)); + return new Line(null, lineStr, lineStyle(lineStr)); } final Matcher mNachtbus = P_NORMALIZE_LINE_NACHTBUS.matcher(line); if (mNachtbus.matches()) { final String lineStr = "BN" + mNachtbus.group(1); - return new Line(null, lineStr, lineColors(lineStr)); + return new Line(null, lineStr, lineStyle(lineStr)); } final Matcher mBusS = P_NORMALIZE_LINE_BUS_S.matcher(line); if (mBusS.matches()) { final String lineStr = "BS" + mBusS.group(1); - return new Line(null, lineStr, lineColors(lineStr)); + return new Line(null, lineStr, lineStyle(lineStr)); } final Matcher mBusX = P_NORMALIZE_LINE_BUS_X.matcher(line); if (mBusX.matches()) { final String lineStr = "BX" + mBusX.group(1); - return new Line(null, lineStr, lineColors(lineStr)); + return new Line(null, lineStr, lineStyle(lineStr)); } } @@ -327,78 +327,78 @@ public class InvgProvider extends AbstractHafasProvider return 0; } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { - LINES.put("B10", new int[] { Color.parseColor("#DA2510"), Color.WHITE }); - LINES.put("B11", new int[] { Color.parseColor("#EE9B78"), Color.BLACK }); - LINES.put("B15", new int[] { Color.parseColor("#84C326"), Color.BLACK }); - LINES.put("B16", new int[] { Color.parseColor("#5D452E"), Color.WHITE }); - LINES.put("B17", new int[] { Color.parseColor("#AAAAAA"), Color.BLACK }); - LINES.put("B20", new int[] { Color.parseColor("#EA891C"), Color.BLACK }); - LINES.put("B21", new int[] { Color.parseColor("#31B2EA"), Color.BLACK }); - LINES.put("B25", new int[] { Color.parseColor("#7F65A0"), Color.WHITE }); - LINES.put("B26", new int[] { Color.parseColor("#00BF73"), Color.WHITE }); - LINES.put("B30", new int[] { Color.parseColor("#901E78"), Color.WHITE }); - LINES.put("B31", new int[] { Color.parseColor("#DCE722"), Color.BLACK }); - LINES.put("B40", new int[] { Color.parseColor("#009240"), Color.WHITE }); - LINES.put("B41", new int[] { Color.parseColor("#7BC5B1"), Color.BLACK }); - LINES.put("B44", new int[] { Color.parseColor("#EA77A6"), Color.WHITE }); - LINES.put("B50", new int[] { Color.parseColor("#FACF00"), Color.BLACK }); - LINES.put("B53", new int[] { Color.parseColor("#BEB405"), Color.BLACK }); - LINES.put("B55", new int[] { Color.parseColor("#FFF500"), Color.BLACK }); - LINES.put("B60", new int[] { Color.parseColor("#0072B7"), Color.WHITE }); - LINES.put("B61", new int[] { Color.rgb(204, 184, 122), Color.BLACK }); - LINES.put("B62", new int[] { Color.rgb(204, 184, 122), Color.BLACK }); - LINES.put("B65", new int[] { Color.parseColor("#B7DDD2"), Color.BLACK }); - LINES.put("B70", new int[] { Color.parseColor("#D49016"), Color.BLACK }); - LINES.put("B71", new int[] { Color.parseColor("#996600"), Color.BLACK }); - LINES.put("B85", new int[] { Color.parseColor("#F6BAD3"), Color.BLACK }); - LINES.put("B9221", new int[] { Color.rgb(217, 217, 255), Color.BLACK }); - LINES.put("B9226", new int[] { Color.rgb(191, 255, 255), Color.BLACK }); + LINES.put("B10", new Style(Style.parseColor("#DA2510"), Style.WHITE)); + LINES.put("B11", new Style(Style.parseColor("#EE9B78"), Style.BLACK)); + LINES.put("B15", new Style(Style.parseColor("#84C326"), Style.BLACK)); + LINES.put("B16", new Style(Style.parseColor("#5D452E"), Style.WHITE)); + LINES.put("B17", new Style(Style.parseColor("#AAAAAA"), Style.BLACK)); + LINES.put("B20", new Style(Style.parseColor("#EA891C"), Style.BLACK)); + LINES.put("B21", new Style(Style.parseColor("#31B2EA"), Style.BLACK)); + LINES.put("B25", new Style(Style.parseColor("#7F65A0"), Style.WHITE)); + LINES.put("B26", new Style(Style.parseColor("#00BF73"), Style.WHITE)); + LINES.put("B30", new Style(Style.parseColor("#901E78"), Style.WHITE)); + LINES.put("B31", new Style(Style.parseColor("#DCE722"), Style.BLACK)); + LINES.put("B40", new Style(Style.parseColor("#009240"), Style.WHITE)); + LINES.put("B41", new Style(Style.parseColor("#7BC5B1"), Style.BLACK)); + LINES.put("B44", new Style(Style.parseColor("#EA77A6"), Style.WHITE)); + LINES.put("B50", new Style(Style.parseColor("#FACF00"), Style.BLACK)); + LINES.put("B53", new Style(Style.parseColor("#BEB405"), Style.BLACK)); + LINES.put("B55", new Style(Style.parseColor("#FFF500"), Style.BLACK)); + LINES.put("B60", new Style(Style.parseColor("#0072B7"), Style.WHITE)); + LINES.put("B61", new Style(Style.rgb(204, 184, 122), Style.BLACK)); + LINES.put("B62", new Style(Style.rgb(204, 184, 122), Style.BLACK)); + LINES.put("B65", new Style(Style.parseColor("#B7DDD2"), Style.BLACK)); + LINES.put("B70", new Style(Style.parseColor("#D49016"), Style.BLACK)); + LINES.put("B71", new Style(Style.parseColor("#996600"), Style.BLACK)); + LINES.put("B85", new Style(Style.parseColor("#F6BAD3"), Style.BLACK)); + LINES.put("B9221", new Style(Style.rgb(217, 217, 255), Style.BLACK)); + LINES.put("B9226", new Style(Style.rgb(191, 255, 255), Style.BLACK)); - LINES.put("BN1", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN2", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN3", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN4", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN5", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN6", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN7", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN8", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN9", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN10", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN11", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN12", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN13", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN14", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN15", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN16", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN17", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN18", new int[] { Color.parseColor("#00116C"), Color.WHITE }); - LINES.put("BN19", new int[] { Color.parseColor("#00116C"), Color.WHITE }); + LINES.put("BN1", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN2", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN3", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN4", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN5", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN6", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN7", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN8", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN9", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN10", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN11", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN12", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN13", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN14", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN15", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN16", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN17", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN18", new Style(Style.parseColor("#00116C"), Style.WHITE)); + LINES.put("BN19", new Style(Style.parseColor("#00116C"), Style.WHITE)); - LINES.put("BS1", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); - LINES.put("BS2", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); - LINES.put("BS3", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); - LINES.put("BS4", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); - LINES.put("BS5", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); - LINES.put("BS6", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); - LINES.put("BS7", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); - LINES.put("BS8", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); + LINES.put("BS1", new Style(Style.rgb(178, 25, 0), Style.WHITE)); + LINES.put("BS2", new Style(Style.rgb(178, 25, 0), Style.WHITE)); + LINES.put("BS3", new Style(Style.rgb(178, 25, 0), Style.WHITE)); + LINES.put("BS4", new Style(Style.rgb(178, 25, 0), Style.WHITE)); + LINES.put("BS5", new Style(Style.rgb(178, 25, 0), Style.WHITE)); + LINES.put("BS6", new Style(Style.rgb(178, 25, 0), Style.WHITE)); + LINES.put("BS7", new Style(Style.rgb(178, 25, 0), Style.WHITE)); + LINES.put("BS8", new Style(Style.rgb(178, 25, 0), Style.WHITE)); // BX109? - LINES.put("BX11", new int[] { Color.parseColor("#EE9B78"), Color.BLACK }); - LINES.put("BX80", new int[] { Color.parseColor("#FFFF40"), Color.BLACK }); + LINES.put("BX11", new Style(Style.parseColor("#EE9B78"), Style.BLACK)); + LINES.put("BX80", new Style(Style.parseColor("#FFFF40"), Style.BLACK)); } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { - final int[] lineColors = LINES.get(line); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line); + if (style != null) + return style; else - return super.lineColors(line); + return super.lineStyle(line); } } diff --git a/src/de/schildbach/pte/KvvProvider.java b/src/de/schildbach/pte/KvvProvider.java index 9e64c2f9..1d9267ff 100644 --- a/src/de/schildbach/pte/KvvProvider.java +++ b/src/de/schildbach/pte/KvvProvider.java @@ -24,7 +24,7 @@ import java.util.Map; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach @@ -74,63 +74,63 @@ public class KvvProvider extends AbstractEfaProvider return super.parseLine(mot, name, longName, noTrainName); } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { // S-Bahn - LINES.put("SS1", new int[] { Color.parseColor("#00a76d"), Color.WHITE }); - LINES.put("SS11", new int[] { Color.parseColor("#00a76d"), Color.WHITE }); - LINES.put("SS2", new int[] { Color.parseColor("#a066aa"), Color.WHITE }); - LINES.put("SS3", new int[] { Color.parseColor("#00a99d"), Color.WHITE }); - LINES.put("SS31", new int[] { Color.parseColor("#00a99d"), Color.WHITE }); - LINES.put("SS32", new int[] { Color.parseColor("#00a99d"), Color.WHITE }); - LINES.put("SS33", new int[] { Color.parseColor("#00a99d"), Color.WHITE }); - LINES.put("SS4", new int[] { Color.parseColor("#9f184c"), Color.WHITE }); - LINES.put("SS41", new int[] { Color.parseColor("#9f184c"), Color.WHITE }); - LINES.put("SS5", new int[] { Color.parseColor("#f69795"), Color.BLACK }); - LINES.put("SS51", new int[] { Color.parseColor("#f69795"), Color.BLACK }); - LINES.put("SS52", new int[] { Color.parseColor("#f69795"), Color.BLACK }); - LINES.put("SS6", new int[] { Color.parseColor("#282268"), Color.WHITE }); - LINES.put("SS7", new int[] { Color.parseColor("#fff200"), Color.BLACK }); - LINES.put("SS8", new int[] { Color.parseColor("#6e692a"), Color.WHITE }); - LINES.put("SS9", new int[] { Color.parseColor("#fab49b"), Color.BLACK }); + LINES.put("SS1", new Style(Style.parseColor("#00a76d"), Style.WHITE)); + LINES.put("SS11", new Style(Style.parseColor("#00a76d"), Style.WHITE)); + LINES.put("SS2", new Style(Style.parseColor("#a066aa"), Style.WHITE)); + LINES.put("SS3", new Style(Style.parseColor("#00a99d"), Style.WHITE)); + LINES.put("SS31", new Style(Style.parseColor("#00a99d"), Style.WHITE)); + LINES.put("SS32", new Style(Style.parseColor("#00a99d"), Style.WHITE)); + LINES.put("SS33", new Style(Style.parseColor("#00a99d"), Style.WHITE)); + LINES.put("SS4", new Style(Style.parseColor("#9f184c"), Style.WHITE)); + LINES.put("SS41", new Style(Style.parseColor("#9f184c"), Style.WHITE)); + LINES.put("SS5", new Style(Style.parseColor("#f69795"), Style.BLACK)); + LINES.put("SS51", new Style(Style.parseColor("#f69795"), Style.BLACK)); + LINES.put("SS52", new Style(Style.parseColor("#f69795"), Style.BLACK)); + LINES.put("SS6", new Style(Style.parseColor("#282268"), Style.WHITE)); + LINES.put("SS7", new Style(Style.parseColor("#fff200"), Style.BLACK)); + LINES.put("SS8", new Style(Style.parseColor("#6e692a"), Style.WHITE)); + LINES.put("SS9", new Style(Style.parseColor("#fab49b"), Style.BLACK)); // Tram - LINES.put("T1", new int[] { Color.parseColor("#ed1c24"), Color.WHITE }); - LINES.put("T2", new int[] { Color.parseColor("#0071bc"), Color.WHITE }); - LINES.put("T2E", new int[] { Color.parseColor("#0071bc"), Color.WHITE }); - LINES.put("T3", new int[] { Color.parseColor("#947139"), Color.WHITE }); - LINES.put("T4", new int[] { Color.parseColor("#ffcb04"), Color.BLACK }); - LINES.put("T5", new int[] { Color.parseColor("#00c0f3"), Color.WHITE }); - LINES.put("T6", new int[] { Color.parseColor("#80c342"), Color.WHITE }); - LINES.put("T7", new int[] { Color.parseColor("#58595b"), Color.WHITE }); - LINES.put("T8", new int[] { Color.parseColor("#f7931d"), Color.BLACK }); + LINES.put("T1", new Style(Style.parseColor("#ed1c24"), Style.WHITE)); + LINES.put("T2", new Style(Style.parseColor("#0071bc"), Style.WHITE)); + LINES.put("T2E", new Style(Style.parseColor("#0071bc"), Style.WHITE)); + LINES.put("T3", new Style(Style.parseColor("#947139"), Style.WHITE)); + LINES.put("T4", new Style(Style.parseColor("#ffcb04"), Style.BLACK)); + LINES.put("T5", new Style(Style.parseColor("#00c0f3"), Style.WHITE)); + LINES.put("T6", new Style(Style.parseColor("#80c342"), Style.WHITE)); + LINES.put("T7", new Style(Style.parseColor("#58595b"), Style.WHITE)); + LINES.put("T8", new Style(Style.parseColor("#f7931d"), Style.BLACK)); // Nightliner - LINES.put("BNL3", new int[] { Color.parseColor("#947139"), Color.WHITE }); - LINES.put("BNL4", new int[] { Color.parseColor("#ffcb04"), Color.BLACK }); - LINES.put("BNL5", new int[] { Color.parseColor("#00c0f3"), Color.WHITE }); - LINES.put("BNL6", new int[] { Color.parseColor("#80c342"), Color.WHITE }); + LINES.put("BNL3", new Style(Style.parseColor("#947139"), Style.WHITE)); + LINES.put("BNL4", new Style(Style.parseColor("#ffcb04"), Style.BLACK)); + LINES.put("BNL5", new Style(Style.parseColor("#00c0f3"), Style.WHITE)); + LINES.put("BNL6", new Style(Style.parseColor("#80c342"), Style.WHITE)); // Anruf-Linien-Taxi - LINES.put("BALT6", new int[] { Color.BLACK, Color.YELLOW }); - LINES.put("BALT11", new int[] { Color.BLACK, Color.YELLOW }); - LINES.put("BALT12", new int[] { Color.BLACK, Color.YELLOW }); - LINES.put("BALT13", new int[] { Color.BLACK, Color.YELLOW }); - LINES.put("BALT14", new int[] { Color.BLACK, Color.YELLOW }); - LINES.put("BALT16", new int[] { Color.BLACK, Color.YELLOW }); + LINES.put("BALT6", new Style(Style.BLACK, Style.YELLOW)); + LINES.put("BALT11", new Style(Style.BLACK, Style.YELLOW)); + LINES.put("BALT12", new Style(Style.BLACK, Style.YELLOW)); + LINES.put("BALT13", new Style(Style.BLACK, Style.YELLOW)); + LINES.put("BALT14", new Style(Style.BLACK, Style.YELLOW)); + LINES.put("BALT16", new Style(Style.BLACK, Style.YELLOW)); // TODO Bus, but needs shape for disambiguation } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { - final int[] lineColors = LINES.get(line); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line); + if (style != null) + return style; else - return super.lineColors(line); + return super.lineStyle(line); } } diff --git a/src/de/schildbach/pte/MetProvider.java b/src/de/schildbach/pte/MetProvider.java index 1ee30c27..9034c3d8 100644 --- a/src/de/schildbach/pte/MetProvider.java +++ b/src/de/schildbach/pte/MetProvider.java @@ -25,7 +25,7 @@ import java.util.TimeZone; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach @@ -66,25 +66,25 @@ public class MetProvider extends AbstractEfaProvider return jsonStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { - LINES.put('R', new int[] { Color.parseColor("#a24ba3"), Color.WHITE }); - LINES.put('S', new int[] { Color.parseColor("#3a75c4"), Color.WHITE }); - LINES.put('T', new int[] { Color.parseColor("#5bbf21"), Color.WHITE }); - LINES.put('B', new int[] { Color.parseColor("#f77f00"), Color.WHITE }); + LINES.put('R', new Style(Style.parseColor("#a24ba3"), Style.WHITE)); + LINES.put('S', new Style(Style.parseColor("#3a75c4"), Style.WHITE)); + LINES.put('T', new Style(Style.parseColor("#5bbf21"), Style.WHITE)); + LINES.put('B', new Style(Style.parseColor("#f77f00"), Style.WHITE)); } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { // TODO NightRider buses (buses with numbers > 940): #f26522 - final int[] lineColors = LINES.get(line.charAt(0)); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line.charAt(0)); + if (style != null) + return style; else - return super.lineColors(line); + return super.lineStyle(line); } } diff --git a/src/de/schildbach/pte/MvvProvider.java b/src/de/schildbach/pte/MvvProvider.java index 1ee7191c..c7069690 100644 --- a/src/de/schildbach/pte/MvvProvider.java +++ b/src/de/schildbach/pte/MvvProvider.java @@ -25,7 +25,7 @@ import java.util.Map; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.Point; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach @@ -61,54 +61,54 @@ public class MvvProvider extends AbstractEfaProvider return jsonStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { - LINES.put("SS1", new int[] { Color.parseColor("#00ccff"), Color.WHITE }); - LINES.put("SS2", new int[] { Color.parseColor("#66cc00"), Color.WHITE }); - LINES.put("SS3", new int[] { Color.parseColor("#880099"), Color.WHITE }); - LINES.put("SS4", new int[] { Color.parseColor("#ff0033"), Color.WHITE }); - LINES.put("SS6", new int[] { Color.parseColor("#00aa66"), Color.WHITE }); - LINES.put("SS7", new int[] { Color.parseColor("#993333"), Color.WHITE }); - LINES.put("SS8", new int[] { Color.BLACK, Color.parseColor("#ffcc00") }); - LINES.put("SS20", new int[] { Color.BLACK, Color.parseColor("#ffaaaa") }); - LINES.put("SS27", new int[] { Color.parseColor("#ffaaaa"), Color.WHITE }); - LINES.put("SA", new int[] { Color.parseColor("#231f20"), Color.WHITE }); + LINES.put("SS1", new Style(Style.parseColor("#00ccff"), Style.WHITE)); + LINES.put("SS2", new Style(Style.parseColor("#66cc00"), Style.WHITE)); + LINES.put("SS3", new Style(Style.parseColor("#880099"), Style.WHITE)); + LINES.put("SS4", new Style(Style.parseColor("#ff0033"), Style.WHITE)); + LINES.put("SS6", new Style(Style.parseColor("#00aa66"), Style.WHITE)); + LINES.put("SS7", new Style(Style.parseColor("#993333"), Style.WHITE)); + LINES.put("SS8", new Style(Style.BLACK, Style.parseColor("#ffcc00"))); + LINES.put("SS20", new Style(Style.BLACK, Style.parseColor("#ffaaaa"))); + LINES.put("SS27", new Style(Style.parseColor("#ffaaaa"), Style.WHITE)); + LINES.put("SA", new Style(Style.parseColor("#231f20"), Style.WHITE)); - LINES.put("T12", new int[] { Color.parseColor("#883388"), Color.WHITE }); - LINES.put("T15", new int[] { Color.parseColor("#3366CC"), Color.WHITE }); - LINES.put("T16", new int[] { Color.parseColor("#CC8833"), Color.WHITE }); - LINES.put("T17", new int[] { Color.parseColor("#993333"), Color.WHITE }); - LINES.put("T18", new int[] { Color.parseColor("#66bb33"), Color.WHITE }); - LINES.put("T19", new int[] { Color.parseColor("#cc0000"), Color.WHITE }); - LINES.put("T20", new int[] { Color.parseColor("#00bbee"), Color.WHITE }); - LINES.put("T21", new int[] { Color.parseColor("#33aa99"), Color.WHITE }); - LINES.put("T23", new int[] { Color.parseColor("#fff000"), Color.WHITE }); - LINES.put("T25", new int[] { Color.parseColor("#ff9999"), Color.WHITE }); - LINES.put("T27", new int[] { Color.parseColor("#ff6600"), Color.WHITE }); - LINES.put("TN17", new int[] { Color.parseColor("#999999"), Color.parseColor("#ffff00") }); - LINES.put("TN19", new int[] { Color.parseColor("#999999"), Color.parseColor("#ffff00") }); - LINES.put("TN20", new int[] { Color.parseColor("#999999"), Color.parseColor("#ffff00") }); - LINES.put("TN27", new int[] { Color.parseColor("#999999"), Color.parseColor("#ffff00") }); + LINES.put("T12", new Style(Style.parseColor("#883388"), Style.WHITE)); + LINES.put("T15", new Style(Style.parseColor("#3366CC"), Style.WHITE)); + LINES.put("T16", new Style(Style.parseColor("#CC8833"), Style.WHITE)); + LINES.put("T17", new Style(Style.parseColor("#993333"), Style.WHITE)); + LINES.put("T18", new Style(Style.parseColor("#66bb33"), Style.WHITE)); + LINES.put("T19", new Style(Style.parseColor("#cc0000"), Style.WHITE)); + LINES.put("T20", new Style(Style.parseColor("#00bbee"), Style.WHITE)); + LINES.put("T21", new Style(Style.parseColor("#33aa99"), Style.WHITE)); + LINES.put("T23", new Style(Style.parseColor("#fff000"), Style.WHITE)); + LINES.put("T25", new Style(Style.parseColor("#ff9999"), Style.WHITE)); + LINES.put("T27", new Style(Style.parseColor("#ff6600"), Style.WHITE)); + LINES.put("TN17", new Style(Style.parseColor("#999999"), Style.parseColor("#ffff00"))); + LINES.put("TN19", new Style(Style.parseColor("#999999"), Style.parseColor("#ffff00"))); + LINES.put("TN20", new Style(Style.parseColor("#999999"), Style.parseColor("#ffff00"))); + LINES.put("TN27", new Style(Style.parseColor("#999999"), Style.parseColor("#ffff00"))); - LINES.put("UU1", new int[] { Color.parseColor("#227700"), Color.WHITE }); - LINES.put("UU2", new int[] { Color.parseColor("#bb0000"), Color.WHITE }); - LINES.put("UU2E", new int[] { Color.parseColor("#bb0000"), Color.WHITE }); - LINES.put("UU3", new int[] { Color.parseColor("#ee8800"), Color.WHITE }); - LINES.put("UU4", new int[] { Color.parseColor("#00ccaa"), Color.WHITE }); - LINES.put("UU5", new int[] { Color.parseColor("#bb7700"), Color.WHITE }); - LINES.put("UU6", new int[] { Color.parseColor("#0000cc"), Color.WHITE }); + LINES.put("UU1", new Style(Style.parseColor("#227700"), Style.WHITE)); + LINES.put("UU2", new Style(Style.parseColor("#bb0000"), Style.WHITE)); + LINES.put("UU2E", new Style(Style.parseColor("#bb0000"), Style.WHITE)); + LINES.put("UU3", new Style(Style.parseColor("#ee8800"), Style.WHITE)); + LINES.put("UU4", new Style(Style.parseColor("#00ccaa"), Style.WHITE)); + LINES.put("UU5", new Style(Style.parseColor("#bb7700"), Style.WHITE)); + LINES.put("UU6", new Style(Style.parseColor("#0000cc"), Style.WHITE)); } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { - final int[] lineColors = LINES.get(line); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line); + if (style != null) + return style; else - return super.lineColors(line); + return super.lineStyle(line); } @Override diff --git a/src/de/schildbach/pte/NetworkProvider.java b/src/de/schildbach/pte/NetworkProvider.java index 186ef48a..21c6eeb1 100644 --- a/src/de/schildbach/pte/NetworkProvider.java +++ b/src/de/schildbach/pte/NetworkProvider.java @@ -27,6 +27,7 @@ import de.schildbach.pte.dto.NearbyStationsResult; import de.schildbach.pte.dto.Point; import de.schildbach.pte.dto.QueryConnectionsResult; import de.schildbach.pte.dto.QueryDeparturesResult; +import de.schildbach.pte.dto.Style; /** * Interface to be implemented by providers of transportation networks @@ -138,13 +139,13 @@ public interface NetworkProvider GetConnectionDetailsResult getConnectionDetails(String connectionUri) throws IOException; /** - * Get colors of line + * Get style of line * * @param line - * line to get color of - * @return array containing background, foreground and border (optional) colors + * line to get style of + * @return object containing background, foreground and border (optional) colors */ - int[] lineColors(String line); + Style lineStyle(String line); /** * Gets the primary covered area of the network diff --git a/src/de/schildbach/pte/SfProvider.java b/src/de/schildbach/pte/SfProvider.java index c77e8030..dc866c82 100644 --- a/src/de/schildbach/pte/SfProvider.java +++ b/src/de/schildbach/pte/SfProvider.java @@ -25,7 +25,7 @@ import java.util.TimeZone; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach @@ -90,34 +90,34 @@ public class SfProvider extends AbstractEfaProvider return super.parseLine(mot, name, longName, noTrainName); } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { // BART - LINES.put("RDaly City / Dublin Pleasanton", new int[] { Color.parseColor("#00AEEF"), Color.WHITE }); - LINES.put("RDulin Pleasanton / Daly City", new int[] { Color.parseColor("#00AEEF"), Color.WHITE }); + LINES.put("RDaly City / Dublin Pleasanton", new Style(Style.parseColor("#00AEEF"), Style.WHITE)); + LINES.put("RDulin Pleasanton / Daly City", new Style(Style.parseColor("#00AEEF"), Style.WHITE)); - LINES.put("RSFO / Pittsburg Bay Point", new int[] { Color.parseColor("#FFE800"), Color.BLACK }); - LINES.put("RPittsburg Bay Point / SFO", new int[] { Color.parseColor("#FFE800"), Color.BLACK }); + LINES.put("RSFO / Pittsburg Bay Point", new Style(Style.parseColor("#FFE800"), Style.BLACK)); + LINES.put("RPittsburg Bay Point / SFO", new Style(Style.parseColor("#FFE800"), Style.BLACK)); - LINES.put("RDaly City / Fremont", new int[] { Color.parseColor("#4EBF49"), Color.WHITE }); - LINES.put("RFremont / Daly City", new int[] { Color.parseColor("#4EBF49"), Color.WHITE }); + LINES.put("RDaly City / Fremont", new Style(Style.parseColor("#4EBF49"), Style.WHITE)); + LINES.put("RFremont / Daly City", new Style(Style.parseColor("#4EBF49"), Style.WHITE)); - LINES.put("RFremont / Richmond", new int[] { Color.parseColor("#FAA61A"), Color.WHITE }); - LINES.put("RRichmond / Fremont", new int[] { Color.parseColor("#FAA61A"), Color.WHITE }); + LINES.put("RFremont / Richmond", new Style(Style.parseColor("#FAA61A"), Style.WHITE)); + LINES.put("RRichmond / Fremont", new Style(Style.parseColor("#FAA61A"), Style.WHITE)); - LINES.put("RMillbrae / Richmond", new int[] { Color.parseColor("#F81A23"), Color.WHITE }); - LINES.put("RRichmond / Millbrae", new int[] { Color.parseColor("#F81A23"), Color.WHITE }); + LINES.put("RMillbrae / Richmond", new Style(Style.parseColor("#F81A23"), Style.WHITE)); + LINES.put("RRichmond / Millbrae", new Style(Style.parseColor("#F81A23"), Style.WHITE)); } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { - final int[] lineColors = LINES.get(line); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line); + if (style != null) + return style; else - return super.lineColors(line); + return super.lineStyle(line); } } diff --git a/src/de/schildbach/pte/StandardColors.java b/src/de/schildbach/pte/StandardColors.java index 4df4762b..fb30bead 100644 --- a/src/de/schildbach/pte/StandardColors.java +++ b/src/de/schildbach/pte/StandardColors.java @@ -20,23 +20,23 @@ package de.schildbach.pte; import java.util.HashMap; import java.util.Map; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach */ public class StandardColors { - public static final Map LINES = new HashMap(); + public static final Map LINES = new HashMap(); static { - LINES.put('I', new int[] { Color.WHITE, Color.RED, Color.RED }); - LINES.put('R', new int[] { Color.GRAY, Color.WHITE }); - LINES.put('S', new int[] { Color.parseColor("#006e34"), Color.WHITE }); - LINES.put('U', new int[] { Color.parseColor("#003090"), Color.WHITE }); - LINES.put('T', new int[] { Color.parseColor("#cc0000"), Color.WHITE }); - LINES.put('B', new int[] { Color.parseColor("#993399"), Color.WHITE }); - LINES.put('F', new int[] { Color.BLUE, Color.WHITE }); + LINES.put('I', new Style(Style.WHITE, Style.RED, Style.RED)); + LINES.put('R', new Style(Style.GRAY, Style.WHITE)); + LINES.put('S', new Style(Style.parseColor("#006e34"), Style.WHITE)); + LINES.put('U', new Style(Style.parseColor("#003090"), Style.WHITE)); + LINES.put('T', new Style(Style.parseColor("#cc0000"), Style.WHITE)); + LINES.put('B', new Style(Style.parseColor("#993399"), Style.WHITE)); + LINES.put('F', new Style(Style.BLUE, Style.WHITE)); } } diff --git a/src/de/schildbach/pte/TflProvider.java b/src/de/schildbach/pte/TflProvider.java index 6dac1223..c15d8e39 100644 --- a/src/de/schildbach/pte/TflProvider.java +++ b/src/de/schildbach/pte/TflProvider.java @@ -25,7 +25,7 @@ import java.util.TimeZone; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach @@ -67,40 +67,40 @@ public class TflProvider extends AbstractEfaProvider return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { // London - LINES.put("UBakerloo", new int[] { Color.parseColor("#9D5324"), Color.WHITE }); - LINES.put("UCentral", new int[] { Color.parseColor("#D52B1E"), Color.WHITE }); - LINES.put("UCircle", new int[] { Color.parseColor("#FECB00"), Color.BLACK }); - LINES.put("UDistrict", new int[] { Color.parseColor("#007934"), Color.WHITE }); - LINES.put("UEast London", new int[] { Color.parseColor("#FFA100"), Color.WHITE }); - LINES.put("UHammersmith & City", new int[] { Color.parseColor("#C5858F"), Color.BLACK }); - LINES.put("UJubilee", new int[] { Color.parseColor("#818A8F"), Color.WHITE }); - LINES.put("UMetropolitan", new int[] { Color.parseColor("#850057"), Color.WHITE }); - LINES.put("UNorthern", new int[] { Color.BLACK, Color.WHITE }); - LINES.put("UPicadilly", new int[] { Color.parseColor("#0018A8"), Color.WHITE }); - LINES.put("UVictoria", new int[] { Color.parseColor("#00A1DE"), Color.WHITE }); - LINES.put("UWaterloo & City", new int[] { Color.parseColor("#76D2B6"), Color.BLACK }); + LINES.put("UBakerloo", new Style(Style.parseColor("#9D5324"), Style.WHITE)); + LINES.put("UCentral", new Style(Style.parseColor("#D52B1E"), Style.WHITE)); + LINES.put("UCircle", new Style(Style.parseColor("#FECB00"), Style.BLACK)); + LINES.put("UDistrict", new Style(Style.parseColor("#007934"), Style.WHITE)); + LINES.put("UEast London", new Style(Style.parseColor("#FFA100"), Style.WHITE)); + LINES.put("UHammersmith & City", new Style(Style.parseColor("#C5858F"), Style.BLACK)); + LINES.put("UJubilee", new Style(Style.parseColor("#818A8F"), Style.WHITE)); + LINES.put("UMetropolitan", new Style(Style.parseColor("#850057"), Style.WHITE)); + LINES.put("UNorthern", new Style(Style.BLACK, Style.WHITE)); + LINES.put("UPicadilly", new Style(Style.parseColor("#0018A8"), Style.WHITE)); + LINES.put("UVictoria", new Style(Style.parseColor("#00A1DE"), Style.WHITE)); + LINES.put("UWaterloo & City", new Style(Style.parseColor("#76D2B6"), Style.BLACK)); - LINES.put("SDLR", new int[] { Color.parseColor("#00B2A9"), Color.WHITE }); - LINES.put("SLO", new int[] { Color.parseColor("#f46f1a"), Color.WHITE }); + LINES.put("SDLR", new Style(Style.parseColor("#00B2A9"), Style.WHITE)); + LINES.put("SLO", new Style(Style.parseColor("#f46f1a"), Style.WHITE)); - LINES.put("TTramlink 1", new int[] { Color.rgb(193, 215, 46), Color.WHITE }); - LINES.put("TTramlink 2", new int[] { Color.rgb(193, 215, 46), Color.WHITE }); - LINES.put("TTramlink 3", new int[] { Color.rgb(124, 194, 66), Color.BLACK }); + LINES.put("TTramlink 1", new Style(Style.rgb(193, 215, 46), Style.WHITE)); + LINES.put("TTramlink 2", new Style(Style.rgb(193, 215, 46), Style.WHITE)); + LINES.put("TTramlink 3", new Style(Style.rgb(124, 194, 66), Style.BLACK)); } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { - final int[] lineColors = LINES.get(line); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line); + if (style != null) + return style; if (line.startsWith("SLO")) return LINES.get("SLO"); - return super.lineColors(line); + return super.lineStyle(line); } } diff --git a/src/de/schildbach/pte/VrrProvider.java b/src/de/schildbach/pte/VrrProvider.java index 86f0b5e9..30023817 100644 --- a/src/de/schildbach/pte/VrrProvider.java +++ b/src/de/schildbach/pte/VrrProvider.java @@ -24,7 +24,7 @@ import java.util.Map; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; -import de.schildbach.pte.util.Color; +import de.schildbach.pte.dto.Style; /** * @author Andreas Schildbach @@ -60,73 +60,73 @@ public class VrrProvider extends AbstractEfaProvider return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } - private static final Map LINES = new HashMap(); + private static final Map LINES = new HashMap(); static { // Busse Bonn - LINES.put("B63", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); - LINES.put("B16", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); - LINES.put("B66", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); - LINES.put("B67", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); - LINES.put("B68", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); - LINES.put("B18", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); - LINES.put("B61", new int[] { Color.parseColor("#e4000b"), Color.WHITE }); - LINES.put("B62", new int[] { Color.parseColor("#e4000b"), Color.WHITE }); - LINES.put("B65", new int[] { Color.parseColor("#e4000b"), Color.WHITE }); - LINES.put("BSB55", new int[] { Color.parseColor("#00919e"), Color.WHITE }); - LINES.put("BSB60", new int[] { Color.parseColor("#8f9867"), Color.WHITE }); - LINES.put("BSB69", new int[] { Color.parseColor("#db5f1f"), Color.WHITE }); - LINES.put("B529", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); - LINES.put("B537", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); - LINES.put("B541", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); - LINES.put("B550", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); - LINES.put("B163", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); - LINES.put("B551", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); - LINES.put("B600", new int[] { Color.parseColor("#817db7"), Color.WHITE }); - LINES.put("B601", new int[] { Color.parseColor("#831b82"), Color.WHITE }); - LINES.put("B602", new int[] { Color.parseColor("#dd6ba6"), Color.WHITE }); - LINES.put("B603", new int[] { Color.parseColor("#e6007d"), Color.WHITE }); - LINES.put("B604", new int[] { Color.parseColor("#009f5d"), Color.WHITE }); - LINES.put("B605", new int[] { Color.parseColor("#007b3b"), Color.WHITE }); - LINES.put("B606", new int[] { Color.parseColor("#9cbf11"), Color.WHITE }); - LINES.put("B607", new int[] { Color.parseColor("#60ad2a"), Color.WHITE }); - LINES.put("B608", new int[] { Color.parseColor("#f8a600"), Color.WHITE }); - LINES.put("B609", new int[] { Color.parseColor("#ef7100"), Color.WHITE }); - LINES.put("B610", new int[] { Color.parseColor("#3ec1f1"), Color.WHITE }); - LINES.put("B611", new int[] { Color.parseColor("#0099db"), Color.WHITE }); - LINES.put("B612", new int[] { Color.parseColor("#ce9d53"), Color.WHITE }); - LINES.put("B613", new int[] { Color.parseColor("#7b3600"), Color.WHITE }); - LINES.put("B614", new int[] { Color.parseColor("#806839"), Color.WHITE }); - LINES.put("B615", new int[] { Color.parseColor("#532700"), Color.WHITE }); - LINES.put("B630", new int[] { Color.parseColor("#c41950"), Color.WHITE }); - LINES.put("B631", new int[] { Color.parseColor("#9b1c44"), Color.WHITE }); - LINES.put("B633", new int[] { Color.parseColor("#88cdc7"), Color.WHITE }); - LINES.put("B635", new int[] { Color.parseColor("#cec800"), Color.WHITE }); - LINES.put("B636", new int[] { Color.parseColor("#af0223"), Color.WHITE }); - LINES.put("B637", new int[] { Color.parseColor("#e3572a"), Color.WHITE }); - LINES.put("B638", new int[] { Color.parseColor("#af5836"), Color.WHITE }); - LINES.put("B640", new int[] { Color.parseColor("#004f81"), Color.WHITE }); - LINES.put("BT650", new int[] { Color.parseColor("#54baa2"), Color.WHITE }); - LINES.put("BT651", new int[] { Color.parseColor("#005738"), Color.WHITE }); - LINES.put("BT680", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); - LINES.put("B800", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); - LINES.put("B812", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); - LINES.put("B843", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); - LINES.put("B845", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); - LINES.put("B852", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); - LINES.put("B855", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); - LINES.put("B856", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); - LINES.put("B857", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); + LINES.put("B63", new Style(Style.parseColor("#0065ae"), Style.WHITE)); + LINES.put("B16", new Style(Style.parseColor("#0065ae"), Style.WHITE)); + LINES.put("B66", new Style(Style.parseColor("#0065ae"), Style.WHITE)); + LINES.put("B67", new Style(Style.parseColor("#0065ae"), Style.WHITE)); + LINES.put("B68", new Style(Style.parseColor("#0065ae"), Style.WHITE)); + LINES.put("B18", new Style(Style.parseColor("#0065ae"), Style.WHITE)); + LINES.put("B61", new Style(Style.parseColor("#e4000b"), Style.WHITE)); + LINES.put("B62", new Style(Style.parseColor("#e4000b"), Style.WHITE)); + LINES.put("B65", new Style(Style.parseColor("#e4000b"), Style.WHITE)); + LINES.put("BSB55", new Style(Style.parseColor("#00919e"), Style.WHITE)); + LINES.put("BSB60", new Style(Style.parseColor("#8f9867"), Style.WHITE)); + LINES.put("BSB69", new Style(Style.parseColor("#db5f1f"), Style.WHITE)); + LINES.put("B529", new Style(Style.parseColor("#2e2383"), Style.WHITE)); + LINES.put("B537", new Style(Style.parseColor("#2e2383"), Style.WHITE)); + LINES.put("B541", new Style(Style.parseColor("#2e2383"), Style.WHITE)); + LINES.put("B550", new Style(Style.parseColor("#2e2383"), Style.WHITE)); + LINES.put("B163", new Style(Style.parseColor("#2e2383"), Style.WHITE)); + LINES.put("B551", new Style(Style.parseColor("#2e2383"), Style.WHITE)); + LINES.put("B600", new Style(Style.parseColor("#817db7"), Style.WHITE)); + LINES.put("B601", new Style(Style.parseColor("#831b82"), Style.WHITE)); + LINES.put("B602", new Style(Style.parseColor("#dd6ba6"), Style.WHITE)); + LINES.put("B603", new Style(Style.parseColor("#e6007d"), Style.WHITE)); + LINES.put("B604", new Style(Style.parseColor("#009f5d"), Style.WHITE)); + LINES.put("B605", new Style(Style.parseColor("#007b3b"), Style.WHITE)); + LINES.put("B606", new Style(Style.parseColor("#9cbf11"), Style.WHITE)); + LINES.put("B607", new Style(Style.parseColor("#60ad2a"), Style.WHITE)); + LINES.put("B608", new Style(Style.parseColor("#f8a600"), Style.WHITE)); + LINES.put("B609", new Style(Style.parseColor("#ef7100"), Style.WHITE)); + LINES.put("B610", new Style(Style.parseColor("#3ec1f1"), Style.WHITE)); + LINES.put("B611", new Style(Style.parseColor("#0099db"), Style.WHITE)); + LINES.put("B612", new Style(Style.parseColor("#ce9d53"), Style.WHITE)); + LINES.put("B613", new Style(Style.parseColor("#7b3600"), Style.WHITE)); + LINES.put("B614", new Style(Style.parseColor("#806839"), Style.WHITE)); + LINES.put("B615", new Style(Style.parseColor("#532700"), Style.WHITE)); + LINES.put("B630", new Style(Style.parseColor("#c41950"), Style.WHITE)); + LINES.put("B631", new Style(Style.parseColor("#9b1c44"), Style.WHITE)); + LINES.put("B633", new Style(Style.parseColor("#88cdc7"), Style.WHITE)); + LINES.put("B635", new Style(Style.parseColor("#cec800"), Style.WHITE)); + LINES.put("B636", new Style(Style.parseColor("#af0223"), Style.WHITE)); + LINES.put("B637", new Style(Style.parseColor("#e3572a"), Style.WHITE)); + LINES.put("B638", new Style(Style.parseColor("#af5836"), Style.WHITE)); + LINES.put("B640", new Style(Style.parseColor("#004f81"), Style.WHITE)); + LINES.put("BT650", new Style(Style.parseColor("#54baa2"), Style.WHITE)); + LINES.put("BT651", new Style(Style.parseColor("#005738"), Style.WHITE)); + LINES.put("BT680", new Style(Style.parseColor("#4e6578"), Style.WHITE)); + LINES.put("B800", new Style(Style.parseColor("#4e6578"), Style.WHITE)); + LINES.put("B812", new Style(Style.parseColor("#4e6578"), Style.WHITE)); + LINES.put("B843", new Style(Style.parseColor("#4e6578"), Style.WHITE)); + LINES.put("B845", new Style(Style.parseColor("#4e6578"), Style.WHITE)); + LINES.put("B852", new Style(Style.parseColor("#4e6578"), Style.WHITE)); + LINES.put("B855", new Style(Style.parseColor("#4e6578"), Style.WHITE)); + LINES.put("B856", new Style(Style.parseColor("#4e6578"), Style.WHITE)); + LINES.put("B857", new Style(Style.parseColor("#4e6578"), Style.WHITE)); } @Override - public int[] lineColors(final String line) + public Style lineStyle(final String line) { - final int[] lineColors = LINES.get(line); - if (lineColors != null) - return lineColors; + final Style style = LINES.get(line); + if (style != null) + return style; else - return super.lineColors(line); + return super.lineStyle(line); } } diff --git a/src/de/schildbach/pte/dto/Line.java b/src/de/schildbach/pte/dto/Line.java index d049a797..cc50a131 100644 --- a/src/de/schildbach/pte/dto/Line.java +++ b/src/de/schildbach/pte/dto/Line.java @@ -35,21 +35,21 @@ public final class Line implements Serializable, Comparable final public String id; final private transient char product; // TODO make true field final public String label; - final public int[] colors; + final public Style style; final private Set attrs; private static final String PRODUCT_ORDER = "IRSUTBPFC?"; - public Line(final String id, final String label, final int[] colors) + public Line(final String id, final String label, final Style style) { - this(id, label, colors, null); + this(id, label, style, null); } - public Line(final String id, final String label, final int[] colors, final Set attrs) + public Line(final String id, final String label, final Style style, final Set attrs) { this.id = id; this.label = label; - this.colors = colors; + this.style = style; this.attrs = attrs; product = label != null ? label.charAt(0) : '?'; diff --git a/src/de/schildbach/pte/util/Color.java b/src/de/schildbach/pte/dto/Style.java similarity index 69% rename from src/de/schildbach/pte/util/Color.java rename to src/de/schildbach/pte/dto/Style.java index 08a370f8..ffc69cd0 100644 --- a/src/de/schildbach/pte/util/Color.java +++ b/src/de/schildbach/pte/dto/Style.java @@ -15,13 +15,38 @@ * along with this program. If not, see . */ -package de.schildbach.pte.util; +package de.schildbach.pte.dto; + +import java.io.Serializable; /** * @author Andreas Schildbach */ -public class Color +public class Style implements Serializable { + public final int backgroundColor; + public final int foregroundColor; + public final int borderColor; + + public Style(final int backgroundColor, final int foregroundColor) + { + this.backgroundColor = backgroundColor; + this.foregroundColor = foregroundColor; + this.borderColor = 0; + } + + public Style(final int backgroundColor, final int foregroundColor, final int borderColor) + { + this.backgroundColor = backgroundColor; + this.foregroundColor = foregroundColor; + this.borderColor = borderColor; + } + + public final boolean hasBorder() + { + return borderColor != 0; + } + public static final int BLACK = 0xFF000000; public static final int DKGRAY = 0xFF444444; public static final int GRAY = 0xFF888888; @@ -35,12 +60,7 @@ public class Color public static final int MAGENTA = 0xFFFF00FF; public static final int TRANSPARENT = 0; - public static int rgb(int red, int green, int blue) - { - return (0xFF << 24) | (red << 16) | (green << 8) | blue; - } - - public static int parseColor(String colorString) + public static int parseColor(final String colorString) { if (colorString.charAt(0) == '#') { @@ -59,4 +79,9 @@ public class Color } throw new IllegalArgumentException("Unknown color"); } + + public static int rgb(final int red, final int green, final int blue) + { + return (0xFF << 24) | (red << 16) | (green << 8) | blue; + } }