Ignore:
Timestamp:
2014-01-04T09:54:56+01:00 (11 years ago)
Author:
akks
Message:

[josm_utilsplugin2]: Select Area - do not sect relations + All actions use notifications instead of MessageBoxes

Location:
applications/editors/josm/plugins/utilsplugin2
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/utilsplugin2/build.xml

    r30017 r30177  
    33
    44    <!-- enter the SVN commit message -->
    5     <property name="commit.message" value="[josm_utilsplugin2]: pasting tags is in core long ago. Please update you ancient JOSM :)"/>
     5    <property name="commit.message" value="[josm_utilsplugin2]: Use notifications instead of MessageBoxes"/>
    66    <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
    77    <property name="plugin.main.version" value="6317"/>
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/AddIntersectionsAction.java

    r28028 r30177  
    2323import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2424import org.openstreetmap.josm.data.osm.Way;
     25import org.openstreetmap.josm.gui.Notification;
    2526import org.openstreetmap.josm.tools.Geometry;
    2627import org.openstreetmap.josm.tools.Shortcut;
     
    3940        List<Way> ways = OsmPrimitive.getFilteredList(getCurrentDataSet().getSelected(), Way.class);
    4041        if (ways.isEmpty()) {
    41             JOptionPane.showMessageDialog(
    42                     Main.parent,
    43                     tr("Please select one or more ways with intersections of segments."),
    44                     tr("Information"),
    45                     JOptionPane.INFORMATION_MESSAGE
    46             );
     42            new Notification(
     43               tr("Please select one or more ways with intersections of segments."))
     44               .setIcon(JOptionPane.INFORMATION_MESSAGE)
     45               .show();
    4746            return;
    4847        }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/AlignWayNodesAction.java

    r28028 r30177  
    1010import javax.swing.JOptionPane;
    1111import org.openstreetmap.josm.actions.JosmAction;
     12import org.openstreetmap.josm.gui.Notification;
    1213import static org.openstreetmap.josm.tools.I18n.tr;
    1314
     
    3637        Way way = ways.iterator().next();
    3738        if( way.getNodesCount() < (way.isClosed() ? 4 : 3) ) {
    38             JOptionPane.showMessageDialog(Main.parent, tr("The way with selected nodes can not be straightened."), TITLE, JOptionPane.ERROR_MESSAGE);
     39            new Notification(tr("The way with selected nodes can not be straightened."))
     40                    .setIcon(JOptionPane.ERROR_MESSAGE).show();
    3941            return;
    4042        }
     
    6668
    6769        if( nodes.size() < 3 ) {
    68             JOptionPane.showMessageDialog(Main.parent, tr("Internal error: number of nodes is {0}.", nodes.size()),
    69                     TITLE, JOptionPane.ERROR_MESSAGE);
     70            new Notification(tr("Internal error: number of nodes is {0}.", nodes.size()))
     71                .setIcon(JOptionPane.ERROR_MESSAGE).show();
    7072            return;
    7173        }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/ExtractPointAction.java

    r30002 r30177  
    2020import org.openstreetmap.josm.command.SequenceCommand;
    2121import org.openstreetmap.josm.data.osm.*;
     22import org.openstreetmap.josm.gui.Notification;
    2223
    2324import org.openstreetmap.josm.tools.Shortcut;
     
    3738    }
    3839
     40    @Override
    3941    public void actionPerformed(ActionEvent e) {
    4042        Collection<OsmPrimitive> selection = getCurrentDataSet().getSelected();
    4143        List<Node> selectedNodes = OsmPrimitive.getFilteredList(selection, Node.class);
    4244        if (selectedNodes.size()!=1) {
    43              JOptionPane.showMessageDialog(Main.parent,
    44                     tr("This tool extracts node from its ways and requires single node to be selected."),
    45                     tr("Extract node"), JOptionPane.INFORMATION_MESSAGE);
     45            new Notification(tr("This tool extracts node from its ways and requires single node to be selected."))
     46                .setIcon(JOptionPane.WARNING_MESSAGE).show();
    4647            return;
    4748        }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SplitObjectAction.java

    r29121 r30177  
    2525import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2626import org.openstreetmap.josm.data.osm.Way;
     27import org.openstreetmap.josm.gui.Notification;
     28
    2729import org.openstreetmap.josm.tools.Shortcut;
    2830
     
    6365
    6466        if (!checkSelection(selection)) {
    65             JOptionPane.showMessageDialog(
    66                     Main.parent,
    67                     tr("The current selection cannot be used for splitting."),
    68                     tr("Warning"),
    69                     JOptionPane.WARNING_MESSAGE
    70             );
     67            showWarningNotification(tr("The current selection cannot be used for splitting."));
    7168            return;
    7269        }
     
    118115            }
    119116            if (wayOccurenceCounter.isEmpty()) {
    120                 JOptionPane.showMessageDialog(Main.parent,
    121                         trn("The selected node is not in the middle of any way.",
    122                                 "The selected nodes are not in the middle of any way.",
    123                                 selectedNodes.size()),
    124                                 tr("Warning"),
    125                                 JOptionPane.WARNING_MESSAGE);
     117                showWarningNotification(
     118                   trn("The selected node is not in the middle of any way.",
     119                       "The selected nodes are not in the middle of any way.",
     120                        selectedNodes.size()));
    126121                return;
    127122            }
     
    130125                if (entry.getValue().equals(selectedNodes.size())) {
    131126                    if (selectedWay != null) {
    132                         JOptionPane.showMessageDialog(Main.parent,
    133                                 trn("There is more than one way using the node you selected. Please select the way also.",
    134                                         "There is more than one way using the nodes you selected. Please select the way also.",
    135                                         selectedNodes.size()),
    136                                         tr("Warning"),
    137                                         JOptionPane.WARNING_MESSAGE);
     127                        showWarningNotification(
     128                            trn("There is more than one way using the node you selected. Please select the way also.",
     129                                    "There is more than one way using the nodes you selected. Please select the way also.",
     130                                    selectedNodes.size())
     131                            );
    138132                        return;
    139133                    }
     
    143137
    144138            if (selectedWay == null) {
    145                 JOptionPane.showMessageDialog(Main.parent,
    146                         tr("The selected nodes do not share the same way."),
    147                         tr("Warning"),
    148                         JOptionPane.WARNING_MESSAGE);
     139                showWarningNotification(tr("The selected nodes do not share the same way."));
    149140                return;
    150141            }
     
    154145        } else if (selectedWay != null && !selectedNodes.isEmpty()) {
    155146            if (!selectedWay.isClosed()) {
    156                 JOptionPane.showMessageDialog(Main.parent,
    157                         tr("The selected way is not closed."),
    158                         tr("Warning"),
    159                         JOptionPane.WARNING_MESSAGE);
     147                showWarningNotification(tr("The selected way is not closed."));
    160148                return;
    161149            }
     
    163151            nds.removeAll(selectedWay.getNodes());
    164152            if (!nds.isEmpty()) {
    165                 JOptionPane.showMessageDialog(Main.parent,
    166                         trn("The selected way does not contain the selected node.",
    167                                 "The selected way does not contain all the selected nodes.",
    168                                 selectedNodes.size()),
    169                                 tr("Warning"),
    170                                 JOptionPane.WARNING_MESSAGE);
     153                showWarningNotification(
     154                    trn("The selected way does not contain the selected node.",
     155                            "The selected way does not contain all the selected nodes.",
     156                            selectedNodes.size()));
    171157                return;
    172158            }
    173159        } else if (selectedWay != null && selectedNodes.isEmpty()) {
    174             JOptionPane.showMessageDialog(Main.parent,
    175                     tr("The selected way is not a split way, please select split points or split way too."),
    176                     tr("Warning"),
    177                     JOptionPane.WARNING_MESSAGE);
     160            showWarningNotification(
     161                tr("The selected way is not a split way, please select split points or split way too."));
    178162            return;
    179163        }
     
    200184                (nodeIndex1 == 0 && nodeIndex2 == selectedWay.getNodesCount() - 2) ||
    201185                (nodeIndex2 == 0 && nodeIndex1 == selectedWay.getNodesCount() - 2)) {
    202             JOptionPane.showMessageDialog(Main.parent,
    203                     tr("The selected nodes can not be consecutive nodes in the object."),
    204                     tr("Warning"),
    205                     JOptionPane.WARNING_MESSAGE);
     186            showWarningNotification(
     187                tr("The selected nodes can not be consecutive nodes in the object."));
    206188            return;
    207189        }
     
    278260        setEnabled(checkSelection(selection));
    279261    }
     262   
     263    void showWarningNotification(String msg) {
     264        new Notification(msg)
     265            .setIcon(JOptionPane.WARNING_MESSAGE).show();
     266    }
    280267}
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SplitOnIntersectionsAction.java

    r30002 r30177  
    1313import org.openstreetmap.josm.actions.JosmAction;
    1414import org.openstreetmap.josm.data.osm.OsmPrimitive;
     15import org.openstreetmap.josm.gui.Notification;
    1516import static org.openstreetmap.josm.tools.I18n.tr;
    1617
     
    6566                    }
    6667                } else if( refs.size() > 1 ) {
    67                     JOptionPane.showMessageDialog(
    68                             Main.parent,
    69                             tr("There are several ways containing one of the splitting nodes. Select ways participating in this operation."),
    70                             tr("Warning"),
    71                             JOptionPane.WARNING_MESSAGE);
     68                    new Notification(
     69                        tr("There are several ways containing one of the splitting nodes. Select ways participating in this operation.")
     70                        ).setIcon(JOptionPane.WARNING_MESSAGE).show(); 
    7271                    return;
    7372                }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/SymmetryAction.java

    r29769 r30177  
    2222import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2323import org.openstreetmap.josm.data.osm.Way;
     24import org.openstreetmap.josm.gui.Notification;
     25
    2426import org.openstreetmap.josm.tools.Shortcut;
    2527
     
    6062       
    6163        if (p1==null || p2==null || nodes.size() < 1) {
    62             JOptionPane.showMessageDialog(
    63                     Main.parent,
    64                     tr("Please select at least two nodes for symmetry axis and something else to mirror."),
    65                     tr("Information"),
    66                     JOptionPane.INFORMATION_MESSAGE
    67             );
     64            new Notification(
     65                    tr("Please select at least two nodes for symmetry axis and something else to mirror.")
     66                ).setIcon(JOptionPane.WARNING_MESSAGE).show(); 
    6867            return;
    6968        }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/replacegeometry/ReplaceGeometryAction.java

    r28335 r30177  
    1010import org.openstreetmap.josm.actions.JosmAction;
    1111import org.openstreetmap.josm.data.osm.OsmPrimitive;
     12import org.openstreetmap.josm.gui.Notification;
    1213import static org.openstreetmap.josm.tools.I18n.tr;
    1314import org.openstreetmap.josm.tools.Shortcut;
     
    3637        List<OsmPrimitive> selection = new ArrayList<OsmPrimitive>(getCurrentDataSet().getSelected());
    3738        if (selection.size() != 2) {
    38             JOptionPane.showMessageDialog(Main.parent,
    39                     tr("This tool replaces geometry of one object with another, and so requires exactly two objects to be selected."),
    40                     TITLE, JOptionPane.INFORMATION_MESSAGE);
     39            new Notification(
     40                    tr("This tool replaces geometry of one object with another, and so requires exactly two objects to be selected.")
     41                ).setIcon(JOptionPane.WARNING_MESSAGE).show(); 
    4142            return;
    4243        }
     
    5556            Main.main.undoRedo.add(replaceCommand);
    5657        } catch (IllegalArgumentException ex) {
    57             JOptionPane.showMessageDialog(Main.parent,
    58                     ex.getMessage(), TITLE, JOptionPane.INFORMATION_MESSAGE);
     58            new Notification(
     59                ex.getMessage()
     60            ).setIcon(JOptionPane.WARNING_MESSAGE).show();
    5961        } catch (ReplaceGeometryException ex) {
    60             JOptionPane.showMessageDialog(Main.parent,
    61                     ex.getMessage(), TITLE, JOptionPane.INFORMATION_MESSAGE);
     62            new Notification(
     63                ex.getMessage()
     64            ).setIcon(JOptionPane.WARNING_MESSAGE).show();
    6265        }
    6366    }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/replacegeometry/ReplaceGeometryUtils.java

    r29854 r30177  
    3737
    3838import edu.princeton.cs.algs4.AssignmentProblem;
     39import org.openstreetmap.josm.gui.Notification;
     40import static org.openstreetmap.josm.tools.I18n.tr;
    3941
    4042/**
     
    317319                catch (Exception e) {
    318320                    useRobust = false;
    319                     JOptionPane.showMessageDialog(Main.parent,
    320                             tr("Exceeded iteration limit for robust method, using simpler method."),
    321                             TITLE, JOptionPane.WARNING_MESSAGE);
     321                    new Notification(
     322                        tr("Exceeded iteration limit for robust method, using simpler method.")
     323                    ).setIcon(JOptionPane.WARNING_MESSAGE).show();     
    322324                    nodeAssoc = new HashMap<Node, Node>();
    323325                }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/IntersectedWaysAction.java

    r29769 r30177  
    1414import org.openstreetmap.josm.actions.JosmAction;
    1515import org.openstreetmap.josm.data.osm.*;
     16import org.openstreetmap.josm.gui.Notification;
    1617
    1718import org.openstreetmap.josm.tools.Shortcut;
     
    4243            return;
    4344        } else {
    44              JOptionPane.showMessageDialog(Main.parent,
    45                tr("Please select some ways to find connected and intersecting ways!"),
    46                tr("Warning"), JOptionPane.WARNING_MESSAGE);
     45             new Notification(
     46               tr("Please select some ways to find connected and intersecting ways!")
     47               ).setIcon(JOptionPane.WARNING_MESSAGE).show();
    4748        }
    4849
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/IntersectedWaysRecursiveAction.java

    r29769 r30177  
    1414import org.openstreetmap.josm.actions.JosmAction;
    1515import org.openstreetmap.josm.data.osm.*;
     16import org.openstreetmap.josm.gui.Notification;
     17import static org.openstreetmap.josm.tools.I18n.tr;
    1618
    1719import org.openstreetmap.josm.tools.Shortcut;
     
    4244            getCurrentDataSet().addSelected(newWays);
    4345        } else {
    44              JOptionPane.showMessageDialog(Main.parent,
    45                tr("Please select some ways to find all connected and intersecting ways!"),
    46                tr("Warning"), JOptionPane.WARNING_MESSAGE);
     46              new Notification(
     47                tr("Please select some ways to find all connected and intersecting ways!")
     48                ).setIcon(JOptionPane.WARNING_MESSAGE).show();
    4749        }
    4850
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/MiddleNodesAction.java

    r30002 r30177  
    1414import org.openstreetmap.josm.actions.JosmAction;
    1515import org.openstreetmap.josm.data.osm.*;
     16import org.openstreetmap.josm.gui.Notification;
    1617
    1718import org.openstreetmap.josm.tools.Shortcut;
     
    3839        // if no 2 nodes and no ways are selected, do nothing
    3940        if (selectedNodes.size() != 2) {
    40             JOptionPane.showMessageDialog(Main.parent,
    41                     tr("Please select two nodes connected by way!"),
    42                     tr("Warning"),
    43                     JOptionPane.WARNING_MESSAGE);
     41            new Notification(
     42                tr("Please select two nodes connected by way!")
     43            ).setIcon(JOptionPane.WARNING_MESSAGE).show();
    4444            return;
    4545        }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/NodeWayUtils.java

    r30002 r30177  
    1818import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1919import org.openstreetmap.josm.data.osm.Way;
     20import org.openstreetmap.josm.gui.Notification;
    2021import org.openstreetmap.josm.tools.Geometry;
     22import static org.openstreetmap.josm.tools.I18n.tr;
    2123import org.openstreetmap.josm.tools.Pair;
    2224
    23 import static org.openstreetmap.josm.tools.I18n.tr;
    2425
    2526
     
    199200//                 System.out.printf("%d: %d ways added to selection intersectiong\n",level,c);
    200201                 if (c>maxWays1) {
    201                        JOptionPane.showMessageDialog(Main.parent,
    202                                 tr("Too many ways are added: {0}!",c),
    203                                         tr("Warning"),
    204                                         JOptionPane.WARNING_MESSAGE);
     202                        new Notification(
     203                            tr("Too many ways are added: {0}!",c)
     204                            ).setIcon(JOptionPane.WARNING_MESSAGE).show(); 
    205205                       return;
    206206                 }
     
    224224//                 System.out.printf("%d: %d ways added to selection\n",level,c);
    225225                 if (c>maxWays) {
    226                        JOptionPane.showMessageDialog(Main.parent,
    227                                 tr("Too many ways are added: {0}!",c),
    228                                         tr("Warning"),
    229                                         JOptionPane.WARNING_MESSAGE);
     226                        new Notification(
     227                            tr("Too many ways are added: {0}!",c)
     228                            ).setIcon(JOptionPane.WARNING_MESSAGE).show();                       
    230229                       return;
    231230                 }
     
    267266        }
    268267        if (newNodes.isEmpty()) {
    269                 JOptionPane.showMessageDialog(Main.parent,
    270                     tr("Please select two nodes connected by way!"),
    271                     tr("Warning"),
    272                     JOptionPane.WARNING_MESSAGE);
     268                new Notification(
     269                    tr("Please select two nodes connected by way!")
     270                ).setIcon(JOptionPane.WARNING_MESSAGE).show(); 
    273271            }
    274272    }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/SelectAllInsideAction.java

    r30002 r30177  
    1414import org.openstreetmap.josm.actions.JosmAction;
    1515import org.openstreetmap.josm.data.osm.*;
     16import org.openstreetmap.josm.gui.Notification;
     17
    1618import org.openstreetmap.josm.tools.Shortcut;
    1719
     
    3537            getCurrentDataSet().addSelected(insideSelected);
    3638        } else{
    37         JOptionPane.showMessageDialog(Main.parent,
    38                tr("Nothing found. Please select some closed ways or multipolygons to find all primitives inside them!"),
    39                tr("Warning"), JOptionPane.WARNING_MESSAGE);
     39            new Notification(
     40                tr("Nothing found. Please select some closed ways or multipolygons to find all primitives inside them!"))
     41                .setIcon(JOptionPane.WARNING_MESSAGE)
     42                .show(); 
    4043        }
    4144    }
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/SelectBoundaryAction.java

    r30015 r30177  
    2222import org.openstreetmap.josm.data.osm.Relation;
    2323import org.openstreetmap.josm.data.osm.Way;
     24import org.openstreetmap.josm.gui.Notification;
     25
    2426import org.openstreetmap.josm.tools.Shortcut;
    2527
     
    4244        Set<Way> selectedWays = OsmPrimitive.getFilteredSet(getCurrentDataSet().getSelected(), Way.class);
    4345        Set<Node> selectedNodes = OsmPrimitive.getFilteredSet(getCurrentDataSet().getSelected(), Node.class);
    44         Set<Relation> selectedRelations = OsmPrimitive.getFilteredSet(getCurrentDataSet().getSelected(), Relation.class);
    4546       
    4647        Set<Way> newWays = new HashSet<Way>();
    4748       
    4849        Way w=null;
    49         Relation selectedRelation=null;
    5050       
    51         if (selectedRelations.size()==1) {
    52             selectedRelation = selectedRelations.iterator().next();
    53             if (selectedRelation.getMemberPrimitives().contains(lastUsedStartingWay)) {
    54                 w=lastUsedStartingWay;
    55                 // repeated call for selected relation
    56             }
    57         } else if (selectedWays.isEmpty()) {
     51        if (selectedWays.isEmpty()) {
    5852            if (selectedNodes.size()==1 ) {
    5953                for (OsmPrimitive p : selectedNodes.iterator().next().getReferrers()) {
     
    8175        lastUsedStartingWay = w;
    8276       
    83         List<Relation> rels=new ArrayList<Relation>();
    84         for (OsmPrimitive p : w.getReferrers()) {
    85             if (p instanceof Relation && p.isSelectable()) {
    86                 rels.add((Relation) p);
    87             }
    88         }
    89         if (selectedRelation!=null) {
    90             int idx = rels.indexOf(selectedRelation);
    91             // selectedRelation has number idx in active relation list
    92             if (idx>=0) {
    93                // select next relation
    94                if (idx+1<rels.size())
    95                    getCurrentDataSet().setSelected(Arrays.asList(rels.get(idx+1)));
    96                else
    97                    getCurrentDataSet().setSelected(Arrays.asList(rels.get(0)));
    98                return;
    99             }
    100         } else if (rels.size()>0) {
    101                getCurrentDataSet().setSelected(Arrays.asList(rels.get(0)));
    102                return;
    103         }
    104        
     77                       
    10578        // try going left at each turn
    10679        if (! NodeWayUtils.addAreaBoundary(w, newWays, lastUsedLeft) ) {
     
    11184            getCurrentDataSet().setSelected(newWays);
    11285        } else{
    113         JOptionPane.showMessageDialog(Main.parent,
    114                tr("Nothing found. Please select way that is a part of some polygon formed by connected ways"),
    115                tr("Warning"), JOptionPane.WARNING_MESSAGE);
    116         }
     86        new Notification(
     87            tr("Nothing found. Please select way that is a part of some polygon formed by connected ways")
     88            ).setIcon(JOptionPane.WARNING_MESSAGE).show();           
     89    }
    11790    }
    11891
  • applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/selection/SelectHighwayAction.java

    r30002 r30177  
    1111import org.openstreetmap.josm.actions.JosmAction;
    1212import org.openstreetmap.josm.data.osm.*;
     13import org.openstreetmap.josm.gui.Notification;
     14import static org.openstreetmap.josm.tools.I18n.tr;
    1315import org.openstreetmap.josm.tools.Shortcut;
    1416
     
    3638            getCurrentDataSet().setSelected(selectHighwayBetween(selectedWays.get(0), selectedWays.get(1)));
    3739        } else {
    38             JOptionPane.showMessageDialog(Main.parent, tr("Please select one or two ways for this action"), "Select Highway", JOptionPane.ERROR_MESSAGE);
     40            new Notification(
     41                tr("Please select one or two ways for this action")
     42            ).setIcon(JOptionPane.WARNING_MESSAGE).show();
    3943        }
    4044    }
Note: See TracChangeset for help on using the changeset viewer.