Skip to content

Commit

Permalink
minor Dispatcher-related improvements from Jay Janzen (#1652)
Browse files Browse the repository at this point in the history
* minor Dispatcher-related improvements from Jay Janzen
* a couple more json layoutBlock elements
  • Loading branch information
mstevetodd committed Jul 12, 2016
1 parent 93b1ceb commit 2b59c51
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 41 deletions.
1 change: 1 addition & 0 deletions java/src/jmri/Section.java
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,7 @@ void handleBlockChange(java.beans.PropertyChangeEvent e) {
for (int i = 0; i < mBlockEntries.size(); i++) {
if (mBlockEntries.get(i).getState() == OCCUPIED) {
o = OCCUPIED;
break;
}
}
if (mOccupancy != o) {
Expand Down
4 changes: 2 additions & 2 deletions java/src/jmri/jmrit/dispatcher/AutoAllocate.java
Original file line number Diff line number Diff line change
Expand Up @@ -727,15 +727,15 @@ private int willTraverse(Section s, ActiveTrain at, int seq) {
Transit t = at.getTransit();
if (!at.isTransitReversed()) {
for (int i = seq; i <= t.getMaxSequence(); i++) {
for (int j = 0; j <= t.getSectionListBySeq(i).size(); j++) {
for (int j = 0; j < t.getSectionListBySeq(i).size(); j++) {
if (t.getSectionListBySeq(i).get(j) == s) {
return i;
}
}
}
} else {
for (int i = seq; i >= 0; i--) {
for (int j = 0; j <= t.getSectionListBySeq(i).size(); j++) {
for (int j = 0; j < t.getSectionListBySeq(i).size(); j++) {
if (t.getSectionListBySeq(i).get(j) == s) {
return i;
}
Expand Down
9 changes: 3 additions & 6 deletions java/src/jmri/jmrit/display/layoutEditor/LayoutBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
import java.util.ResourceBundle;
import java.util.Set;
import java.util.Vector;

import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JCheckBox;
Expand All @@ -34,10 +35,6 @@
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;

import javax.annotation.CheckForNull;
import javax.annotation.CheckReturnValue;
import javax.annotation.Nonnull;

/**
* A LayoutBlock is a group of track segments and turnouts on a LayoutEditor
* panel corresponding to a 'block'. LayoutBlock is a LayoutEditor specific
Expand Down Expand Up @@ -2937,7 +2934,7 @@ public void propertyChange(java.beans.PropertyChangeEvent e) {
@CheckForNull Routes getValidRoute(Block nxtBlock, Block dstBlock) {
ArrayList<Routes> rtr = getRouteByNeighbour(nxtBlock);
if (rtr.size()==0) {
log.info("From " + this.getDisplayName() + "No routes returned in get valid routes");
log.info("From {}, no routes returned for getRouteByNeighbor({})", this.getDisplayName(), nxtBlock.getDisplayName());
return null;
}
for (int i = 0; i < rtr.size(); i++) {
Expand Down
16 changes: 12 additions & 4 deletions java/src/jmri/server/json/JSON.java
Original file line number Diff line number Diff line change
Expand Up @@ -307,13 +307,21 @@ public final class JSON {
*/
public static final String TRACK_COLOR = "trackColor"; // NOI18N
/**
* {@value #BLOCK_OCCUPIED_COLOR}
* {@value #OCCUPIED_COLOR}
*/
public static final String BLOCK_OCCUPIED_COLOR = "blockOccupiedColor"; // NOI18N
public static final String OCCUPIED_COLOR = "occupiedColor"; // NOI18N
/**
* {@value #BLOCK_EXTRA_COLOR}
* {@value #EXTRA_COLOR}
*/
public static final String BLOCK_EXTRA_COLOR = "blockExtraColor"; // NOI18N
public static final String EXTRA_COLOR = "extraColor"; // NOI18N
/**
* {@value #OCCUPANCY_SENSOR}
*/
public static final String OCCUPANCY_SENSOR = "occupancySensor"; // NOI18N
/**
* {@value #OCCUPIED_SENSE}
*/
public static final String OCCUPIED_SENSE = "occupiedSense"; // NOI18N

/* JSON operations tokens */
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package jmri.server.json.layoutblock;

import static jmri.server.json.JSON.BLOCK_COLOR;
import static jmri.server.json.JSON.BLOCK_EXTRA_COLOR;
import static jmri.server.json.JSON.BLOCK_OCCUPIED_COLOR;
import static jmri.server.json.JSON.COMMENT;
import static jmri.server.json.JSON.DATA;
import static jmri.server.json.JSON.EXTRA_COLOR;
import static jmri.server.json.JSON.NAME;
import static jmri.server.json.JSON.OCCUPANCY_SENSOR;
import static jmri.server.json.JSON.OCCUPIED_COLOR;
import static jmri.server.json.JSON.OCCUPIED_SENSE;
import static jmri.server.json.JSON.STATE;
import static jmri.server.json.JSON.TRACK_COLOR;
import static jmri.server.json.JSON.TYPE;
Expand Down Expand Up @@ -39,53 +41,44 @@ public JsonNode doGet(String type, String name, Locale locale) throws JsonExcept
ObjectNode root = mapper.createObjectNode();
root.put(TYPE, LAYOUTBLOCK);
ObjectNode data = root.putObject(DATA);
LayoutBlock layoutblock = InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock(name);
if (layoutblock == null) {
LayoutBlock layoutBlock = InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock(name);
if (layoutBlock == null) {
throw new JsonException(404, Bundle.getMessage(locale, "ErrorObject", LAYOUTBLOCK, name));
}
data.put(NAME, layoutblock.getSystemName());
data.put(USERNAME, layoutblock.getUserName());
data.put(COMMENT, layoutblock.getComment());
data.put(STATE, layoutblock.getState());
data.put(USE_EXTRA_COLOR, layoutblock.getUseExtraColor());
data.put(BLOCK_COLOR, jmri.util.ColorUtil.colorToColorName(layoutblock.getBlockColor()));
data.put(TRACK_COLOR, jmri.util.ColorUtil.colorToColorName(layoutblock.getBlockTrackColor()));
data.put(BLOCK_OCCUPIED_COLOR, jmri.util.ColorUtil.colorToColorName(layoutblock.getBlockOccupiedColor()));
data.put(BLOCK_EXTRA_COLOR, jmri.util.ColorUtil.colorToColorName(layoutblock.getBlockExtraColor()));
data.put(NAME, layoutBlock.getSystemName());
data.put(USERNAME, layoutBlock.getUserName());
data.put(COMMENT, layoutBlock.getComment());
data.put(STATE, layoutBlock.getState());
data.put(USE_EXTRA_COLOR, layoutBlock.getUseExtraColor());
data.put(BLOCK_COLOR, jmri.util.ColorUtil.colorToColorName(layoutBlock.getBlockColor()));
data.put(TRACK_COLOR, jmri.util.ColorUtil.colorToColorName(layoutBlock.getBlockTrackColor()));
data.put(OCCUPIED_COLOR, jmri.util.ColorUtil.colorToColorName(layoutBlock.getBlockOccupiedColor()));
data.put(EXTRA_COLOR, jmri.util.ColorUtil.colorToColorName(layoutBlock.getBlockExtraColor()));
data.put(OCCUPANCY_SENSOR, layoutBlock.getOccupancySensorName());
data.put(OCCUPIED_SENSE, layoutBlock.getOccupiedSense());

return root;
}

@Override
public JsonNode doPost(String type, String name, JsonNode data, Locale locale) throws JsonException {
LayoutBlock layoutblock = InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock(name);
if (layoutblock == null) {
LayoutBlock layoutBlock = InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock(name);
if (layoutBlock == null) {
throw new JsonException(404, Bundle.getMessage(locale, "ErrorObject", LAYOUTBLOCK, name));
}
if (data.path(USERNAME).isTextual()) {
layoutblock.setUserName(data.path(USERNAME).asText());
layoutBlock.setUserName(data.path(USERNAME).asText());
}
if (data.path(COMMENT).isTextual()) {
layoutblock.setComment(data.path(COMMENT).asText());
layoutBlock.setComment(data.path(COMMENT).asText());
}
//layoutBlock.state is a bogus construct, so don't expect valid results from this
if (!data.path(STATE).isMissingNode()) {
layoutblock.setState(data.path(STATE).asInt());
layoutBlock.setState(data.path(STATE).asInt());
}
return this.doGet(type, name, locale);
}

// @Override
// public JsonNode doPut(String type, String name, JsonNode data, Locale locale) throws JsonException {
// try {
// InstanceManager.getDefault(LayoutBlockManager.class).provideLayoutBlock(name);
// InstanceManager.blockManagerInstance().provideBlock(name);
// } catch (Exception ex) {
// throw new JsonException(500, Bundle.getMessage(locale, "ErrorCreatingObject", LAYOUTBLOCK, name));
// }
// return this.doPost(type, name, data, locale);
// }

@Override
public JsonNode doGetList(String type, Locale locale) throws JsonException {
ArrayNode root = this.mapper.createArrayNode();
Expand Down

0 comments on commit 2b59c51

Please sign in to comment.