Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

minor Dispatcher-related improvements from Jay Janzen #1652

Merged
merged 2 commits into from
Jul 12, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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