// License: GPL. For details, see LICENSE file. package public_transport; import static org.openstreetmap.josm.tools.I18n.tr; import java.util.Collection; import org.openstreetmap.josm.command.Command; import org.openstreetmap.josm.data.osm.OsmPrimitive; public class WaypointsNameCommand extends Command { private int workingLine = 0; private WaypointTableModel waypointTM = null; private String oldName = null; private String name = null; private String oldShelter = null; private TransText shelter; public WaypointsNameCommand(WaypointTableModel waypointTM, int workingLine, String name, TransText shelter) { this.waypointTM = waypointTM; this.workingLine = workingLine; if (waypointTM.nodes.elementAt(workingLine) != null) { oldName = waypointTM.nodes.elementAt(workingLine).get("name"); oldShelter = waypointTM.nodes.elementAt(workingLine).get("shelter"); } this.name = name; this.shelter = shelter; } @Override public boolean executeCommand() { if (waypointTM.nodes.elementAt(workingLine) != null) { waypointTM.nodes.elementAt(workingLine).put("name", name); waypointTM.nodes.elementAt(workingLine).put("shelter", shelter.text); } waypointTM.inEvent = true; if (name == null) waypointTM.setValueAt("", workingLine, 1); else waypointTM.setValueAt(name, workingLine, 1); waypointTM.setValueAt(shelter, workingLine, 2); waypointTM.inEvent = false; return true; } @Override public void undoCommand() { if (waypointTM.nodes.elementAt(workingLine) != null) { waypointTM.nodes.elementAt(workingLine).put("name", oldName); waypointTM.nodes.elementAt(workingLine).put("shelter", oldShelter); } waypointTM.inEvent = true; if (oldName == null) waypointTM.setValueAt("", workingLine, 1); else waypointTM.setValueAt(oldName, workingLine, 1); waypointTM.setValueAt(new TransText(oldShelter), workingLine, 2); waypointTM.inEvent = false; } @Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) { } @Override public String getDescriptionText() { return tr("Public Transport: Edit waypoint name"); } }