Changeset 13214 in josm for trunk/src


Ignore:
Timestamp:
2017-12-17T21:50:59+01:00 (6 years ago)
Author:
Don-vip
Message:

fix #15673 - display tile URL as clickable link in "show tile info" + add expert menu entries "Get tile status" (/status) and "Force tile rendering" (/dirty) for tiles from *.tile.openstreetmap.org

Location:
trunk/src/org/openstreetmap/josm/gui/layer
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java

    r13206 r13214  
    7373import org.openstreetmap.gui.jmapviewer.tilesources.AbstractTMSTileSource;
    7474import org.openstreetmap.josm.Main;
     75import org.openstreetmap.josm.actions.ExpertToggleAction;
    7576import org.openstreetmap.josm.actions.ImageryAdjustAction;
    7677import org.openstreetmap.josm.actions.RenameLayerAction;
     
    9394import org.openstreetmap.josm.gui.MapView;
    9495import org.openstreetmap.josm.gui.NavigatableComponent.ZoomChangeListener;
     96import org.openstreetmap.josm.gui.Notification;
    9597import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
    9698import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
     
    117119import org.openstreetmap.josm.gui.util.GuiHelper;
    118120import org.openstreetmap.josm.tools.GBC;
     121import org.openstreetmap.josm.tools.HttpClient;
    119122import org.openstreetmap.josm.tools.Logging;
    120123import org.openstreetmap.josm.tools.MemoryManager;
     
    499502    }
    500503
     504    private void sendOsmTileRequest(String request) {
     505        Tile clickedTile = clickedTileHolder.getTile();
     506        if (clickedTile != null) {
     507            try {
     508                new Notification(HttpClient.create(new URL(clickedTile.getUrl() + '/' + request))
     509                        .connect().fetchContent()).show();
     510            } catch (IOException ex) {
     511                Logging.error(ex);
     512            }
     513        }
     514    }
     515
     516    private final class GetOsmTileStatusAction extends AbstractAction {
     517        private GetOsmTileStatusAction() {
     518            super(tr("Get tile status"));
     519            setEnabled(clickedTileHolder.getTile() != null);
     520        }
     521
     522        @Override
     523        public void actionPerformed(ActionEvent e) {
     524            sendOsmTileRequest("status");
     525        }
     526    }
     527
     528    private final class MarkOsmTileDirtyAction extends AbstractAction {
     529        private MarkOsmTileDirtyAction() {
     530            super(tr("Force tile rendering"));
     531            setEnabled(clickedTileHolder.getTile() != null);
     532        }
     533
     534        @Override
     535        public void actionPerformed(ActionEvent e) {
     536            sendOsmTileRequest("dirty");
     537        }
     538    }
     539
    501540    /**
    502541     * Simple class to keep clickedTile within hookUpMapView
     
    577616            add(new JMenuItem(new LoadTileAction()));
    578617            add(new JMenuItem(new ShowTileInfoAction()));
     618            if (ExpertToggleAction.isExpert() && tileSource.getBaseUrl().contains(".tile.openstreetmap.org/")) {
     619                add(new JMenuItem(new GetOsmTileStatusAction()));
     620                add(new JMenuItem(new MarkOsmTileDirtyAction()));
     621            }
    579622        }
    580623    }
  • trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java

    r12782 r13214  
    4040import org.openstreetmap.josm.gui.layer.imagery.ImageryFilterSettings;
    4141import org.openstreetmap.josm.gui.layer.imagery.TileSourceDisplaySettings;
     42import org.openstreetmap.josm.gui.widgets.UrlLabel;
    4243import org.openstreetmap.josm.tools.GBC;
    4344import org.openstreetmap.josm.tools.ImageProcessor;
     
    176177    }
    177178
    178     protected JTextField createTextField(String text) {
     179    protected JComponent createTextField(String text) {
     180        if (text != null && text.matches("https?://.*")) {
     181            return new UrlLabel(text);
     182        }
    179183        JTextField ret = new JTextField(text);
    180184        ret.setEditable(false);
Note: See TracChangeset for help on using the changeset viewer.