package org.openstreetmap.josm.plugins.osminspector; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.data.Bounds; import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent; import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener; import org.openstreetmap.josm.gui.JosmUserIdentityManager; import org.openstreetmap.josm.gui.MapFrame; import org.openstreetmap.josm.gui.NavigatableComponent; import org.openstreetmap.josm.gui.NavigatableComponent.ZoomChangeListener; import org.openstreetmap.josm.gui.download.DownloadDialog; import org.openstreetmap.josm.gui.download.DownloadSelection; import org.openstreetmap.josm.plugins.Plugin; import org.openstreetmap.josm.plugins.PluginInformation; import org.openstreetmap.josm.tools.Shortcut; public class OsmInspectorPlugin extends Plugin implements ZoomChangeListener, MouseListener, PreferenceChangedListener, DownloadSelection{ /** The JOSM user identity manager, it is used for obtaining the user name */ private final JosmUserIdentityManager userIdentityManager; /** The bounding box from where the MapDust bugs are down-loaded */ //private Bounds bBox; private OsmInspectorLayer inspectorLayer; public OsmInspectorPlugin(PluginInformation info) { super(info); userIdentityManager = JosmUserIdentityManager.getInstance(); initializePlugin(); } /** * Initialize the <code>OsmInspectorPlugin</code> object. Creates the * <code>OsmInspectorGUI</code> and initializes the following variables with *. */ private void initializePlugin() { Shortcut.registerShortcut("OsmInspector", tr("Toggle: {0}", tr("Open OsmInspector")), KeyEvent.VK_1, Shortcut.ALT_SHIFT); //String name = "Osm Inspector error reports"; //String tooltip = "Activates the Osm Inspector reporter plugin"; /* add default values for static variables */ Main.pref.put("osmInspector.nickname", "osmi"); Main.pref.put("osmInspector.showBugs", true); Main.pref.put("osmInspector.version", getPluginInformation().version); Main.pref.put("osmInspector.localVersion",getPluginInformation().localversion); inspectorLayer = null; } @Override public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) { Main.toolbar.register( new ImportOsmInspectorBugsAction( this ) ); if (newFrame == null) { /* if new MapFrame is null, remove listener */ NavigatableComponent.removeZoomChangeListener(this); } else { /* add MapDust dialog window */ if (Main.map != null && Main.map.mapView != null) { /* add MapdustGUI */ Main.map.setBounds(newFrame.getBounds()); /* add Listeners */ NavigatableComponent.addZoomChangeListener(this); Main.map.mapView.addMouseListener(this); Main.pref.addPreferenceChangeListener(this); /* put username to preferences */ Main.pref.put("osmInspector.josmUserName", userIdentityManager.getUserName()); Main.toolbar.control.add( new ImportOsmInspectorBugsAction( this ) ); } } } @Override public void zoomChanged() { } @Override // // Delegate feature selection to layer // public void mouseClicked(MouseEvent arg0) { if (inspectorLayer != null) { inspectorLayer.selectFeatures(arg0.getX(), arg0.getY()); } } @Override public void mouseEntered(MouseEvent arg0) { } @Override public void mouseExited(MouseEvent arg0) { } @Override public void mousePressed(MouseEvent arg0) { } @Override public void mouseReleased(MouseEvent arg0) { } @Override public void preferenceChanged(PreferenceChangeEvent e) { } public OsmInspectorLayer getLayer() { return inspectorLayer; } public void setLayer( OsmInspectorLayer theLayer ) { inspectorLayer = theLayer; } @Override public void addGui(DownloadDialog gui) { // TODO Auto-generated method stub } @Override public void setDownloadArea(Bounds bounds) { // TODO Auto-generated method stub } }