// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.undelete;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.KeyEvent;
import java.util.List;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.data.osm.PrimitiveId;
import org.openstreetmap.josm.gui.ExtendedDialog;
import org.openstreetmap.josm.gui.widgets.OsmIdTextField;
public class UndeleteDialog extends ExtendedDialog {
private final JCheckBox layer = new JCheckBox(tr("Separate Layer"));
private final OsmIdTextField tfId = new OsmIdTextField();
public UndeleteDialog(Component parent) {
super(parent, tr("Undelete Object"), new String[] {tr("Undelete object"), tr("Cancel")});
JPanel all = new JPanel(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
gc.fill = GridBagConstraints.HORIZONTAL;
gc.anchor = GridBagConstraints.FIRST_LINE_START;
gc.gridy = 0;
gc.weightx = 0;
all.add(new JLabel(tr("Object ID:")), gc);
tfId.setText(Main.pref.get("undelete.osmid"));
tfId.setToolTipText(tr("Enter the type and ID of the objects that should be undeleted, e.g., ''n1 w2''"));
// forward the enter key stroke to the undelete button
tfId.getKeymap().removeKeyStrokeBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false));
gc.weightx = 1;
all.add(tfId, gc);
gc.gridy++;
gc.fill = GridBagConstraints.BOTH;
gc.weighty = 1.0;
gc.weightx = 0;
gc.gridy++;
layer.setToolTipText(tr("Select if the data should be added into a new layer"));
layer.setSelected(Main.pref.getBoolean("undelete.newlayer"));
all.add(layer, gc);
setContent(all, false);
setButtonIcons(new String[] {"undelete.png", "cancel.png"});
setToolTipTexts(new String[] {tr("Start undeleting"), tr("Close dialog and cancel")});
setDefaultButton(1);
}
public final boolean isNewLayerSelected() {
return layer.isSelected();
}
public final String getOsmIdsString() {
return tfId.getText();
}
public final List<PrimitiveId> getOsmIds() {
return tfId.getIds();
}
}