Changeset 34871 in osm for applications/editors/josm/plugins/undelete/src
- Timestamp:
- 2019-01-31T09:01:24+01:00 (6 years ago)
- Location:
- applications/editors/josm/plugins/undelete/src/org/openstreetmap/josm/plugins/undelete
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/undelete/src/org/openstreetmap/josm/plugins/undelete/Undelete.java
r33835 r34871 7 7 import org.openstreetmap.josm.plugins.PluginInformation; 8 8 9 /** 10 * Create the undelete plugin. 11 */ 9 12 public class Undelete extends Plugin { 10 13 -
applications/editors/josm/plugins/undelete/src/org/openstreetmap/josm/plugins/undelete/UndeleteAction.java
r34568 r34871 8 8 import java.util.ArrayList; 9 9 import java.util.Collections; 10 import java.util.LinkedHashSet; 10 11 import java.util.List; 12 import java.util.Set; 11 13 12 14 import javax.swing.JOptionPane; 13 15 14 16 import org.openstreetmap.josm.actions.AutoScaleAction; 17 import org.openstreetmap.josm.actions.AutoScaleAction.AutoScaleMode; 15 18 import org.openstreetmap.josm.actions.JosmAction; 16 19 import org.openstreetmap.josm.data.osm.DataSet; … … 40 43 import org.openstreetmap.josm.tools.Shortcut; 41 44 45 /** 46 * Undelete one or more objects. 47 */ 42 48 public class UndeleteAction extends JosmAction { 43 49 … … 49 55 private final List<PrimitiveId> ids; 50 56 51 private Worker(OsmPrimitive parent, OsmDataLayer layer, List<PrimitiveId> ids) { 57 private Set<OsmPrimitive> restored; 58 59 private Worker(OsmPrimitive parent, OsmDataLayer layer, List<PrimitiveId> ids, Set<OsmPrimitive> restored) { 52 60 this.parent = parent; 53 61 this.layer = layer; 54 62 this.ids = ids; 63 this.restored = restored != null ? restored : new LinkedHashSet<>(); 55 64 } 56 65 … … 83 92 84 93 primitive = layer.data.getPrimitiveById(id, type); 94 restored.add(primitive); 85 95 } else { 86 96 // We search n-1 version with redaction robustness … … 88 98 long n = hPrimitive1.getVersion(); 89 99 while (hPrimitive2 == null && idx < n) { 90 hPrimitive2 = 100 hPrimitive2 = h.getByVersion(n - idx++); 91 101 } 92 102 if (type.equals(OsmPrimitiveType.NODE)) { … … 109 119 110 120 HistoryWay hWay = (HistoryWay) hPrimitive2; 111 // System.out.println(tr("Primitive {0} version {1}: {2} nodes",112 // hPrimitive2.getId(), hPrimitive2.getVersion(),113 // hWay.getNumNodes()));114 121 List<PrimitiveId> nodeIds = new ArrayList<>(); 115 122 if (hWay != null) { … … 118 125 } 119 126 } 120 undelete(false, nodeIds, way); 127 undelete(false, nodeIds, way, restored); 121 128 122 129 primitive = way; … … 147 154 } 148 155 layer.data.addPrimitive(p); 156 restored.add(p); 149 157 } 150 158 members.add(new RelationMember(m.getRole(), p)); … … 164 172 165 173 layer.data.addPrimitive(primitive); 174 restored.add(primitive); 166 175 } else { 167 176 final String msg = OsmPrimitiveType.NODE.equals(type) … … 186 195 if (parent instanceof Way && !nodes.isEmpty()) { 187 196 ((Way) parent).setNodes(nodes); 188 MainApplication.getMap().repaint();189 197 } 190 GuiHelper.runInEDT(() -> AutoScaleAction.zoomTo(layer.data.allNonDeletedPrimitives())); 198 if (!restored.isEmpty()) { 199 layer.data.setSelected(restored); 200 GuiHelper.runInEDT(() -> AutoScaleAction.autoScale(AutoScaleMode.SELECTION)); 201 } 191 202 } 192 203 } … … 208 219 209 220 public void undelete(boolean newLayer, final List<PrimitiveId> ids, final OsmPrimitive parent) { 221 undelete(newLayer, ids, parent, new LinkedHashSet<>()); 222 } 223 224 private void undelete(boolean newLayer, final List<PrimitiveId> ids, final OsmPrimitive parent, Set<OsmPrimitive> restored) { 210 225 211 226 // TODO: undelete relation members if necessary … … 226 241 227 242 MainApplication.worker.execute(task); 228 MainApplication.worker.submit(new Worker(parent, layer, ids)); 243 MainApplication.worker.submit(new Worker(parent, layer, ids, restored)); 229 244 } 230 245 } -
applications/editors/josm/plugins/undelete/src/org/openstreetmap/josm/plugins/undelete/UndeleteDialog.java
r34568 r34871 20 20 import org.openstreetmap.josm.spi.preferences.Config; 21 21 22 /** 23 * 24 * Popup for undelete action. Allows to enter a list of objects. 25 */ 22 26 public class UndeleteDialog extends ExtendedDialog { 23 27 … … 26 30 27 31 public UndeleteDialog(Component parent) { 28 super(parent, tr("Undelete Object"), new String[] {tr("Undelete object"), tr("Cancel")});32 super(parent, tr("Undelete Object"), tr("Undelete object"), tr("Cancel")); 29 33 30 34 JPanel all = new JPanel(new GridBagLayout()); … … 52 56 all.add(layer, gc); 53 57 setContent(all, false); 54 setButtonIcons( new String[] {"undelete.png", "cancel.png"});55 setToolTipTexts( new String[] {tr("Start undeleting"), tr("Close dialog and cancel")});58 setButtonIcons("undelete.png", "cancel.png"); 59 setToolTipTexts(tr("Start undeleting"), tr("Close dialog and cancel")); 56 60 setDefaultButton(1); 57 61 }
Note:
See TracChangeset
for help on using the changeset viewer.