dedicated style dto rather than int[]

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@888 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2012-01-21 15:36:50 +00:00
parent 473464fa11
commit b97376570a
16 changed files with 450 additions and 424 deletions

View file

@ -1490,7 +1490,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.exit(pp, "itdServingLine"); XmlPullUtil.exit(pp, "itdServingLine");
final String label = parseLine(motType, number, number, noTrainName); 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+"); 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"); 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, parts.add(new Connection.Trip(line, destination, departureTargetTime != null ? departureTargetTime : departureTime,
departureTargetTime, departurePosition, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime, departureTargetTime, departurePosition, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,

View file

@ -636,7 +636,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
lineStr = classChar + m.group(1) + m.group(2); lineStr = classChar + m.group(1) + m.group(2);
else else
lineStr = classChar + prod; lineStr = classChar + prod;
line = new Line(null, lineStr, lineStr != null ? lineColors(lineStr) : null); line = new Line(null, lineStr, lineStr != null ? lineStyle(lineStr) : null);
} }
else else
{ {
@ -1863,14 +1863,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{ {
if (attrs.length == 0) if (attrs.length == 0)
{ {
return new Line(null, lineStr, lineColors(lineStr)); return new Line(null, lineStr, lineStyle(lineStr));
} }
else else
{ {
final Set<Line.Attr> attrSet = new HashSet<Line.Attr>(); final Set<Line.Attr> attrSet = new HashSet<Line.Attr>();
for (final Line.Attr attr : attrs) for (final Line.Attr attr : attrs)
attrSet.add(attr); attrSet.add(attr);
return new Line(null, lineStr, lineColors(lineStr), attrSet); return new Line(null, lineStr, lineStyle(lineStr), attrSet);
} }
} }

View file

@ -21,28 +21,28 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import de.schildbach.pte.dto.Point; import de.schildbach.pte.dto.Point;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
*/ */
public abstract class AbstractNetworkProvider implements NetworkProvider public abstract class AbstractNetworkProvider implements NetworkProvider
{ {
private static final Map<Character, int[]> LINES = new HashMap<Character, int[]>(); private static final Map<Character, Style> LINES = new HashMap<Character, Style>();
static static
{ {
LINES.put('I', new int[] { Color.WHITE, Color.RED, Color.RED }); LINES.put('I', new Style(Style.WHITE, Style.RED, Style.RED));
LINES.put('R', new int[] { Color.GRAY, Color.WHITE }); LINES.put('R', new Style(Style.GRAY, Style.WHITE));
LINES.put('S', new int[] { Color.parseColor("#006e34"), Color.WHITE }); LINES.put('S', new Style(Style.parseColor("#006e34"), Style.WHITE));
LINES.put('U', new int[] { Color.parseColor("#003090"), Color.WHITE }); LINES.put('U', new Style(Style.parseColor("#003090"), Style.WHITE));
LINES.put('T', new int[] { Color.parseColor("#cc0000"), Color.WHITE }); LINES.put('T', new Style(Style.parseColor("#cc0000"), Style.WHITE));
LINES.put('B', new int[] { Color.parseColor("#993399"), Color.WHITE }); LINES.put('B', new Style(Style.parseColor("#993399"), Style.WHITE));
LINES.put('F', new int[] { Color.BLUE, Color.WHITE }); LINES.put('F', new Style(Style.BLUE, Style.WHITE));
LINES.put('?', new int[] { Color.DKGRAY, Color.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) if (line.length() == 0)
return null; return null;

View file

@ -44,10 +44,10 @@ import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.ResultHeader; import de.schildbach.pte.dto.ResultHeader;
import de.schildbach.pte.dto.StationDepartures; import de.schildbach.pte.dto.StationDepartures;
import de.schildbach.pte.dto.Stop; import de.schildbach.pte.dto.Stop;
import de.schildbach.pte.dto.Style;
import de.schildbach.pte.exception.SessionExpiredException; import de.schildbach.pte.exception.SessionExpiredException;
import de.schildbach.pte.exception.UnexpectedRedirectException; import de.schildbach.pte.exception.UnexpectedRedirectException;
import de.schildbach.pte.geo.Berlin; import de.schildbach.pte.geo.Berlin;
import de.schildbach.pte.util.Color;
import de.schildbach.pte.util.ParserUtils; import de.schildbach.pte.util.ParserUtils;
/** /**
@ -927,125 +927,125 @@ public final class BvgProvider extends AbstractHafasProvider
return 0; return 0;
} }
private static final Map<String, int[]> LINES = new HashMap<String, int[]>(); private static final Map<String, Style> LINES = new HashMap<String, Style>();
static static
{ {
LINES.put("SS1", new int[] { Color.rgb(221, 77, 174), Color.WHITE }); LINES.put("SS1", new Style(Style.rgb(221, 77, 174), Style.WHITE));
LINES.put("SS2", new int[] { Color.rgb(16, 132, 73), Color.WHITE }); LINES.put("SS2", new Style(Style.rgb(16, 132, 73), Style.WHITE));
LINES.put("SS25", new int[] { Color.rgb(16, 132, 73), Color.WHITE }); LINES.put("SS25", new Style(Style.rgb(16, 132, 73), Style.WHITE));
LINES.put("SS3", new int[] { Color.rgb(22, 106, 184), Color.WHITE }); LINES.put("SS3", new Style(Style.rgb(22, 106, 184), Style.WHITE));
LINES.put("SS41", new int[] { Color.rgb(162, 63, 48), Color.WHITE }); LINES.put("SS41", new Style(Style.rgb(162, 63, 48), Style.WHITE));
LINES.put("SS42", new int[] { Color.rgb(191, 90, 42), Color.WHITE }); LINES.put("SS42", new Style(Style.rgb(191, 90, 42), Style.WHITE));
LINES.put("SS45", new int[] { Color.WHITE, Color.rgb(191, 128, 55) }); LINES.put("SS45", new Style(Style.WHITE, Style.rgb(191, 128, 55)));
LINES.put("SS46", new int[] { Color.rgb(191, 128, 55), Color.WHITE }); LINES.put("SS46", new Style(Style.rgb(191, 128, 55), Style.WHITE));
LINES.put("SS47", new int[] { Color.rgb(191, 128, 55), Color.WHITE }); LINES.put("SS47", new Style(Style.rgb(191, 128, 55), Style.WHITE));
LINES.put("SS5", new int[] { Color.rgb(243, 103, 23), Color.WHITE }); LINES.put("SS5", new Style(Style.rgb(243, 103, 23), Style.WHITE));
LINES.put("SS7", new int[] { Color.rgb(119, 96, 176), Color.WHITE }); LINES.put("SS7", new Style(Style.rgb(119, 96, 176), Style.WHITE));
LINES.put("SS75", new int[] { Color.rgb(119, 96, 176), Color.WHITE }); LINES.put("SS75", new Style(Style.rgb(119, 96, 176), Style.WHITE));
LINES.put("SS8", new int[] { Color.rgb(85, 184, 49), Color.WHITE }); LINES.put("SS8", new Style(Style.rgb(85, 184, 49), Style.WHITE));
LINES.put("SS85", new int[] { Color.WHITE, Color.rgb(85, 184, 49) }); LINES.put("SS85", new Style(Style.WHITE, Style.rgb(85, 184, 49)));
LINES.put("SS9", new int[] { Color.rgb(148, 36, 64), Color.WHITE }); 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("UU1", new Style(Style.rgb(84, 131, 47), Style.WHITE));
LINES.put("UU2", new int[] { Color.rgb(215, 25, 16), Color.WHITE }); LINES.put("UU2", new Style(Style.rgb(215, 25, 16), Style.WHITE));
LINES.put("UU3", new int[] { Color.rgb(47, 152, 154), Color.WHITE }); LINES.put("UU3", new Style(Style.rgb(47, 152, 154), Style.WHITE));
LINES.put("UU4", new int[] { Color.rgb(255, 233, 42), Color.BLACK }); LINES.put("UU4", new Style(Style.rgb(255, 233, 42), Style.BLACK));
LINES.put("UU5", new int[] { Color.rgb(91, 31, 16), Color.WHITE }); LINES.put("UU5", new Style(Style.rgb(91, 31, 16), Style.WHITE));
LINES.put("UU55", new int[] { Color.rgb(91, 31, 16), Color.WHITE }); LINES.put("UU55", new Style(Style.rgb(91, 31, 16), Style.WHITE));
LINES.put("UU6", new int[] { Color.rgb(127, 57, 115), Color.WHITE }); LINES.put("UU6", new Style(Style.rgb(127, 57, 115), Style.WHITE));
LINES.put("UU7", new int[] { Color.rgb(0, 153, 204), Color.WHITE }); LINES.put("UU7", new Style(Style.rgb(0, 153, 204), Style.WHITE));
LINES.put("UU8", new int[] { Color.rgb(24, 25, 83), Color.WHITE }); LINES.put("UU8", new Style(Style.rgb(24, 25, 83), Style.WHITE));
LINES.put("UU9", new int[] { Color.rgb(255, 90, 34), Color.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("TM1", new Style(Style.parseColor("#eb8614"), Style.WHITE));
LINES.put("TM2", new int[] { Color.parseColor("#68c52f"), Color.WHITE }); LINES.put("TM2", new Style(Style.parseColor("#68c52f"), Style.WHITE));
LINES.put("TM4", new int[] { Color.parseColor("#cf1b22"), Color.WHITE }); LINES.put("TM4", new Style(Style.parseColor("#cf1b22"), Style.WHITE));
LINES.put("TM5", new int[] { Color.parseColor("#bf8037"), Color.WHITE }); LINES.put("TM5", new Style(Style.parseColor("#bf8037"), Style.WHITE));
LINES.put("TM6", new int[] { Color.parseColor("#1e5ca2"), Color.WHITE }); LINES.put("TM6", new Style(Style.parseColor("#1e5ca2"), Style.WHITE));
LINES.put("TM8", new int[] { Color.parseColor("#f46717"), Color.WHITE }); LINES.put("TM8", new Style(Style.parseColor("#f46717"), Style.WHITE));
LINES.put("TM10", new int[] { Color.parseColor("#108449"), Color.WHITE }); LINES.put("TM10", new Style(Style.parseColor("#108449"), Style.WHITE));
LINES.put("TM13", new int[] { Color.parseColor("#36ab94"), Color.WHITE }); LINES.put("TM13", new Style(Style.parseColor("#36ab94"), Style.WHITE));
LINES.put("TM17", new int[] { Color.parseColor("#a23f30"), Color.WHITE }); LINES.put("TM17", new Style(Style.parseColor("#a23f30"), Style.WHITE));
LINES.put("T12", new int[] { Color.parseColor("#7d64b2"), Color.WHITE }); LINES.put("T12", new Style(Style.parseColor("#7d64b2"), Style.WHITE));
LINES.put("T16", new int[] { Color.parseColor("#1e5ca2"), Color.WHITE }); LINES.put("T16", new Style(Style.parseColor("#1e5ca2"), Style.WHITE));
LINES.put("T18", new int[] { Color.parseColor("#f46717"), Color.WHITE }); LINES.put("T18", new Style(Style.parseColor("#f46717"), Style.WHITE));
LINES.put("T21", new int[] { Color.parseColor("#7d64b2"), Color.WHITE }); LINES.put("T21", new Style(Style.parseColor("#7d64b2"), Style.WHITE));
LINES.put("T27", new int[] { Color.parseColor("#a23f30"), Color.WHITE }); LINES.put("T27", new Style(Style.parseColor("#a23f30"), Style.WHITE));
LINES.put("T37", new int[] { Color.parseColor("#a23f30"), Color.WHITE }); LINES.put("T37", new Style(Style.parseColor("#a23f30"), Style.WHITE));
LINES.put("T50", new int[] { Color.parseColor("#36ab94"), Color.WHITE }); LINES.put("T50", new Style(Style.parseColor("#36ab94"), Style.WHITE));
LINES.put("T60", new int[] { Color.parseColor("#108449"), Color.WHITE }); LINES.put("T60", new Style(Style.parseColor("#108449"), Style.WHITE));
LINES.put("T61", new int[] { Color.parseColor("#108449"), Color.WHITE }); LINES.put("T61", new Style(Style.parseColor("#108449"), Style.WHITE));
LINES.put("T62", new int[] { Color.parseColor("#125030"), Color.WHITE }); LINES.put("T62", new Style(Style.parseColor("#125030"), Style.WHITE));
LINES.put("T63", new int[] { Color.parseColor("#36ab94"), Color.WHITE }); LINES.put("T63", new Style(Style.parseColor("#36ab94"), Style.WHITE));
LINES.put("T67", new int[] { Color.parseColor("#108449"), Color.WHITE }); LINES.put("T67", new Style(Style.parseColor("#108449"), Style.WHITE));
LINES.put("T68", new int[] { Color.parseColor("#108449"), Color.WHITE }); LINES.put("T68", new Style(Style.parseColor("#108449"), Style.WHITE));
LINES.put("FF1", new int[] { Color.BLUE, Color.WHITE }); // Potsdam LINES.put("FF1", new Style(Style.BLUE, Style.WHITE)); // Potsdam
LINES.put("FF10", new int[] { Color.BLUE, Color.WHITE }); LINES.put("FF10", new Style(Style.BLUE, Style.WHITE));
LINES.put("FF11", new int[] { Color.BLUE, Color.WHITE }); LINES.put("FF11", new Style(Style.BLUE, Style.WHITE));
LINES.put("FF12", new int[] { Color.BLUE, Color.WHITE }); LINES.put("FF12", new Style(Style.BLUE, Style.WHITE));
LINES.put("FF21", new int[] { Color.BLUE, Color.WHITE }); LINES.put("FF21", new Style(Style.BLUE, Style.WHITE));
LINES.put("FF23", new int[] { Color.BLUE, Color.WHITE }); LINES.put("FF23", new Style(Style.BLUE, Style.WHITE));
LINES.put("FF24", new int[] { Color.BLUE, Color.WHITE }); LINES.put("FF24", new Style(Style.BLUE, Style.WHITE));
// Regional lines Brandenburg: // Regional lines Brandenburg:
LINES.put("RRE1", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); LINES.put("RRE1", new Style(Style.parseColor("#EE1C23"), Style.WHITE));
LINES.put("RRE2", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); LINES.put("RRE2", new Style(Style.parseColor("#FFD403"), Style.BLACK));
LINES.put("RRE3", new int[] { Color.parseColor("#F57921"), Color.WHITE }); LINES.put("RRE3", new Style(Style.parseColor("#F57921"), Style.WHITE));
LINES.put("RRE4", new int[] { Color.parseColor("#952D4F"), Color.WHITE }); LINES.put("RRE4", new Style(Style.parseColor("#952D4F"), Style.WHITE));
LINES.put("RRE5", new int[] { Color.parseColor("#0072BC"), Color.WHITE }); LINES.put("RRE5", new Style(Style.parseColor("#0072BC"), Style.WHITE));
LINES.put("RRE6", new int[] { Color.parseColor("#DB6EAB"), Color.WHITE }); LINES.put("RRE6", new Style(Style.parseColor("#DB6EAB"), Style.WHITE));
LINES.put("RRE7", new int[] { Color.parseColor("#00854A"), Color.WHITE }); LINES.put("RRE7", new Style(Style.parseColor("#00854A"), Style.WHITE));
LINES.put("RRE10", new int[] { Color.parseColor("#A7653F"), Color.WHITE }); LINES.put("RRE10", new Style(Style.parseColor("#A7653F"), Style.WHITE));
LINES.put("RRE11", new int[] { Color.parseColor("#059EDB"), Color.WHITE }); LINES.put("RRE11", new Style(Style.parseColor("#059EDB"), Style.WHITE));
LINES.put("RRE11", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); LINES.put("RRE11", new Style(Style.parseColor("#EE1C23"), Style.WHITE));
LINES.put("RRE15", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); LINES.put("RRE15", new Style(Style.parseColor("#FFD403"), Style.BLACK));
LINES.put("RRE18", new int[] { Color.parseColor("#00A65E"), Color.WHITE }); LINES.put("RRE18", new Style(Style.parseColor("#00A65E"), Style.WHITE));
LINES.put("RRB10", new int[] { Color.parseColor("#60BB46"), Color.WHITE }); LINES.put("RRB10", new Style(Style.parseColor("#60BB46"), Style.WHITE));
LINES.put("RRB12", new int[] { Color.parseColor("#A3238E"), Color.WHITE }); LINES.put("RRB12", new Style(Style.parseColor("#A3238E"), Style.WHITE));
LINES.put("RRB13", new int[] { Color.parseColor("#F68B1F"), Color.WHITE }); LINES.put("RRB13", new Style(Style.parseColor("#F68B1F"), Style.WHITE));
LINES.put("RRB13", new int[] { Color.parseColor("#00A65E"), Color.WHITE }); LINES.put("RRB13", new Style(Style.parseColor("#00A65E"), Style.WHITE));
LINES.put("RRB14", new int[] { Color.parseColor("#A3238E"), Color.WHITE }); LINES.put("RRB14", new Style(Style.parseColor("#A3238E"), Style.WHITE));
LINES.put("RRB20", new int[] { Color.parseColor("#00854A"), Color.WHITE }); LINES.put("RRB20", new Style(Style.parseColor("#00854A"), Style.WHITE));
LINES.put("RRB21", new int[] { Color.parseColor("#5E6DB3"), Color.WHITE }); LINES.put("RRB21", new Style(Style.parseColor("#5E6DB3"), Style.WHITE));
LINES.put("RRB22", new int[] { Color.parseColor("#0087CB"), Color.WHITE }); LINES.put("RRB22", new Style(Style.parseColor("#0087CB"), Style.WHITE));
LINES.put("ROE25", new int[] { Color.parseColor("#0087CB"), Color.WHITE }); LINES.put("ROE25", new Style(Style.parseColor("#0087CB"), Style.WHITE));
LINES.put("RNE26", new int[] { Color.parseColor("#00A896"), Color.WHITE }); LINES.put("RNE26", new Style(Style.parseColor("#00A896"), Style.WHITE));
LINES.put("RNE27", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); LINES.put("RNE27", new Style(Style.parseColor("#EE1C23"), Style.WHITE));
LINES.put("RRB30", new int[] { Color.parseColor("#00A65E"), Color.WHITE }); LINES.put("RRB30", new Style(Style.parseColor("#00A65E"), Style.WHITE));
LINES.put("RRB31", new int[] { Color.parseColor("#60BB46"), Color.WHITE }); LINES.put("RRB31", new Style(Style.parseColor("#60BB46"), Style.WHITE));
LINES.put("RMR33", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); LINES.put("RMR33", new Style(Style.parseColor("#EE1C23"), Style.WHITE));
LINES.put("ROE35", new int[] { Color.parseColor("#5E6DB3"), Color.WHITE }); LINES.put("ROE35", new Style(Style.parseColor("#5E6DB3"), Style.WHITE));
LINES.put("ROE36", new int[] { Color.parseColor("#A7653F"), Color.WHITE }); LINES.put("ROE36", new Style(Style.parseColor("#A7653F"), Style.WHITE));
LINES.put("RRB43", new int[] { Color.parseColor("#5E6DB3"), Color.WHITE }); LINES.put("RRB43", new Style(Style.parseColor("#5E6DB3"), Style.WHITE));
LINES.put("RRB45", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); LINES.put("RRB45", new Style(Style.parseColor("#FFD403"), Style.BLACK));
LINES.put("ROE46", new int[] { Color.parseColor("#DB6EAB"), Color.WHITE }); LINES.put("ROE46", new Style(Style.parseColor("#DB6EAB"), Style.WHITE));
LINES.put("RMR51", new int[] { Color.parseColor("#DB6EAB"), Color.WHITE }); LINES.put("RMR51", new Style(Style.parseColor("#DB6EAB"), Style.WHITE));
LINES.put("RRB51", new int[] { Color.parseColor("#DB6EAB"), Color.WHITE }); LINES.put("RRB51", new Style(Style.parseColor("#DB6EAB"), Style.WHITE));
LINES.put("RRB54", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); LINES.put("RRB54", new Style(Style.parseColor("#FFD403"), Style.BLACK));
LINES.put("RRB55", new int[] { Color.parseColor("#F57921"), Color.WHITE }); LINES.put("RRB55", new Style(Style.parseColor("#F57921"), Style.WHITE));
LINES.put("ROE60", new int[] { Color.parseColor("#60BB46"), Color.WHITE }); LINES.put("ROE60", new Style(Style.parseColor("#60BB46"), Style.WHITE));
LINES.put("ROE63", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); LINES.put("ROE63", new Style(Style.parseColor("#FFD403"), Style.BLACK));
LINES.put("ROE65", new int[] { Color.parseColor("#0072BC"), Color.WHITE }); LINES.put("ROE65", new Style(Style.parseColor("#0072BC"), Style.WHITE));
LINES.put("RRB66", new int[] { Color.parseColor("#60BB46"), Color.WHITE }); LINES.put("RRB66", new Style(Style.parseColor("#60BB46"), Style.WHITE));
LINES.put("RPE70", new int[] { Color.parseColor("#FFD403"), Color.BLACK }); LINES.put("RPE70", new Style(Style.parseColor("#FFD403"), Style.BLACK));
LINES.put("RPE73", new int[] { Color.parseColor("#00A896"), Color.WHITE }); LINES.put("RPE73", new Style(Style.parseColor("#00A896"), Style.WHITE));
LINES.put("RPE74", new int[] { Color.parseColor("#0072BC"), Color.WHITE }); LINES.put("RPE74", new Style(Style.parseColor("#0072BC"), Style.WHITE));
LINES.put("T89", new int[] { Color.parseColor("#EE1C23"), Color.WHITE }); LINES.put("T89", new Style(Style.parseColor("#EE1C23"), Style.WHITE));
LINES.put("RRB91", new int[] { Color.parseColor("#A7653F"), Color.WHITE }); LINES.put("RRB91", new Style(Style.parseColor("#A7653F"), Style.WHITE));
LINES.put("RRB93", new int[] { Color.parseColor("#A7653F"), Color.WHITE }); LINES.put("RRB93", new Style(Style.parseColor("#A7653F"), Style.WHITE));
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
final int[] lineColors = LINES.get(line); final Style style = LINES.get(line);
if (lineColors != null) if (style != null)
return lineColors; return style;
else else
return super.lineColors(line); return super.lineStyle(line);
} }
@Override @Override

View file

@ -24,7 +24,7 @@ import java.util.Map;
import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
@ -60,31 +60,31 @@ public class GvhProvider extends AbstractEfaProvider
return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString()));
} }
private static final Map<String, int[]> LINES = new HashMap<String, int[]>(); private static final Map<String, Style> LINES = new HashMap<String, Style>();
static static
{ {
// Hamburg // Hamburg
LINES.put("SS1", new int[] { Color.parseColor("#00933B"), Color.WHITE }); LINES.put("SS1", new Style(Style.parseColor("#00933B"), Style.WHITE));
LINES.put("SS11", new int[] { Color.WHITE, Color.parseColor("#00933B"), Color.parseColor("#00933B") }); LINES.put("SS11", new Style(Style.WHITE, Style.parseColor("#00933B"), Style.parseColor("#00933B")));
LINES.put("SS2", new int[] { Color.WHITE, Color.parseColor("#9D271A"), Color.parseColor("#9D271A") }); LINES.put("SS2", new Style(Style.WHITE, Style.parseColor("#9D271A"), Style.parseColor("#9D271A")));
LINES.put("SS21", new int[] { Color.parseColor("#9D271A"), Color.WHITE }); LINES.put("SS21", new Style(Style.parseColor("#9D271A"), Style.WHITE));
LINES.put("SS3", new int[] { Color.parseColor("#411273"), Color.WHITE }); LINES.put("SS3", new Style(Style.parseColor("#411273"), Style.WHITE));
LINES.put("SS31", new int[] { Color.parseColor("#411273"), Color.WHITE }); LINES.put("SS31", new Style(Style.parseColor("#411273"), Style.WHITE));
LINES.put("UU1", new int[] { Color.parseColor("#044895"), Color.WHITE }); LINES.put("UU1", new Style(Style.parseColor("#044895"), Style.WHITE));
LINES.put("UU2", new int[] { Color.parseColor("#DC2B19"), Color.WHITE }); LINES.put("UU2", new Style(Style.parseColor("#DC2B19"), Style.WHITE));
LINES.put("UU3", new int[] { Color.parseColor("#EE9D16"), Color.WHITE }); LINES.put("UU3", new Style(Style.parseColor("#EE9D16"), Style.WHITE));
LINES.put("UU4", new int[] { Color.parseColor("#13A59D"), Color.WHITE }); LINES.put("UU4", new Style(Style.parseColor("#13A59D"), Style.WHITE));
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
final int[] lineColors = LINES.get(line); final Style style = LINES.get(line);
if (lineColors != null) if (style != null)
return lineColors; return style;
else else
return super.lineColors(line); return super.lineStyle(line);
} }
} }

View file

@ -37,7 +37,7 @@ import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryDeparturesResult.Status; import de.schildbach.pte.dto.QueryDeparturesResult.Status;
import de.schildbach.pte.dto.ResultHeader; import de.schildbach.pte.dto.ResultHeader;
import de.schildbach.pte.dto.StationDepartures; import de.schildbach.pte.dto.StationDepartures;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
import de.schildbach.pte.util.ParserUtils; import de.schildbach.pte.util.ParserUtils;
/** /**
@ -290,28 +290,28 @@ public class InvgProvider extends AbstractHafasProvider
if (mBus.matches()) if (mBus.matches())
{ {
final String lineStr = "B" + mBus.group(1); 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); final Matcher mNachtbus = P_NORMALIZE_LINE_NACHTBUS.matcher(line);
if (mNachtbus.matches()) if (mNachtbus.matches())
{ {
final String lineStr = "BN" + mNachtbus.group(1); 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); final Matcher mBusS = P_NORMALIZE_LINE_BUS_S.matcher(line);
if (mBusS.matches()) if (mBusS.matches())
{ {
final String lineStr = "BS" + mBusS.group(1); 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); final Matcher mBusX = P_NORMALIZE_LINE_BUS_X.matcher(line);
if (mBusX.matches()) if (mBusX.matches())
{ {
final String lineStr = "BX" + mBusX.group(1); 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; return 0;
} }
private static final Map<String, int[]> LINES = new HashMap<String, int[]>(); private static final Map<String, Style> LINES = new HashMap<String, Style>();
static static
{ {
LINES.put("B10", new int[] { Color.parseColor("#DA2510"), Color.WHITE }); LINES.put("B10", new Style(Style.parseColor("#DA2510"), Style.WHITE));
LINES.put("B11", new int[] { Color.parseColor("#EE9B78"), Color.BLACK }); LINES.put("B11", new Style(Style.parseColor("#EE9B78"), Style.BLACK));
LINES.put("B15", new int[] { Color.parseColor("#84C326"), Color.BLACK }); LINES.put("B15", new Style(Style.parseColor("#84C326"), Style.BLACK));
LINES.put("B16", new int[] { Color.parseColor("#5D452E"), Color.WHITE }); LINES.put("B16", new Style(Style.parseColor("#5D452E"), Style.WHITE));
LINES.put("B17", new int[] { Color.parseColor("#AAAAAA"), Color.BLACK }); LINES.put("B17", new Style(Style.parseColor("#AAAAAA"), Style.BLACK));
LINES.put("B20", new int[] { Color.parseColor("#EA891C"), Color.BLACK }); LINES.put("B20", new Style(Style.parseColor("#EA891C"), Style.BLACK));
LINES.put("B21", new int[] { Color.parseColor("#31B2EA"), Color.BLACK }); LINES.put("B21", new Style(Style.parseColor("#31B2EA"), Style.BLACK));
LINES.put("B25", new int[] { Color.parseColor("#7F65A0"), Color.WHITE }); LINES.put("B25", new Style(Style.parseColor("#7F65A0"), Style.WHITE));
LINES.put("B26", new int[] { Color.parseColor("#00BF73"), Color.WHITE }); LINES.put("B26", new Style(Style.parseColor("#00BF73"), Style.WHITE));
LINES.put("B30", new int[] { Color.parseColor("#901E78"), Color.WHITE }); LINES.put("B30", new Style(Style.parseColor("#901E78"), Style.WHITE));
LINES.put("B31", new int[] { Color.parseColor("#DCE722"), Color.BLACK }); LINES.put("B31", new Style(Style.parseColor("#DCE722"), Style.BLACK));
LINES.put("B40", new int[] { Color.parseColor("#009240"), Color.WHITE }); LINES.put("B40", new Style(Style.parseColor("#009240"), Style.WHITE));
LINES.put("B41", new int[] { Color.parseColor("#7BC5B1"), Color.BLACK }); LINES.put("B41", new Style(Style.parseColor("#7BC5B1"), Style.BLACK));
LINES.put("B44", new int[] { Color.parseColor("#EA77A6"), Color.WHITE }); LINES.put("B44", new Style(Style.parseColor("#EA77A6"), Style.WHITE));
LINES.put("B50", new int[] { Color.parseColor("#FACF00"), Color.BLACK }); LINES.put("B50", new Style(Style.parseColor("#FACF00"), Style.BLACK));
LINES.put("B53", new int[] { Color.parseColor("#BEB405"), Color.BLACK }); LINES.put("B53", new Style(Style.parseColor("#BEB405"), Style.BLACK));
LINES.put("B55", new int[] { Color.parseColor("#FFF500"), Color.BLACK }); LINES.put("B55", new Style(Style.parseColor("#FFF500"), Style.BLACK));
LINES.put("B60", new int[] { Color.parseColor("#0072B7"), Color.WHITE }); LINES.put("B60", new Style(Style.parseColor("#0072B7"), Style.WHITE));
LINES.put("B61", new int[] { Color.rgb(204, 184, 122), Color.BLACK }); LINES.put("B61", new Style(Style.rgb(204, 184, 122), Style.BLACK));
LINES.put("B62", new int[] { Color.rgb(204, 184, 122), Color.BLACK }); LINES.put("B62", new Style(Style.rgb(204, 184, 122), Style.BLACK));
LINES.put("B65", new int[] { Color.parseColor("#B7DDD2"), Color.BLACK }); LINES.put("B65", new Style(Style.parseColor("#B7DDD2"), Style.BLACK));
LINES.put("B70", new int[] { Color.parseColor("#D49016"), Color.BLACK }); LINES.put("B70", new Style(Style.parseColor("#D49016"), Style.BLACK));
LINES.put("B71", new int[] { Color.parseColor("#996600"), Color.BLACK }); LINES.put("B71", new Style(Style.parseColor("#996600"), Style.BLACK));
LINES.put("B85", new int[] { Color.parseColor("#F6BAD3"), Color.BLACK }); LINES.put("B85", new Style(Style.parseColor("#F6BAD3"), Style.BLACK));
LINES.put("B9221", new int[] { Color.rgb(217, 217, 255), Color.BLACK }); LINES.put("B9221", new Style(Style.rgb(217, 217, 255), Style.BLACK));
LINES.put("B9226", new int[] { Color.rgb(191, 255, 255), Color.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("BN1", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN2", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN2", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN3", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN3", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN4", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN4", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN5", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN5", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN6", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN6", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN7", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN7", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN8", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN8", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN9", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN9", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN10", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN10", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN11", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN11", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN12", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN12", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN13", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN13", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN14", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN14", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN15", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN15", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN16", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN16", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN17", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN17", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN18", new int[] { Color.parseColor("#00116C"), Color.WHITE }); LINES.put("BN18", new Style(Style.parseColor("#00116C"), Style.WHITE));
LINES.put("BN19", new int[] { Color.parseColor("#00116C"), Color.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("BS1", new Style(Style.rgb(178, 25, 0), Style.WHITE));
LINES.put("BS2", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); LINES.put("BS2", new Style(Style.rgb(178, 25, 0), Style.WHITE));
LINES.put("BS3", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); LINES.put("BS3", new Style(Style.rgb(178, 25, 0), Style.WHITE));
LINES.put("BS4", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); LINES.put("BS4", new Style(Style.rgb(178, 25, 0), Style.WHITE));
LINES.put("BS5", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); LINES.put("BS5", new Style(Style.rgb(178, 25, 0), Style.WHITE));
LINES.put("BS6", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); LINES.put("BS6", new Style(Style.rgb(178, 25, 0), Style.WHITE));
LINES.put("BS7", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); LINES.put("BS7", new Style(Style.rgb(178, 25, 0), Style.WHITE));
LINES.put("BS8", new int[] { Color.rgb(178, 25, 0), Color.WHITE }); LINES.put("BS8", new Style(Style.rgb(178, 25, 0), Style.WHITE));
// BX109? // BX109?
LINES.put("BX11", new int[] { Color.parseColor("#EE9B78"), Color.BLACK }); LINES.put("BX11", new Style(Style.parseColor("#EE9B78"), Style.BLACK));
LINES.put("BX80", new int[] { Color.parseColor("#FFFF40"), Color.BLACK }); LINES.put("BX80", new Style(Style.parseColor("#FFFF40"), Style.BLACK));
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
final int[] lineColors = LINES.get(line); final Style style = LINES.get(line);
if (lineColors != null) if (style != null)
return lineColors; return style;
else else
return super.lineColors(line); return super.lineStyle(line);
} }
} }

View file

@ -24,7 +24,7 @@ import java.util.Map;
import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
@ -74,63 +74,63 @@ public class KvvProvider extends AbstractEfaProvider
return super.parseLine(mot, name, longName, noTrainName); return super.parseLine(mot, name, longName, noTrainName);
} }
private static final Map<String, int[]> LINES = new HashMap<String, int[]>(); private static final Map<String, Style> LINES = new HashMap<String, Style>();
static static
{ {
// S-Bahn // S-Bahn
LINES.put("SS1", new int[] { Color.parseColor("#00a76d"), Color.WHITE }); LINES.put("SS1", new Style(Style.parseColor("#00a76d"), Style.WHITE));
LINES.put("SS11", new int[] { Color.parseColor("#00a76d"), Color.WHITE }); LINES.put("SS11", new Style(Style.parseColor("#00a76d"), Style.WHITE));
LINES.put("SS2", new int[] { Color.parseColor("#a066aa"), Color.WHITE }); LINES.put("SS2", new Style(Style.parseColor("#a066aa"), Style.WHITE));
LINES.put("SS3", new int[] { Color.parseColor("#00a99d"), Color.WHITE }); LINES.put("SS3", new Style(Style.parseColor("#00a99d"), Style.WHITE));
LINES.put("SS31", new int[] { Color.parseColor("#00a99d"), Color.WHITE }); LINES.put("SS31", new Style(Style.parseColor("#00a99d"), Style.WHITE));
LINES.put("SS32", new int[] { Color.parseColor("#00a99d"), Color.WHITE }); LINES.put("SS32", new Style(Style.parseColor("#00a99d"), Style.WHITE));
LINES.put("SS33", new int[] { Color.parseColor("#00a99d"), Color.WHITE }); LINES.put("SS33", new Style(Style.parseColor("#00a99d"), Style.WHITE));
LINES.put("SS4", new int[] { Color.parseColor("#9f184c"), Color.WHITE }); LINES.put("SS4", new Style(Style.parseColor("#9f184c"), Style.WHITE));
LINES.put("SS41", new int[] { Color.parseColor("#9f184c"), Color.WHITE }); LINES.put("SS41", new Style(Style.parseColor("#9f184c"), Style.WHITE));
LINES.put("SS5", new int[] { Color.parseColor("#f69795"), Color.BLACK }); LINES.put("SS5", new Style(Style.parseColor("#f69795"), Style.BLACK));
LINES.put("SS51", new int[] { Color.parseColor("#f69795"), Color.BLACK }); LINES.put("SS51", new Style(Style.parseColor("#f69795"), Style.BLACK));
LINES.put("SS52", new int[] { Color.parseColor("#f69795"), Color.BLACK }); LINES.put("SS52", new Style(Style.parseColor("#f69795"), Style.BLACK));
LINES.put("SS6", new int[] { Color.parseColor("#282268"), Color.WHITE }); LINES.put("SS6", new Style(Style.parseColor("#282268"), Style.WHITE));
LINES.put("SS7", new int[] { Color.parseColor("#fff200"), Color.BLACK }); LINES.put("SS7", new Style(Style.parseColor("#fff200"), Style.BLACK));
LINES.put("SS8", new int[] { Color.parseColor("#6e692a"), Color.WHITE }); LINES.put("SS8", new Style(Style.parseColor("#6e692a"), Style.WHITE));
LINES.put("SS9", new int[] { Color.parseColor("#fab49b"), Color.BLACK }); LINES.put("SS9", new Style(Style.parseColor("#fab49b"), Style.BLACK));
// Tram // Tram
LINES.put("T1", new int[] { Color.parseColor("#ed1c24"), Color.WHITE }); LINES.put("T1", new Style(Style.parseColor("#ed1c24"), Style.WHITE));
LINES.put("T2", new int[] { Color.parseColor("#0071bc"), Color.WHITE }); LINES.put("T2", new Style(Style.parseColor("#0071bc"), Style.WHITE));
LINES.put("T2E", new int[] { Color.parseColor("#0071bc"), Color.WHITE }); LINES.put("T2E", new Style(Style.parseColor("#0071bc"), Style.WHITE));
LINES.put("T3", new int[] { Color.parseColor("#947139"), Color.WHITE }); LINES.put("T3", new Style(Style.parseColor("#947139"), Style.WHITE));
LINES.put("T4", new int[] { Color.parseColor("#ffcb04"), Color.BLACK }); LINES.put("T4", new Style(Style.parseColor("#ffcb04"), Style.BLACK));
LINES.put("T5", new int[] { Color.parseColor("#00c0f3"), Color.WHITE }); LINES.put("T5", new Style(Style.parseColor("#00c0f3"), Style.WHITE));
LINES.put("T6", new int[] { Color.parseColor("#80c342"), Color.WHITE }); LINES.put("T6", new Style(Style.parseColor("#80c342"), Style.WHITE));
LINES.put("T7", new int[] { Color.parseColor("#58595b"), Color.WHITE }); LINES.put("T7", new Style(Style.parseColor("#58595b"), Style.WHITE));
LINES.put("T8", new int[] { Color.parseColor("#f7931d"), Color.BLACK }); LINES.put("T8", new Style(Style.parseColor("#f7931d"), Style.BLACK));
// Nightliner // Nightliner
LINES.put("BNL3", new int[] { Color.parseColor("#947139"), Color.WHITE }); LINES.put("BNL3", new Style(Style.parseColor("#947139"), Style.WHITE));
LINES.put("BNL4", new int[] { Color.parseColor("#ffcb04"), Color.BLACK }); LINES.put("BNL4", new Style(Style.parseColor("#ffcb04"), Style.BLACK));
LINES.put("BNL5", new int[] { Color.parseColor("#00c0f3"), Color.WHITE }); LINES.put("BNL5", new Style(Style.parseColor("#00c0f3"), Style.WHITE));
LINES.put("BNL6", new int[] { Color.parseColor("#80c342"), Color.WHITE }); LINES.put("BNL6", new Style(Style.parseColor("#80c342"), Style.WHITE));
// Anruf-Linien-Taxi // Anruf-Linien-Taxi
LINES.put("BALT6", new int[] { Color.BLACK, Color.YELLOW }); LINES.put("BALT6", new Style(Style.BLACK, Style.YELLOW));
LINES.put("BALT11", new int[] { Color.BLACK, Color.YELLOW }); LINES.put("BALT11", new Style(Style.BLACK, Style.YELLOW));
LINES.put("BALT12", new int[] { Color.BLACK, Color.YELLOW }); LINES.put("BALT12", new Style(Style.BLACK, Style.YELLOW));
LINES.put("BALT13", new int[] { Color.BLACK, Color.YELLOW }); LINES.put("BALT13", new Style(Style.BLACK, Style.YELLOW));
LINES.put("BALT14", new int[] { Color.BLACK, Color.YELLOW }); LINES.put("BALT14", new Style(Style.BLACK, Style.YELLOW));
LINES.put("BALT16", new int[] { Color.BLACK, Color.YELLOW }); LINES.put("BALT16", new Style(Style.BLACK, Style.YELLOW));
// TODO Bus, but needs shape for disambiguation // TODO Bus, but needs shape for disambiguation
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
final int[] lineColors = LINES.get(line); final Style style = LINES.get(line);
if (lineColors != null) if (style != null)
return lineColors; return style;
else else
return super.lineColors(line); return super.lineStyle(line);
} }
} }

View file

@ -25,7 +25,7 @@ import java.util.TimeZone;
import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
@ -66,25 +66,25 @@ public class MetProvider extends AbstractEfaProvider
return jsonStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); return jsonStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString()));
} }
private static final Map<Character, int[]> LINES = new HashMap<Character, int[]>(); private static final Map<Character, Style> LINES = new HashMap<Character, Style>();
static static
{ {
LINES.put('R', new int[] { Color.parseColor("#a24ba3"), Color.WHITE }); LINES.put('R', new Style(Style.parseColor("#a24ba3"), Style.WHITE));
LINES.put('S', new int[] { Color.parseColor("#3a75c4"), Color.WHITE }); LINES.put('S', new Style(Style.parseColor("#3a75c4"), Style.WHITE));
LINES.put('T', new int[] { Color.parseColor("#5bbf21"), Color.WHITE }); LINES.put('T', new Style(Style.parseColor("#5bbf21"), Style.WHITE));
LINES.put('B', new int[] { Color.parseColor("#f77f00"), Color.WHITE }); LINES.put('B', new Style(Style.parseColor("#f77f00"), Style.WHITE));
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
// TODO NightRider buses (buses with numbers > 940): #f26522 // TODO NightRider buses (buses with numbers > 940): #f26522
final int[] lineColors = LINES.get(line.charAt(0)); final Style style = LINES.get(line.charAt(0));
if (lineColors != null) if (style != null)
return lineColors; return style;
else else
return super.lineColors(line); return super.lineStyle(line);
} }
} }

View file

@ -25,7 +25,7 @@ import java.util.Map;
import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.Point; import de.schildbach.pte.dto.Point;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
@ -61,54 +61,54 @@ public class MvvProvider extends AbstractEfaProvider
return jsonStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); return jsonStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString()));
} }
private static final Map<String, int[]> LINES = new HashMap<String, int[]>(); private static final Map<String, Style> LINES = new HashMap<String, Style>();
static static
{ {
LINES.put("SS1", new int[] { Color.parseColor("#00ccff"), Color.WHITE }); LINES.put("SS1", new Style(Style.parseColor("#00ccff"), Style.WHITE));
LINES.put("SS2", new int[] { Color.parseColor("#66cc00"), Color.WHITE }); LINES.put("SS2", new Style(Style.parseColor("#66cc00"), Style.WHITE));
LINES.put("SS3", new int[] { Color.parseColor("#880099"), Color.WHITE }); LINES.put("SS3", new Style(Style.parseColor("#880099"), Style.WHITE));
LINES.put("SS4", new int[] { Color.parseColor("#ff0033"), Color.WHITE }); LINES.put("SS4", new Style(Style.parseColor("#ff0033"), Style.WHITE));
LINES.put("SS6", new int[] { Color.parseColor("#00aa66"), Color.WHITE }); LINES.put("SS6", new Style(Style.parseColor("#00aa66"), Style.WHITE));
LINES.put("SS7", new int[] { Color.parseColor("#993333"), Color.WHITE }); LINES.put("SS7", new Style(Style.parseColor("#993333"), Style.WHITE));
LINES.put("SS8", new int[] { Color.BLACK, Color.parseColor("#ffcc00") }); LINES.put("SS8", new Style(Style.BLACK, Style.parseColor("#ffcc00")));
LINES.put("SS20", new int[] { Color.BLACK, Color.parseColor("#ffaaaa") }); LINES.put("SS20", new Style(Style.BLACK, Style.parseColor("#ffaaaa")));
LINES.put("SS27", new int[] { Color.parseColor("#ffaaaa"), Color.WHITE }); LINES.put("SS27", new Style(Style.parseColor("#ffaaaa"), Style.WHITE));
LINES.put("SA", new int[] { Color.parseColor("#231f20"), Color.WHITE }); LINES.put("SA", new Style(Style.parseColor("#231f20"), Style.WHITE));
LINES.put("T12", new int[] { Color.parseColor("#883388"), Color.WHITE }); LINES.put("T12", new Style(Style.parseColor("#883388"), Style.WHITE));
LINES.put("T15", new int[] { Color.parseColor("#3366CC"), Color.WHITE }); LINES.put("T15", new Style(Style.parseColor("#3366CC"), Style.WHITE));
LINES.put("T16", new int[] { Color.parseColor("#CC8833"), Color.WHITE }); LINES.put("T16", new Style(Style.parseColor("#CC8833"), Style.WHITE));
LINES.put("T17", new int[] { Color.parseColor("#993333"), Color.WHITE }); LINES.put("T17", new Style(Style.parseColor("#993333"), Style.WHITE));
LINES.put("T18", new int[] { Color.parseColor("#66bb33"), Color.WHITE }); LINES.put("T18", new Style(Style.parseColor("#66bb33"), Style.WHITE));
LINES.put("T19", new int[] { Color.parseColor("#cc0000"), Color.WHITE }); LINES.put("T19", new Style(Style.parseColor("#cc0000"), Style.WHITE));
LINES.put("T20", new int[] { Color.parseColor("#00bbee"), Color.WHITE }); LINES.put("T20", new Style(Style.parseColor("#00bbee"), Style.WHITE));
LINES.put("T21", new int[] { Color.parseColor("#33aa99"), Color.WHITE }); LINES.put("T21", new Style(Style.parseColor("#33aa99"), Style.WHITE));
LINES.put("T23", new int[] { Color.parseColor("#fff000"), Color.WHITE }); LINES.put("T23", new Style(Style.parseColor("#fff000"), Style.WHITE));
LINES.put("T25", new int[] { Color.parseColor("#ff9999"), Color.WHITE }); LINES.put("T25", new Style(Style.parseColor("#ff9999"), Style.WHITE));
LINES.put("T27", new int[] { Color.parseColor("#ff6600"), Color.WHITE }); LINES.put("T27", new Style(Style.parseColor("#ff6600"), Style.WHITE));
LINES.put("TN17", new int[] { Color.parseColor("#999999"), Color.parseColor("#ffff00") }); LINES.put("TN17", new Style(Style.parseColor("#999999"), Style.parseColor("#ffff00")));
LINES.put("TN19", new int[] { Color.parseColor("#999999"), Color.parseColor("#ffff00") }); LINES.put("TN19", new Style(Style.parseColor("#999999"), Style.parseColor("#ffff00")));
LINES.put("TN20", new int[] { Color.parseColor("#999999"), Color.parseColor("#ffff00") }); LINES.put("TN20", new Style(Style.parseColor("#999999"), Style.parseColor("#ffff00")));
LINES.put("TN27", new int[] { Color.parseColor("#999999"), Color.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("UU1", new Style(Style.parseColor("#227700"), Style.WHITE));
LINES.put("UU2", new int[] { Color.parseColor("#bb0000"), Color.WHITE }); LINES.put("UU2", new Style(Style.parseColor("#bb0000"), Style.WHITE));
LINES.put("UU2E", new int[] { Color.parseColor("#bb0000"), Color.WHITE }); LINES.put("UU2E", new Style(Style.parseColor("#bb0000"), Style.WHITE));
LINES.put("UU3", new int[] { Color.parseColor("#ee8800"), Color.WHITE }); LINES.put("UU3", new Style(Style.parseColor("#ee8800"), Style.WHITE));
LINES.put("UU4", new int[] { Color.parseColor("#00ccaa"), Color.WHITE }); LINES.put("UU4", new Style(Style.parseColor("#00ccaa"), Style.WHITE));
LINES.put("UU5", new int[] { Color.parseColor("#bb7700"), Color.WHITE }); LINES.put("UU5", new Style(Style.parseColor("#bb7700"), Style.WHITE));
LINES.put("UU6", new int[] { Color.parseColor("#0000cc"), Color.WHITE }); LINES.put("UU6", new Style(Style.parseColor("#0000cc"), Style.WHITE));
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
final int[] lineColors = LINES.get(line); final Style style = LINES.get(line);
if (lineColors != null) if (style != null)
return lineColors; return style;
else else
return super.lineColors(line); return super.lineStyle(line);
} }
@Override @Override

View file

@ -27,6 +27,7 @@ import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Point; import de.schildbach.pte.dto.Point;
import de.schildbach.pte.dto.QueryConnectionsResult; import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult; import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.Style;
/** /**
* Interface to be implemented by providers of transportation networks * Interface to be implemented by providers of transportation networks
@ -138,13 +139,13 @@ public interface NetworkProvider
GetConnectionDetailsResult getConnectionDetails(String connectionUri) throws IOException; GetConnectionDetailsResult getConnectionDetails(String connectionUri) throws IOException;
/** /**
* Get colors of line * Get style of line
* *
* @param line * @param line
* line to get color of * line to get style of
* @return array containing background, foreground and border (optional) colors * @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 * Gets the primary covered area of the network

View file

@ -25,7 +25,7 @@ import java.util.TimeZone;
import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
@ -90,34 +90,34 @@ public class SfProvider extends AbstractEfaProvider
return super.parseLine(mot, name, longName, noTrainName); return super.parseLine(mot, name, longName, noTrainName);
} }
private static final Map<String, int[]> LINES = new HashMap<String, int[]>(); private static final Map<String, Style> LINES = new HashMap<String, Style>();
static static
{ {
// BART // BART
LINES.put("RDaly City / Dublin Pleasanton", 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 int[] { Color.parseColor("#00AEEF"), Color.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("RSFO / Pittsburg Bay Point", new Style(Style.parseColor("#FFE800"), Style.BLACK));
LINES.put("RPittsburg Bay Point / SFO", new int[] { Color.parseColor("#FFE800"), Color.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("RDaly City / Fremont", new Style(Style.parseColor("#4EBF49"), Style.WHITE));
LINES.put("RFremont / Daly City", new int[] { Color.parseColor("#4EBF49"), Color.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("RFremont / Richmond", new Style(Style.parseColor("#FAA61A"), Style.WHITE));
LINES.put("RRichmond / Fremont", new int[] { Color.parseColor("#FAA61A"), Color.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("RMillbrae / Richmond", new Style(Style.parseColor("#F81A23"), Style.WHITE));
LINES.put("RRichmond / Millbrae", new int[] { Color.parseColor("#F81A23"), Color.WHITE }); LINES.put("RRichmond / Millbrae", new Style(Style.parseColor("#F81A23"), Style.WHITE));
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
final int[] lineColors = LINES.get(line); final Style style = LINES.get(line);
if (lineColors != null) if (style != null)
return lineColors; return style;
else else
return super.lineColors(line); return super.lineStyle(line);
} }
} }

View file

@ -20,23 +20,23 @@ package de.schildbach.pte;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
*/ */
public class StandardColors public class StandardColors
{ {
public static final Map<Character, int[]> LINES = new HashMap<Character, int[]>(); public static final Map<Character, Style> LINES = new HashMap<Character, Style>();
static static
{ {
LINES.put('I', new int[] { Color.WHITE, Color.RED, Color.RED }); LINES.put('I', new Style(Style.WHITE, Style.RED, Style.RED));
LINES.put('R', new int[] { Color.GRAY, Color.WHITE }); LINES.put('R', new Style(Style.GRAY, Style.WHITE));
LINES.put('S', new int[] { Color.parseColor("#006e34"), Color.WHITE }); LINES.put('S', new Style(Style.parseColor("#006e34"), Style.WHITE));
LINES.put('U', new int[] { Color.parseColor("#003090"), Color.WHITE }); LINES.put('U', new Style(Style.parseColor("#003090"), Style.WHITE));
LINES.put('T', new int[] { Color.parseColor("#cc0000"), Color.WHITE }); LINES.put('T', new Style(Style.parseColor("#cc0000"), Style.WHITE));
LINES.put('B', new int[] { Color.parseColor("#993399"), Color.WHITE }); LINES.put('B', new Style(Style.parseColor("#993399"), Style.WHITE));
LINES.put('F', new int[] { Color.BLUE, Color.WHITE }); LINES.put('F', new Style(Style.BLUE, Style.WHITE));
} }
} }

View file

@ -25,7 +25,7 @@ import java.util.TimeZone;
import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
@ -67,40 +67,40 @@ public class TflProvider extends AbstractEfaProvider
return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString()));
} }
private static final Map<String, int[]> LINES = new HashMap<String, int[]>(); private static final Map<String, Style> LINES = new HashMap<String, Style>();
static static
{ {
// London // London
LINES.put("UBakerloo", new int[] { Color.parseColor("#9D5324"), Color.WHITE }); LINES.put("UBakerloo", new Style(Style.parseColor("#9D5324"), Style.WHITE));
LINES.put("UCentral", new int[] { Color.parseColor("#D52B1E"), Color.WHITE }); LINES.put("UCentral", new Style(Style.parseColor("#D52B1E"), Style.WHITE));
LINES.put("UCircle", new int[] { Color.parseColor("#FECB00"), Color.BLACK }); LINES.put("UCircle", new Style(Style.parseColor("#FECB00"), Style.BLACK));
LINES.put("UDistrict", new int[] { Color.parseColor("#007934"), Color.WHITE }); LINES.put("UDistrict", new Style(Style.parseColor("#007934"), Style.WHITE));
LINES.put("UEast London", new int[] { Color.parseColor("#FFA100"), Color.WHITE }); LINES.put("UEast London", new Style(Style.parseColor("#FFA100"), Style.WHITE));
LINES.put("UHammersmith & City", new int[] { Color.parseColor("#C5858F"), Color.BLACK }); LINES.put("UHammersmith & City", new Style(Style.parseColor("#C5858F"), Style.BLACK));
LINES.put("UJubilee", new int[] { Color.parseColor("#818A8F"), Color.WHITE }); LINES.put("UJubilee", new Style(Style.parseColor("#818A8F"), Style.WHITE));
LINES.put("UMetropolitan", new int[] { Color.parseColor("#850057"), Color.WHITE }); LINES.put("UMetropolitan", new Style(Style.parseColor("#850057"), Style.WHITE));
LINES.put("UNorthern", new int[] { Color.BLACK, Color.WHITE }); LINES.put("UNorthern", new Style(Style.BLACK, Style.WHITE));
LINES.put("UPicadilly", new int[] { Color.parseColor("#0018A8"), Color.WHITE }); LINES.put("UPicadilly", new Style(Style.parseColor("#0018A8"), Style.WHITE));
LINES.put("UVictoria", new int[] { Color.parseColor("#00A1DE"), Color.WHITE }); LINES.put("UVictoria", new Style(Style.parseColor("#00A1DE"), Style.WHITE));
LINES.put("UWaterloo & City", new int[] { Color.parseColor("#76D2B6"), Color.BLACK }); LINES.put("UWaterloo & City", new Style(Style.parseColor("#76D2B6"), Style.BLACK));
LINES.put("SDLR", new int[] { Color.parseColor("#00B2A9"), Color.WHITE }); LINES.put("SDLR", new Style(Style.parseColor("#00B2A9"), Style.WHITE));
LINES.put("SLO", new int[] { Color.parseColor("#f46f1a"), Color.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 1", new Style(Style.rgb(193, 215, 46), Style.WHITE));
LINES.put("TTramlink 2", new int[] { Color.rgb(193, 215, 46), Color.WHITE }); LINES.put("TTramlink 2", new Style(Style.rgb(193, 215, 46), Style.WHITE));
LINES.put("TTramlink 3", new int[] { Color.rgb(124, 194, 66), Color.BLACK }); LINES.put("TTramlink 3", new Style(Style.rgb(124, 194, 66), Style.BLACK));
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
final int[] lineColors = LINES.get(line); final Style style = LINES.get(line);
if (lineColors != null) if (style != null)
return lineColors; return style;
if (line.startsWith("SLO")) if (line.startsWith("SLO"))
return LINES.get("SLO"); return LINES.get("SLO");
return super.lineColors(line); return super.lineStyle(line);
} }
} }

View file

@ -24,7 +24,7 @@ import java.util.Map;
import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType; import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.util.Color; import de.schildbach.pte.dto.Style;
/** /**
* @author Andreas Schildbach * @author Andreas Schildbach
@ -60,73 +60,73 @@ public class VrrProvider extends AbstractEfaProvider
return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString()));
} }
private static final Map<String, int[]> LINES = new HashMap<String, int[]>(); private static final Map<String, Style> LINES = new HashMap<String, Style>();
static static
{ {
// Busse Bonn // Busse Bonn
LINES.put("B63", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); LINES.put("B63", new Style(Style.parseColor("#0065ae"), Style.WHITE));
LINES.put("B16", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); LINES.put("B16", new Style(Style.parseColor("#0065ae"), Style.WHITE));
LINES.put("B66", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); LINES.put("B66", new Style(Style.parseColor("#0065ae"), Style.WHITE));
LINES.put("B67", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); LINES.put("B67", new Style(Style.parseColor("#0065ae"), Style.WHITE));
LINES.put("B68", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); LINES.put("B68", new Style(Style.parseColor("#0065ae"), Style.WHITE));
LINES.put("B18", new int[] { Color.parseColor("#0065ae"), Color.WHITE }); LINES.put("B18", new Style(Style.parseColor("#0065ae"), Style.WHITE));
LINES.put("B61", new int[] { Color.parseColor("#e4000b"), Color.WHITE }); LINES.put("B61", new Style(Style.parseColor("#e4000b"), Style.WHITE));
LINES.put("B62", new int[] { Color.parseColor("#e4000b"), Color.WHITE }); LINES.put("B62", new Style(Style.parseColor("#e4000b"), Style.WHITE));
LINES.put("B65", new int[] { Color.parseColor("#e4000b"), Color.WHITE }); LINES.put("B65", new Style(Style.parseColor("#e4000b"), Style.WHITE));
LINES.put("BSB55", new int[] { Color.parseColor("#00919e"), Color.WHITE }); LINES.put("BSB55", new Style(Style.parseColor("#00919e"), Style.WHITE));
LINES.put("BSB60", new int[] { Color.parseColor("#8f9867"), Color.WHITE }); LINES.put("BSB60", new Style(Style.parseColor("#8f9867"), Style.WHITE));
LINES.put("BSB69", new int[] { Color.parseColor("#db5f1f"), Color.WHITE }); LINES.put("BSB69", new Style(Style.parseColor("#db5f1f"), Style.WHITE));
LINES.put("B529", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); LINES.put("B529", new Style(Style.parseColor("#2e2383"), Style.WHITE));
LINES.put("B537", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); LINES.put("B537", new Style(Style.parseColor("#2e2383"), Style.WHITE));
LINES.put("B541", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); LINES.put("B541", new Style(Style.parseColor("#2e2383"), Style.WHITE));
LINES.put("B550", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); LINES.put("B550", new Style(Style.parseColor("#2e2383"), Style.WHITE));
LINES.put("B163", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); LINES.put("B163", new Style(Style.parseColor("#2e2383"), Style.WHITE));
LINES.put("B551", new int[] { Color.parseColor("#2e2383"), Color.WHITE }); LINES.put("B551", new Style(Style.parseColor("#2e2383"), Style.WHITE));
LINES.put("B600", new int[] { Color.parseColor("#817db7"), Color.WHITE }); LINES.put("B600", new Style(Style.parseColor("#817db7"), Style.WHITE));
LINES.put("B601", new int[] { Color.parseColor("#831b82"), Color.WHITE }); LINES.put("B601", new Style(Style.parseColor("#831b82"), Style.WHITE));
LINES.put("B602", new int[] { Color.parseColor("#dd6ba6"), Color.WHITE }); LINES.put("B602", new Style(Style.parseColor("#dd6ba6"), Style.WHITE));
LINES.put("B603", new int[] { Color.parseColor("#e6007d"), Color.WHITE }); LINES.put("B603", new Style(Style.parseColor("#e6007d"), Style.WHITE));
LINES.put("B604", new int[] { Color.parseColor("#009f5d"), Color.WHITE }); LINES.put("B604", new Style(Style.parseColor("#009f5d"), Style.WHITE));
LINES.put("B605", new int[] { Color.parseColor("#007b3b"), Color.WHITE }); LINES.put("B605", new Style(Style.parseColor("#007b3b"), Style.WHITE));
LINES.put("B606", new int[] { Color.parseColor("#9cbf11"), Color.WHITE }); LINES.put("B606", new Style(Style.parseColor("#9cbf11"), Style.WHITE));
LINES.put("B607", new int[] { Color.parseColor("#60ad2a"), Color.WHITE }); LINES.put("B607", new Style(Style.parseColor("#60ad2a"), Style.WHITE));
LINES.put("B608", new int[] { Color.parseColor("#f8a600"), Color.WHITE }); LINES.put("B608", new Style(Style.parseColor("#f8a600"), Style.WHITE));
LINES.put("B609", new int[] { Color.parseColor("#ef7100"), Color.WHITE }); LINES.put("B609", new Style(Style.parseColor("#ef7100"), Style.WHITE));
LINES.put("B610", new int[] { Color.parseColor("#3ec1f1"), Color.WHITE }); LINES.put("B610", new Style(Style.parseColor("#3ec1f1"), Style.WHITE));
LINES.put("B611", new int[] { Color.parseColor("#0099db"), Color.WHITE }); LINES.put("B611", new Style(Style.parseColor("#0099db"), Style.WHITE));
LINES.put("B612", new int[] { Color.parseColor("#ce9d53"), Color.WHITE }); LINES.put("B612", new Style(Style.parseColor("#ce9d53"), Style.WHITE));
LINES.put("B613", new int[] { Color.parseColor("#7b3600"), Color.WHITE }); LINES.put("B613", new Style(Style.parseColor("#7b3600"), Style.WHITE));
LINES.put("B614", new int[] { Color.parseColor("#806839"), Color.WHITE }); LINES.put("B614", new Style(Style.parseColor("#806839"), Style.WHITE));
LINES.put("B615", new int[] { Color.parseColor("#532700"), Color.WHITE }); LINES.put("B615", new Style(Style.parseColor("#532700"), Style.WHITE));
LINES.put("B630", new int[] { Color.parseColor("#c41950"), Color.WHITE }); LINES.put("B630", new Style(Style.parseColor("#c41950"), Style.WHITE));
LINES.put("B631", new int[] { Color.parseColor("#9b1c44"), Color.WHITE }); LINES.put("B631", new Style(Style.parseColor("#9b1c44"), Style.WHITE));
LINES.put("B633", new int[] { Color.parseColor("#88cdc7"), Color.WHITE }); LINES.put("B633", new Style(Style.parseColor("#88cdc7"), Style.WHITE));
LINES.put("B635", new int[] { Color.parseColor("#cec800"), Color.WHITE }); LINES.put("B635", new Style(Style.parseColor("#cec800"), Style.WHITE));
LINES.put("B636", new int[] { Color.parseColor("#af0223"), Color.WHITE }); LINES.put("B636", new Style(Style.parseColor("#af0223"), Style.WHITE));
LINES.put("B637", new int[] { Color.parseColor("#e3572a"), Color.WHITE }); LINES.put("B637", new Style(Style.parseColor("#e3572a"), Style.WHITE));
LINES.put("B638", new int[] { Color.parseColor("#af5836"), Color.WHITE }); LINES.put("B638", new Style(Style.parseColor("#af5836"), Style.WHITE));
LINES.put("B640", new int[] { Color.parseColor("#004f81"), Color.WHITE }); LINES.put("B640", new Style(Style.parseColor("#004f81"), Style.WHITE));
LINES.put("BT650", new int[] { Color.parseColor("#54baa2"), Color.WHITE }); LINES.put("BT650", new Style(Style.parseColor("#54baa2"), Style.WHITE));
LINES.put("BT651", new int[] { Color.parseColor("#005738"), Color.WHITE }); LINES.put("BT651", new Style(Style.parseColor("#005738"), Style.WHITE));
LINES.put("BT680", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("BT680", new Style(Style.parseColor("#4e6578"), Style.WHITE));
LINES.put("B800", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("B800", new Style(Style.parseColor("#4e6578"), Style.WHITE));
LINES.put("B812", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("B812", new Style(Style.parseColor("#4e6578"), Style.WHITE));
LINES.put("B843", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("B843", new Style(Style.parseColor("#4e6578"), Style.WHITE));
LINES.put("B845", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("B845", new Style(Style.parseColor("#4e6578"), Style.WHITE));
LINES.put("B852", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("B852", new Style(Style.parseColor("#4e6578"), Style.WHITE));
LINES.put("B855", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("B855", new Style(Style.parseColor("#4e6578"), Style.WHITE));
LINES.put("B856", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("B856", new Style(Style.parseColor("#4e6578"), Style.WHITE));
LINES.put("B857", new int[] { Color.parseColor("#4e6578"), Color.WHITE }); LINES.put("B857", new Style(Style.parseColor("#4e6578"), Style.WHITE));
} }
@Override @Override
public int[] lineColors(final String line) public Style lineStyle(final String line)
{ {
final int[] lineColors = LINES.get(line); final Style style = LINES.get(line);
if (lineColors != null) if (style != null)
return lineColors; return style;
else else
return super.lineColors(line); return super.lineStyle(line);
} }
} }

View file

@ -35,21 +35,21 @@ public final class Line implements Serializable, Comparable<Line>
final public String id; final public String id;
final private transient char product; // TODO make true field final private transient char product; // TODO make true field
final public String label; final public String label;
final public int[] colors; final public Style style;
final private Set<Attr> attrs; final private Set<Attr> attrs;
private static final String PRODUCT_ORDER = "IRSUTBPFC?"; 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<Attr> attrs) public Line(final String id, final String label, final Style style, final Set<Attr> attrs)
{ {
this.id = id; this.id = id;
this.label = label; this.label = label;
this.colors = colors; this.style = style;
this.attrs = attrs; this.attrs = attrs;
product = label != null ? label.charAt(0) : '?'; product = label != null ? label.charAt(0) : '?';

View file

@ -15,13 +15,38 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package de.schildbach.pte.util; package de.schildbach.pte.dto;
import java.io.Serializable;
/** /**
* @author Andreas Schildbach * @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 BLACK = 0xFF000000;
public static final int DKGRAY = 0xFF444444; public static final int DKGRAY = 0xFF444444;
public static final int GRAY = 0xFF888888; public static final int GRAY = 0xFF888888;
@ -35,12 +60,7 @@ public class Color
public static final int MAGENTA = 0xFFFF00FF; public static final int MAGENTA = 0xFFFF00FF;
public static final int TRANSPARENT = 0; public static final int TRANSPARENT = 0;
public static int rgb(int red, int green, int blue) public static int parseColor(final String colorString)
{
return (0xFF << 24) | (red << 16) | (green << 8) | blue;
}
public static int parseColor(String colorString)
{ {
if (colorString.charAt(0) == '#') if (colorString.charAt(0) == '#')
{ {
@ -59,4 +79,9 @@ public class Color
} }
throw new IllegalArgumentException("Unknown 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;
}
} }