|
|
@ -34,17 +34,22 @@ public class Car extends BaseClass implements Comparable<Car>{ |
|
|
|
static HashMap<Id,Car> cars = new HashMap<Id, Car>(); |
|
|
|
static HashMap<Id,Car> cars = new HashMap<Id, Car>(); |
|
|
|
|
|
|
|
|
|
|
|
public static final String NAME = "name"; |
|
|
|
public static final String NAME = "name"; |
|
|
|
|
|
|
|
public static boolean FORWARD = true; |
|
|
|
|
|
|
|
public static boolean REVERSE = false; |
|
|
|
private static final String LENGTH = "length"; |
|
|
|
private static final String LENGTH = "length"; |
|
|
|
private static final String STOCK_ID = "stock-id"; |
|
|
|
private static final String STOCK_ID = "stock-id"; |
|
|
|
private static final String TAGS = "tags"; |
|
|
|
private static final String TAGS = "tags"; |
|
|
|
private static final String MAX_SPEED = "max_speed"; |
|
|
|
private static final String MAX_SPEED = "max_speed"; |
|
|
|
|
|
|
|
private static final String MAX_SPEED_REVERSE = "max_speed_reverse"; |
|
|
|
protected HashSet<String> tags = new HashSet<String>(); |
|
|
|
protected HashSet<String> tags = new HashSet<String>(); |
|
|
|
|
|
|
|
|
|
|
|
private String name; |
|
|
|
private String name; |
|
|
|
public int length; |
|
|
|
public int length; |
|
|
|
protected String stockId = ""; |
|
|
|
protected String stockId = ""; |
|
|
|
private Train train; |
|
|
|
private Train train; |
|
|
|
protected int maxSpeed = 0; |
|
|
|
protected int maxSpeedForward = 0; |
|
|
|
|
|
|
|
protected int maxSpeedReverse = 0; |
|
|
|
|
|
|
|
private boolean orientation = FORWARD; |
|
|
|
|
|
|
|
|
|
|
|
public Car(String name) { |
|
|
|
public Car(String name) { |
|
|
|
this(name,null); |
|
|
|
this(name,null); |
|
|
@ -78,7 +83,7 @@ public class Car extends BaseClass implements Comparable<Car>{ |
|
|
|
|
|
|
|
|
|
|
|
public Car clone() { |
|
|
|
public Car clone() { |
|
|
|
Car clone = new Car(name); |
|
|
|
Car clone = new Car(name); |
|
|
|
clone.maxSpeed = maxSpeed; |
|
|
|
clone.maxSpeedForward = maxSpeedForward; |
|
|
|
clone.length = length; |
|
|
|
clone.length = length; |
|
|
|
clone.tags = new HashSet<String>(tags); |
|
|
|
clone.tags = new HashSet<String>(tags); |
|
|
|
clone.notes = notes; |
|
|
|
clone.notes = notes; |
|
|
@ -99,7 +104,7 @@ public class Car extends BaseClass implements Comparable<Car>{ |
|
|
|
JSONObject json = super.json(); |
|
|
|
JSONObject json = super.json(); |
|
|
|
json.put(NAME, name); |
|
|
|
json.put(NAME, name); |
|
|
|
json.put(LENGTH, length); |
|
|
|
json.put(LENGTH, length); |
|
|
|
if (maxSpeed != 0) json.put(MAX_SPEED, maxSpeed); |
|
|
|
if (maxSpeedForward != 0) json.put(MAX_SPEED, maxSpeedForward); |
|
|
|
json.put(STOCK_ID, stockId); |
|
|
|
json.put(STOCK_ID, stockId); |
|
|
|
if (!tags.isEmpty()) json.put(TAGS, tags); |
|
|
|
if (!tags.isEmpty()) json.put(TAGS, tags); |
|
|
|
return json; |
|
|
|
return json; |
|
|
@ -137,7 +142,11 @@ public class Car extends BaseClass implements Comparable<Car>{ |
|
|
|
public Car load(JSONObject json) { |
|
|
|
public Car load(JSONObject json) { |
|
|
|
super.load(json); |
|
|
|
super.load(json); |
|
|
|
if (json.has(LENGTH)) length = json.getInt(LENGTH); |
|
|
|
if (json.has(LENGTH)) length = json.getInt(LENGTH); |
|
|
|
if (json.has(MAX_SPEED)) maxSpeed = json.getInt(MAX_SPEED); |
|
|
|
if (json.has(MAX_SPEED)) { |
|
|
|
|
|
|
|
maxSpeedForward = json.getInt(MAX_SPEED); |
|
|
|
|
|
|
|
maxSpeedReverse = maxSpeedForward; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (json.has(MAX_SPEED_REVERSE)) maxSpeedReverse = json.getInt(MAX_SPEED_REVERSE); |
|
|
|
if (json.has(STOCK_ID)) stockId = json.getString(STOCK_ID); |
|
|
|
if (json.has(STOCK_ID)) stockId = json.getString(STOCK_ID); |
|
|
|
if (json.has(TAGS)) json.getJSONArray(TAGS).forEach(elem -> { tags.add(elem.toString()); }); |
|
|
|
if (json.has(TAGS)) json.getJSONArray(TAGS).forEach(elem -> { tags.add(elem.toString()); }); |
|
|
|
return this; |
|
|
|
return this; |
|
|
@ -163,7 +172,7 @@ public class Car extends BaseClass implements Comparable<Car>{ |
|
|
|
.forEach(car -> table.addRow( |
|
|
|
.forEach(car -> table.addRow( |
|
|
|
car.stockId, |
|
|
|
car.stockId, |
|
|
|
car.link(), |
|
|
|
car.link(), |
|
|
|
car.maxSpeed == 0 ? "–":(car.maxSpeed+NBSP+speedUnit), |
|
|
|
car.maxSpeedForward == 0 ? "–":(car.maxSpeedForward+NBSP+speedUnit), |
|
|
|
car.length+NBSP+lengthUnit, |
|
|
|
car.length+NBSP+lengthUnit, |
|
|
|
isSet(car.train) ? car.train.link("span", car.train) : "", |
|
|
|
isSet(car.train) ? car.train.link("span", car.train) : "", |
|
|
|
String.join(", ", car.tags()), |
|
|
|
String.join(", ", car.tags()), |
|
|
@ -182,7 +191,7 @@ public class Car extends BaseClass implements Comparable<Car>{ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public int maxSpeed() { |
|
|
|
public int maxSpeed() { |
|
|
|
return maxSpeed; |
|
|
|
return maxSpeedForward; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
String name(){ |
|
|
|
String name(){ |
|
|
@ -194,8 +203,11 @@ public class Car extends BaseClass implements Comparable<Car>{ |
|
|
|
formInputs.add(t("Name"),new Input(NAME,name)); |
|
|
|
formInputs.add(t("Name"),new Input(NAME,name)); |
|
|
|
formInputs.add(t("Stock ID"),new Input(STOCK_ID,stockId)); |
|
|
|
formInputs.add(t("Stock ID"),new Input(STOCK_ID,stockId)); |
|
|
|
formInputs.add(t("Length"),new Input(LENGTH,length).attr("type", "number").addTo(new Tag("span")).content(NBSP+lengthUnit)); |
|
|
|
formInputs.add(t("Length"),new Input(LENGTH,length).attr("type", "number").addTo(new Tag("span")).content(NBSP+lengthUnit)); |
|
|
|
formInputs.add(t("Tag"), new Input(TAGS,String.join(", ", tags))); |
|
|
|
formInputs.add(t("Tags"), new Input(TAGS,String.join(", ", tags))); |
|
|
|
formInputs.add(t("Maximum Speed"),new Input(MAX_SPEED, maxSpeed).numeric().addTo(new Tag("span")).content(NBSP+speedUnit)); |
|
|
|
Tag div = new Tag("div"); |
|
|
|
|
|
|
|
new Input(MAX_SPEED, maxSpeedForward).numeric().addTo(new Tag("p")).content(NBSP+speedUnit+NBSP+t("forward")).addTo(div); |
|
|
|
|
|
|
|
new Input(MAX_SPEED_REVERSE, maxSpeedReverse).numeric().addTo(new Tag("p")).content(NBSP+speedUnit+NBSP+t("reverse")).addTo(div); |
|
|
|
|
|
|
|
formInputs.add(t("Maximum Speed"),div); |
|
|
|
|
|
|
|
|
|
|
|
Fieldset fieldset = new Fieldset(t("Train")); |
|
|
|
Fieldset fieldset = new Fieldset(t("Train")); |
|
|
|
if (train != null) train.link().addTo(fieldset); |
|
|
|
if (train != null) train.link().addTo(fieldset); |
|
|
@ -243,7 +255,8 @@ public class Car extends BaseClass implements Comparable<Car>{ |
|
|
|
super.update(params); |
|
|
|
super.update(params); |
|
|
|
if (params.containsKey(NAME)) name = params.get(NAME).trim(); |
|
|
|
if (params.containsKey(NAME)) name = params.get(NAME).trim(); |
|
|
|
if (params.containsKey(LENGTH)) length = Integer.parseInt(params.get(LENGTH)); |
|
|
|
if (params.containsKey(LENGTH)) length = Integer.parseInt(params.get(LENGTH)); |
|
|
|
if (params.containsKey(MAX_SPEED)) maxSpeed = Integer.parseInt(params.get(MAX_SPEED)); |
|
|
|
if (params.containsKey(MAX_SPEED)) maxSpeedForward = Integer.parseInt(params.get(MAX_SPEED)); |
|
|
|
|
|
|
|
if (params.containsKey(MAX_SPEED_REVERSE)) maxSpeedReverse = Integer.parseInt(params.get(MAX_SPEED_REVERSE)); |
|
|
|
if (params.containsKey(STOCK_ID)) stockId = params.get(STOCK_ID); |
|
|
|
if (params.containsKey(STOCK_ID)) stockId = params.get(STOCK_ID); |
|
|
|
if (params.containsKey(TAGS)) { |
|
|
|
if (params.containsKey(TAGS)) { |
|
|
|
String[] parts = params.get(TAGS).replace(",", " ").split(" "); |
|
|
|
String[] parts = params.get(TAGS).replace(",", " ").split(" "); |
|
|
|