Changeset 14646 in josm for trunk/src/org


Ignore:
Timestamp:
2019-01-05T21:20:06+01:00 (6 years ago)
Author:
simon04
Message:

fix #17173 - Detect preset wiki languages automatically

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/items/Link.java

    r11553 r14646  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
     6import java.awt.event.MouseEvent;
     7import java.util.Arrays;
    68import java.util.Collection;
     9import java.util.Optional;
    710
    811import javax.swing.JPanel;
     12import javax.swing.SwingUtilities;
    913
    1014import org.openstreetmap.josm.data.osm.OsmPrimitive;
     15import org.openstreetmap.josm.gui.dialogs.properties.HelpAction;
    1116import org.openstreetmap.josm.gui.widgets.UrlLabel;
     17import org.openstreetmap.josm.spi.preferences.Config;
    1218import org.openstreetmap.josm.tools.GBC;
     19import org.openstreetmap.josm.tools.LanguageInfo;
    1320
    1421/**
     
    1623 */
    1724public class Link extends TextItem {
     25
     26    /** The OSM wiki page to display. */
     27    public String wiki; // NOSONAR
    1828
    1929    /** The link to display. */
     
    2636    public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
    2737        initializeLocaleText(tr("More information about this feature"));
    28         String url = java.util.Optional.ofNullable(locale_href).orElse(href);
    29         if (url != null) {
    30             p.add(new UrlLabel(url, locale_text, 2), GBC.eol().insets(0, 10, 0, 0).fill(GBC.HORIZONTAL));
     38        if (wiki != null) {
     39            final String url = Config.getUrls().getOSMWiki() + "/wiki/" + wiki;
     40            final UrlLabel label = new UrlLabel(url, locale_text, 2) {
     41                @Override
     42                public void mouseClicked(MouseEvent e) {
     43                    if (SwingUtilities.isLeftMouseButton(e)) {
     44                        // Open localized page if exists
     45                        HelpAction.displayHelp(Arrays.asList(LanguageInfo.getWikiLanguagePrefix() + wiki, wiki));
     46                    } else {
     47                        super.mouseClicked(e);
     48                    }
     49                }
     50            };
     51            p.add(label, GBC.eol().insets(0, 10, 0, 0).fill(GBC.HORIZONTAL));
     52        } else {
     53            final String url = Optional.ofNullable(locale_href).orElse(href);
     54            final UrlLabel label = new UrlLabel(url, locale_text, 2);
     55            p.add(label, GBC.eol().insets(0, 10, 0, 0).fill(GBC.HORIZONTAL));
    3156        }
    3257        return false;
     
    3661    protected String fieldsToString() {
    3762        return super.fieldsToString()
     63                + (wiki != null ? "wiki=" + wiki + ", " : "")
    3864                + (href != null ? "href=" + href + ", " : "")
    3965                + (locale_href != null ? "locale_href=" + locale_href + ", " : "");
Note: See TracChangeset for help on using the changeset viewer.