Changeset 36217 in osm for applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/AddRemoveMemberAction.java
- Timestamp:
- 2024-03-03T10:25:25+01:00 (22 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/AddRemoveMemberAction.java
r36102 r36217 10 10 11 11 import org.openstreetmap.josm.actions.JosmAction; 12 import org.openstreetmap.josm.command.ChangeCommand; 12 import org.openstreetmap.josm.command.ChangeMembersCommand; 13 13 import org.openstreetmap.josm.command.Command; 14 14 import org.openstreetmap.josm.data.UndoRedoHandler; … … 82 82 83 83 if (!r.getMemberPrimitives().equals(rel.get().getMemberPrimitives())) { 84 UndoRedoHandler.getInstance().add(new ChangeCommand(rel.get(), r)); 84 UndoRedoHandler.getInstance().add(new ChangeMembersCommand(rel.get(), r.getMembers())); 85 85 } 86 r.setMembers(null); // See #19885 86 87 } 87 88 … … 96 97 if (firstNode != null && !firstNode.equals(lastNode)) { 97 98 for (int i = 0; i < r.getMembersCount(); i++) { 98 if (r.getMember(i).getType() .equals(OsmPrimitiveType.WAY)) {99 if (r.getMember(i).getType() == OsmPrimitiveType.WAY) { 99 100 Way rw = (Way) r.getMember(i).getMember(); 100 101 Node firstNodeR = rw.firstNode(); … … 133 134 134 135 protected void updateIcon() { 135 // todo: change icon based on selection136 136 final int state; // 0=unknown, 1=add, 2=remove, 3=both 137 137 DataSet ds = getLayerManager().getEditDataSet(); 138 if (ds == null || ds.getSelected() == null 139 || ds.getSelected().isEmpty() || rel == null || rel.get() == null) { 138 if (ds == null || ds.getSelected().isEmpty() || rel == null || rel.get() == null) { 140 139 state = 0; 141 140 } else { … … 156 155 } 157 156 } 158 GuiHelper.runInEDT(new Runnable() { 159 @Override 160 public void run() { 161 if (state == 0) { 162 putValue(LARGE_ICON_KEY, ImageProvider.get("relcontext", "addremove")); 163 } else { 164 String iconName = state == 1 ? "add" : state == 2 ? "remove" : "addremove"; 165 putValue(NAME, null); 166 putValue(LARGE_ICON_KEY, ImageProvider.get("relcontext", iconName)); 167 } 157 GuiHelper.runInEDT(() -> { 158 if (state == 0) { 159 putValue(LARGE_ICON_KEY, ImageProvider.get("relcontext", "addremove")); 160 } else { 161 String iconName = state == 1 ? "add" : state == 2 ? "remove" : "addremove"; 162 putValue(NAME, null); 163 putValue(LARGE_ICON_KEY, ImageProvider.get("relcontext", iconName)); 168 164 } 169 165 });
Note:
See TracChangeset
for help on using the changeset viewer.
