// License: GPL. For details, see LICENSE file. package reverter; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.util.Collection; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.actions.JosmAction; import org.openstreetmap.josm.tools.Shortcut; import reverter.ChangesetReverter.RevertType; @SuppressWarnings("serial") public class RevertChangesetAction extends JosmAction { public RevertChangesetAction() { super(tr("Revert changeset"), "revert-changeset", tr("Revert changeset"), Shortcut.registerShortcut("tool:revert", tr("Tool: {0}", tr("Revert changeset")), KeyEvent.VK_T, Shortcut.CTRL_SHIFT), true); } @Override public void actionPerformed(ActionEvent arg0) { final ChangesetIdQuery dlg = new ChangesetIdQuery(); if (dlg.showDialog().getValue() != 1) return; final Collection<Integer> changesetIds = dlg.getIdsInReverseOrder(); final RevertType revertType = dlg.getRevertType(); if (revertType == null) return; boolean newLayer = dlg.isNewLayerRequired(); final boolean autoConfirmDownload = newLayer || changesetIds.size() > 1; for (Integer changesetId : changesetIds) { Main.worker.submit(new RevertChangesetTask(changesetId, revertType, autoConfirmDownload, newLayer)); newLayer = false; // reuse layer for subsequent reverts } } }