Browse Source

altered Action "DisableEnableBlock":

this action now is able to disable/enable any tile
lookup-tables
Stephan Richter 4 years ago
parent
commit
80f31e2628
  1. 2
      pom.xml
  2. 2
      resources/translations/Application.de.translation
  3. 22
      src/main/java/de/srsoftware/web4rail/Plan.java
  4. 2
      src/main/java/de/srsoftware/web4rail/actions/Action.java
  5. 2
      src/main/java/de/srsoftware/web4rail/actions/ActionList.java
  6. 32
      src/main/java/de/srsoftware/web4rail/actions/DisableEnableTile.java

2
pom.xml

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.srsoftware</groupId>
<artifactId>web4rail</artifactId>
<version>1.5.6</version>
<version>1.5.7</version>
<name>Web4Rail</name>
<packaging>jar</packaging>
<description>Java Model Railway Control</description>

2
resources/translations/Application.de.translation

@ -142,7 +142,7 @@ disable : deaktivieren @@ -142,7 +142,7 @@ disable : deaktivieren
disabled : deaktiviert
disable {} : {} deaktivieren
disabled routes : deaktivierte Fahrstraßen
DisableEnableBlock : Block (de)aktivieren
DisableEnableTile : Kachel (de)aktivieren
dismount : ausbauen
Display "{}" on {}. : „{}“ auf {} anzeigen.
Do you know, what you are doing? : Weißt du, was du da tust?

22
src/main/java/de/srsoftware/web4rail/Plan.java

@ -910,18 +910,20 @@ public class Plan extends BaseClass{ @@ -910,18 +910,20 @@ public class Plan extends BaseClass{
public void sensor(int addr, boolean active) {
Contact contact = Contact.get(addr);
if (active && isSet(learningContact)) {
if (isSet(contact)) {
contact.addr(0);
LOG.debug("unsibscribed {} from {}",contact,addr);
}
if (active && isSet(learningContact)) learnContact(addr,contact);
if (isSet(contact)) contact.activate(active);
}
stream(learningContact.addr(addr).properties().toString());
LOG.debug("learned: {} = {}",addr,learningContact);
learningContact = null;
return;
private void learnContact(int addr, Contact contact) {
if (isSet(contact)) {
contact.addr(0);
LOG.debug("unsibscribed {} from {}",contact,addr);
}
if (isSet(contact)) contact.activate(active);
stream(learningContact.addr(addr).properties().toString());
LOG.debug("learned: {} = {}",addr,learningContact);
learningContact = null;
return;
}
public void setAppConfig(Configuration config) {

2
src/main/java/de/srsoftware/web4rail/actions/Action.java

@ -49,7 +49,7 @@ public abstract class Action extends BaseClass { @@ -49,7 +49,7 @@ public abstract class Action extends BaseClass {
CoupleTrain.class,
DelayedAction.class,
DetermineTrainInBlock.class,
DisableEnableBlock.class,
DisableEnableTile.class,
EngageDecoupler.class,
FinishRoute.class,
Loop.class,

2
src/main/java/de/srsoftware/web4rail/actions/ActionList.java

@ -162,6 +162,8 @@ public class ActionList extends Action implements Iterable<Action>{ @@ -162,6 +162,8 @@ public class ActionList extends Action implements Iterable<Action>{
switch (type) {
case "AddDestination":
return AddRemoveDestination.class.getSimpleName();
case "DisableEnableBlock":
return DisableEnableTile.class.getSimpleName();
default:
return type;
}

32
src/main/java/de/srsoftware/web4rail/actions/DisableEnableBlock.java → src/main/java/de/srsoftware/web4rail/actions/DisableEnableTile.java

@ -16,34 +16,34 @@ import de.srsoftware.web4rail.tiles.Block; @@ -16,34 +16,34 @@ import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Shadow;
import de.srsoftware.web4rail.tiles.Tile;
public class DisableEnableBlock extends Action {
public class DisableEnableTile extends Action {
public DisableEnableBlock(BaseClass parent) {
public DisableEnableTile(BaseClass parent) {
super(parent);
}
private Block block = null;
private Tile tile = null;
private boolean disable = true;
@Override
public boolean fire(Context context) {
if (isNull(block)) block = context.block();
if (isNull(block)) return false;
block.setEnabled(!disable);
if (isNull(tile)) tile = context.block();
if (isNull(tile)) return false;
tile.setEnabled(!disable);
return true;
}
@Override
public JSONObject json() {
JSONObject json = super.json();
if (isSet(block)) json.put(BLOCK, block.id());
if (isSet(tile)) json.put(BLOCK, tile.id());
json.put(STATE, !disable);
return json;
}
@Override
protected String highlightId() {
return isSet(block) ? block.id().toString() : null;
return isSet(tile) ? tile.id().toString() : null;
}
@ -53,7 +53,7 @@ public class DisableEnableBlock extends Action { @@ -53,7 +53,7 @@ public class DisableEnableBlock extends Action {
if (json.has(BLOCK)) new LoadCallback() {
@Override
public void afterLoad() {
block = Block.get(Id.from(json,BLOCK));
tile = Block.get(Id.from(json,BLOCK));
}
};
return super.load(json);
@ -62,7 +62,7 @@ public class DisableEnableBlock extends Action { @@ -62,7 +62,7 @@ public class DisableEnableBlock extends Action {
@Override
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm,String...errors) {
formInputs.add(t("Block")+": "+(isNull(block) ? t("block from context") : block),button(t("Select from plan"),Map.of(ACTION,ACTION_UPDATE,ASSIGN,Block.class.getSimpleName())));
formInputs.add(t("Block")+": "+(isNull(tile) ? t("tile from context") : tile),button(t("Select from plan"),Map.of(ACTION,ACTION_UPDATE,ASSIGN,Tile.class.getSimpleName())));
Tag radios = new Tag("p");
new Radio(STATE, "enable", t("enable"), !disable).addTo(radios);
new Radio(STATE, "disable", t("disable"), disable).addTo(radios);
@ -72,22 +72,22 @@ public class DisableEnableBlock extends Action { @@ -72,22 +72,22 @@ public class DisableEnableBlock extends Action {
@Override
protected void removeChild(BaseClass child) {
if (child == block) block = null;
if (child == tile) tile = null;
super.removeChild(child);
}
public String toString() {
String blk = isSet(block) ? block.toString() : t("block from context");
String blk = isSet(tile) ? tile.toString() : t("block from context");
return t(disable ? "disable {}" : "enable {}",blk);
};
@Override
protected Object update(Params params) {
LOG.debug("update: {}",params);
Id blockId = Id.from(params,Block.class.getSimpleName());
Tile tile = isSet(blockId) ? BaseClass.get(blockId) : null;
if (tile instanceof Shadow) tile = ((Shadow)tile).overlay();
if (tile instanceof Block) block = (Block) tile;
Id tileId = Id.from(params,Tile.class.getSimpleName());
Tile newTile = BaseClass.get(tileId);;
if (newTile instanceof Shadow) newTile = ((Shadow)newTile).overlay();
if (isSet(newTile)) tile = newTile;
disable = !"enable".equals(params.get(STATE));
return properties();
}
Loading…
Cancel
Save