Ticket #11656: 11656.patch

File 11656.patch, 2.2 KB (added by simon04, 10 years ago)
  • src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java

    diff --git a/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java b/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
    index 7ef09d6..f5fac0f 100644
    a b  
    2525import javax.swing.Action;
    2626import javax.swing.ImageIcon;
    2727import javax.swing.JLabel;
     28import javax.swing.JOptionPane;
    2829import javax.swing.JPanel;
    2930import javax.swing.JToggleButton;
    3031import javax.swing.SwingUtilities;
     
    4243import org.openstreetmap.josm.data.osm.Tag;
    4344import org.openstreetmap.josm.gui.ExtendedDialog;
    4445import org.openstreetmap.josm.gui.MapView;
     46import org.openstreetmap.josm.gui.Notification;
    4547import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor;
    4648import org.openstreetmap.josm.gui.layer.Layer;
    4749import org.openstreetmap.josm.gui.preferences.ToolbarPreferences;
    public int showDialog(Collection<OsmPrimitive> sel, boolean showNewRelation) {  
    376378            return DIALOG_ANSWER_CANCEL;
    377379
    378380        int answer = 1;
    379         if (p.getComponentCount() != 0 && (sel.isEmpty() || p.hasElements)) {
     381        boolean canCreateRelation = types == null || types.contains(TaggingPresetType.RELATION);
     382        if (originalSelectionEmpty && !canCreateRelation) {
     383            new Notification(
     384                    tr("The preset <i>{0}</i> cannot be applied since nothing has been selected!", getLocaleName()))
     385                    .setIcon(JOptionPane.WARNING_MESSAGE)
     386                    .show();
     387            return DIALOG_ANSWER_CANCEL;
     388        } else if (sel.isEmpty() && !canCreateRelation) {
     389            new Notification(
     390                    tr("The preset <i>{0}</i> cannot be applied since the selection is unsuitable!", getLocaleName()))
     391                    .setIcon(JOptionPane.WARNING_MESSAGE)
     392                    .show();
     393            return DIALOG_ANSWER_CANCEL;
     394        } else if (p.getComponentCount() != 0 && (sel.isEmpty() || p.hasElements)) {
    380395            String title = trn("Change {0} object", "Change {0} objects", sel.size(), sel.size());
    381396            if (sel.isEmpty()) {
    382397                if (originalSelectionEmpty) {