Ticket #11741: 11741.patch

File 11741.patch, 3.2 KB (added by simon04, 9 years ago)
  • src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
    index fbb70b9..e9c7f1e 100644
    a b  
    165165
    166166    private final transient DataSetListenerAdapter dataChangedAdapter = new DataSetListenerAdapter(this);
    167167    private final HelpAction helpAction = new HelpAction();
     168    private final TaginfoAction taginfoAction = new TaginfoAction();
    168169    private final PasteValueAction pasteValueAction = new PasteValueAction();
    169170    private final CopyValueAction copyValueAction = new CopyValueAction();
    170171    private final CopyKeyValueAction copyKeyValueAction = new CopyKeyValueAction();
    private void setupMembershipMenu() {  
    396397        membershipMenuHandler.addAction(downloadSelectedIncompleteMembersAction);
    397398        membershipMenu.addSeparator();
    398399        membershipMenu.add(helpAction);
     400        membershipMenu.add(taginfoAction);
    399401
    400402        membershipTable.addMouseListener(new PopupMenuLauncher(membershipMenu) {
    401403            @Override
    private void setupTagsMenu() {  
    449451        tagMenu.add(searchActionSame);
    450452        tagMenu.addSeparator();
    451453        tagMenu.add(helpAction);
     454        tagMenu.add(taginfoAction);
    452455        tagTable.addMouseListener(new PopupMenuLauncher(tagMenu));
    453456    }
    454457
    public void actionPerformed(ActionEvent e) {  
    11461149        }
    11471150    }
    11481151
     1152    class TaginfoAction extends AbstractAction {
     1153
     1154        public TaginfoAction() {
     1155            putValue(NAME, tr("Go to Taginfo"));
     1156            putValue(SHORT_DESCRIPTION, tr("Launch browser with Taginfo statistics for selected object"));
     1157        }
     1158
     1159        @Override
     1160        public void actionPerformed(ActionEvent e) {
     1161            final String url;
     1162            if (tagTable.getSelectedRowCount() == 1) {
     1163                final int row = tagTable.getSelectedRow();
     1164                final String key = Utils.encodeUrl(tagData.getValueAt(row, 0).toString());
     1165                Map<String, Integer> values = (Map<String, Integer>) tagData.getValueAt(row, 1);
     1166                if (values.size() == 1) {
     1167                    url = "https://taginfo.openstreetmap.org/tags/" + key /* do not URL encode key, otherwise addr:street does not work */
     1168                            + "=" + Utils.encodeUrl(values.keySet().iterator().next());
     1169                } else {
     1170                    url = "https://taginfo.openstreetmap.org/tags/" + key; /* do not URL encode key, otherwise addr:street does not work */
     1171                }
     1172            } else if (membershipTable.getSelectedRowCount() == 1) {
     1173                final String type = ((Relation) membershipData.getValueAt(membershipTable.getSelectedRow(), 0)).get("type");
     1174                url = "https://taginfo.openstreetmap.org/relations/" + Utils.encodeUrl(type);
     1175            } else {
     1176                return;
     1177            }
     1178            OpenBrowser.displayUrl(url);
     1179        }
     1180    }
     1181
    11491182    class PasteValueAction extends AbstractAction {
    11501183        public PasteValueAction() {
    11511184            putValue(NAME, tr("Paste Value"));