Changeset 15706 in josm for trunk/src/org


Ignore:
Timestamp:
2020-01-13T23:51:06+01:00 (5 years ago)
Author:
simon04
Message:

see #14465 -Tag2Link: combine links with same name and launch at once

Location:
trunk/src/org/openstreetmap/josm
Files:
1 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/AbstractInfoAction.java

    r15586 r15706  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
    5 import static org.openstreetmap.josm.tools.I18n.trn;
    65
    76import java.awt.event.ActionEvent;
     
    1615import org.openstreetmap.josm.data.osm.OsmData;
    1716import org.openstreetmap.josm.data.osm.OsmPrimitive;
    18 import org.openstreetmap.josm.gui.HelpAwareOptionPane;
    19 import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec;
    2017import org.openstreetmap.josm.gui.MainApplication;
    21 import org.openstreetmap.josm.gui.help.HelpUtil;
    22 import org.openstreetmap.josm.tools.ImageProvider;
    2318import org.openstreetmap.josm.tools.Logging;
    2419import org.openstreetmap.josm.tools.OpenBrowser;
     
    6257     * @param numBrowsers the number of browser windows to open
    6358     * @return {@code true} if the user confirms, {@code false} otherwise
     59     * @deprecated use {@link OpenBrowserAction#confirmLaunchMultiple(int)}
    6460     */
     61    @Deprecated
    6562    public static boolean confirmLaunchMultiple(int numBrowsers) {
    66         String msg = /* for correct i18n of plural forms - see #9110 */ trn(
    67                 "You are about to launch {0} browser window.<br>"
    68                         + "This may both clutter your screen with browser windows<br>"
    69                         + "and take some time to finish.",
    70                 "You are about to launch {0} browser windows.<br>"
    71                         + "This may both clutter your screen with browser windows<br>"
    72                         + "and take some time to finish.", numBrowsers, numBrowsers);
    73         ButtonSpec[] spec = {
    74                 new ButtonSpec(
    75                         tr("Continue"),
    76                         new ImageProvider("ok"),
    77                         trn("Click to continue and to open {0} browser", "Click to continue and to open {0} browsers",
    78                                 numBrowsers, numBrowsers),
    79                         null // no specific help topic
    80                 ),
    81                 new ButtonSpec(
    82                         tr("Cancel"),
    83                         new ImageProvider("cancel"),
    84                         tr("Click to abort launching external browsers"),
    85                         null // no specific help topic
    86                 )
    87         };
    88         return 0 == HelpAwareOptionPane.showOptionDialog(
    89                 MainApplication.getMainFrame(),
    90                 new StringBuilder(msg).insert(0, "<html>").append("</html>").toString(),
    91                 tr("Warning"),
    92                 JOptionPane.WARNING_MESSAGE,
    93                 null,
    94                 spec,
    95                 spec[0],
    96                 HelpUtil.ht("/WarningMessages#ToManyBrowsersToOpen")
    97         );
     63        return OpenBrowserAction.confirmLaunchMultiple(numBrowsers);
    9864    }
    9965
     
    12490        //
    12591        int max = Math.min(10, primitivesToShow.size());
    126         if (primitivesToShow.size() > max && !confirmLaunchMultiple(primitivesToShow.size()))
     92        if (primitivesToShow.size() > max && !OpenBrowserAction.confirmLaunchMultiple(primitivesToShow.size()))
    12793            return;
    12894        for (int i = 0; i < max; i++) {
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java

    r15650 r15706  
    3333import javax.swing.event.ListSelectionListener;
    3434
    35 import org.openstreetmap.josm.actions.AbstractInfoAction;
     35import org.openstreetmap.josm.actions.OpenBrowserAction;
    3636import org.openstreetmap.josm.actions.downloadtasks.ChangesetHeaderDownloadTask;
    3737import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler;
     
    432432            if (sel.isEmpty())
    433433                return;
    434             if (sel.size() > 10 && !AbstractInfoAction.confirmLaunchMultiple(sel.size()))
     434            if (sel.size() > 10 && !OpenBrowserAction.confirmLaunchMultiple(sel.size()))
    435435                return;
    436436            String baseUrl = Config.getUrls().getBaseBrowseUrl();
  • trunk/src/org/openstreetmap/josm/gui/history/OpenChangesetPopupMenu.java

    r15673 r15706  
    1515import javax.swing.JPopupMenu;
    1616
     17import org.openstreetmap.josm.actions.OpenBrowserAction;
    1718import org.openstreetmap.josm.data.StructUtils;
    1819import org.openstreetmap.josm.data.StructUtils.StructEntry;
    1920import org.openstreetmap.josm.data.osm.PrimitiveId;
    20 import org.openstreetmap.josm.gui.util.OpenBrowserAction;
    2121import org.openstreetmap.josm.spi.preferences.Config;
    2222
  • trunk/src/org/openstreetmap/josm/gui/util/AbstractTag2LinkPopupListener.java

    r15702 r15706  
    44import java.awt.Component;
    55import java.util.ArrayList;
    6 import java.util.List;
     6import java.util.Collection;
     7import java.util.HashMap;
     8import java.util.Map;
    79
    810import javax.swing.JPopupMenu;
     
    1012import javax.swing.event.PopupMenuListener;
    1113
     14import org.openstreetmap.josm.actions.OpenBrowserAction;
    1215import org.openstreetmap.josm.tools.Tag2Link;
    1316
     
    1922public abstract class AbstractTag2LinkPopupListener implements PopupMenuListener {
    2023
    21     private final List<Component> itemList;
     24    private final Map<String, org.openstreetmap.josm.actions.OpenBrowserAction> browserActions = new HashMap<>();
     25    private final Collection<Component> itemList = new ArrayList<>();
    2226
    2327    protected AbstractTag2LinkPopupListener() {
    24         this.itemList = new ArrayList<>();
    2528    }
    2629
     
    2831    public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
    2932        JPopupMenu popup = (JPopupMenu) e.getSource();
     33        browserActions.clear();
    3034        itemList.forEach(popup::remove);
    3135        itemList.clear();
     
    4246            }
    4347
    44             itemList.add(popup.add(new OpenBrowserAction(name, url)));
     48            if (browserActions.containsKey(name)) {
     49                browserActions.get(name).addUrl(url);
     50            } else {
     51                final OpenBrowserAction action = new OpenBrowserAction(name, url);
     52                browserActions.put(name, action);
     53                itemList.add(popup.add(action));
     54            }
    4555        });
    4656    }
  • trunk/src/org/openstreetmap/josm/tools/Tag2Link.java

    r15702 r15706  
    122122    public static void getLinksForTag(String key, String value, LinkConsumer linkConsumer) {
    123123
     124        if (value == null || value.isEmpty()) {
     125            return;
     126        }
     127
    124128        // Search
    125129        if (key.matches("^(.+[:_])?name([:_].+)?$")) {
     
    151155        if (key.matches("(.*:)?wikidata")) {
    152156            OsmUtils.splitMultipleValues(value)
    153                     .forEach(q -> linkConsumer.acceptLink(tr("View Wikidata item {0}", q), "https://www.wikidata.org/wiki/" + q));
     157                    .forEach(q -> linkConsumer.acceptLink(tr("View Wikidata item"), "https://www.wikidata.org/wiki/" + q));
    154158        }
    155159        if (key.matches("(.*:)?species")) {
Note: See TracChangeset for help on using the changeset viewer.