Changeset 10345 in josm for trunk/src/org
- Timestamp:
- 2016-06-08T23:17:19+02:00 (9 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java
r10299 r10345 108 108 FileExporter exporter = exporterClass.getConstructor().newInstance(); 109 109 exporters.add(exporter); 110 Ma pView.addLayerChangeListener(exporter);110 Main.getLayerManager().addAndFireActiveLayerChangeListener(exporter); 111 111 } catch (ReflectiveOperationException e) { 112 112 if (Main.isDebugEnabled()) { -
trunk/src/org/openstreetmap/josm/actions/JosmAction.java
r10212 r10345 16 16 import org.openstreetmap.josm.data.osm.DataSet; 17 17 import org.openstreetmap.josm.data.osm.OsmPrimitive; 18 import org.openstreetmap.josm.gui. MapView;19 import org.openstreetmap.josm.gui. MapView.LayerChangeListener;20 import org.openstreetmap.josm.gui.layer. Layer;18 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 19 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 20 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 21 21 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 22 22 import org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor; 23 import org.openstreetmap.josm.gui.util.GuiHelper;24 23 import org.openstreetmap.josm.tools.Destroyable; 25 24 import org.openstreetmap.josm.tools.ImageProvider; … … 184 183 Main.unregisterActionShortcut(this); 185 184 } 186 MapView.removeLayerChangeListener(layerChangeAdapter); 185 if (layerChangeAdapter != null) { 186 Main.getLayerManager().removeActiveLayerChangeListener(layerChangeAdapter); 187 } 187 188 DataSet.removeSelectionListener(selectionChangeAdapter); 188 189 } … … 226 227 protected void installAdapters() { 227 228 // make this action listen to layer change and selection change events 228 //229 229 layerChangeAdapter = new LayerChangeAdapter(); 230 230 selectionChangeAdapter = new SelectionChangeAdapter(); 231 Ma pView.addLayerChangeListener(layerChangeAdapter);231 Main.getLayerManager().addActiveLayerChangeListener(layerChangeAdapter); 232 232 DataSet.addSelectionListener(selectionChangeAdapter); 233 233 initEnabledState(); … … 291 291 292 292 /** 293 * Adapter for layer change events 294 * 295 */ 296 protected class LayerChangeAdapter implements MapView.LayerChangeListener { 297 private void updateEnabledStateInEDT() { 298 GuiHelper.runInEDT(new Runnable() { 299 @Override public void run() { 300 updateEnabledState(); 301 } 302 }); 303 } 304 293 * Adapter for layer change events. Runs updateEnabledState() whenever the active layer changed. 294 */ 295 protected class LayerChangeAdapter implements ActiveLayerChangeListener { 305 296 @Override 306 public void activeLayerChange (Layer oldLayer, Layer newLayer) {307 updateEnabledState InEDT();297 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 298 updateEnabledState(); 308 299 } 309 300 310 301 @Override 311 public void layerAdded(Layer newLayer) { 312 updateEnabledStateInEDT(); 313 } 314 315 @Override 316 public void layerRemoved(Layer oldLayer) { 317 updateEnabledStateInEDT(); 318 } 319 } 320 321 /** 322 * Adapter for selection change events 302 public String toString() { 303 return "LayerChangeAdapter [" + JosmAction.this.toString() + ']'; 304 } 305 } 306 307 /** 308 * Adapter for selection change events. Runs updateEnabledState() whenever the selection changed. 323 309 */ 324 310 protected class SelectionChangeAdapter implements SelectionChangedListener { … … 327 313 updateEnabledState(newSelection); 328 314 } 315 316 @Override 317 public String toString() { 318 return "SelectionChangeAdapter [" + JosmAction.this.toString() + ']'; 319 } 329 320 } 330 321 } -
trunk/src/org/openstreetmap/josm/actions/relation/RecentRelationsAction.java
r10134 r10345 21 21 import org.openstreetmap.josm.data.osm.Relation; 22 22 import org.openstreetmap.josm.gui.DefaultNameFormatter; 23 import org.openstreetmap.josm.gui.MapView;24 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;25 23 import org.openstreetmap.josm.gui.SideButton; 26 24 import org.openstreetmap.josm.gui.layer.Layer; 25 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 26 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 27 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 28 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 29 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 30 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 27 31 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 28 32 import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener; … … 33 37 * Action for accessing recent relations. 34 38 */ 35 public class RecentRelationsAction implements ActionListener, CommandQueueListener, LayerChangeListener { 39 public class RecentRelationsAction implements ActionListener, CommandQueueListener, LayerChangeListener, ActiveLayerChangeListener { 36 40 37 41 private final SideButton editButton; … … 48 52 arrow.setToolTipText(tr("List of recent relations")); 49 53 Main.main.undoRedo.addCommandQueueListener(this); 50 MapView.addLayerChangeListener(this); 54 Main.getLayerManager().addLayerChangeListener(this); 55 Main.getLayerManager().addActiveLayerChangeListener(this); 51 56 enableArrow(); 52 57 shortcut = Shortcut.registerShortcut( … … 109 114 110 115 @Override 111 public void activeLayerChange(Layer oldLayer, Layer newLayer) {116 public void layerAdded(LayerAddEvent e) { 112 117 enableArrow(); 113 118 } 114 119 115 120 @Override 116 public void layer Added(Layer newLayer) {121 public void layerRemoving(LayerRemoveEvent e) { 117 122 enableArrow(); 118 123 } 119 124 120 125 @Override 121 public void layerRemoved(Layer oldLayer) { 126 public void layerOrderChanged(LayerOrderChangeEvent e) { 127 enableArrow(); 128 } 129 130 @Override 131 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 122 132 enableArrow(); 123 133 } … … 182 192 } 183 193 } 194 184 195 } -
trunk/src/org/openstreetmap/josm/data/UndoRedoHandler.java
r8510 r10345 10 10 import org.openstreetmap.josm.data.osm.DataSet; 11 11 import org.openstreetmap.josm.data.osm.OsmPrimitive; 12 import org.openstreetmap.josm.gui.MapView;13 12 import org.openstreetmap.josm.gui.layer.Layer; 13 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 14 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 15 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 16 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 14 17 import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener; 15 18 import org.openstreetmap.josm.tools.CheckParameterUtil; 16 19 17 public class UndoRedoHandler implements MapView.LayerChangeListener {20 public class UndoRedoHandler implements LayerChangeListener { 18 21 19 22 /** … … 32 35 */ 33 36 public UndoRedoHandler() { 34 Ma pView.addLayerChangeListener(this);37 Main.getLayerManager().addLayerChangeListener(this); 35 38 } 36 39 … … 170 173 171 174 @Override 172 public void layerRemov ed(Layer oldLayer) {173 clean( oldLayer);175 public void layerRemoving(LayerRemoveEvent e) { 176 clean(e.getRemovedLayer()); 174 177 } 175 178 176 179 @Override 177 public void layerAdded(Layer newLayer) {180 public void layerAdded(LayerAddEvent e) { 178 181 // Do nothing 179 182 } 180 183 181 184 @Override 182 public void activeLayerChange(Layer oldLayer, Layer newLayer) {185 public void layerOrderChanged(LayerOrderChangeEvent e) { 183 186 // Do nothing 184 187 } -
trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/MultipolygonCache.java
r10312 r10345 28 28 import org.openstreetmap.josm.data.projection.Projection; 29 29 import org.openstreetmap.josm.data.projection.ProjectionChangeListener; 30 import org.openstreetmap.josm.gui.MapView;31 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;32 30 import org.openstreetmap.josm.gui.NavigatableComponent; 33 import org.openstreetmap.josm.gui.layer.Layer; 31 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 32 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 33 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 34 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 34 35 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 35 36 … … 51 52 Main.addProjectionChangeListener(this); 52 53 DataSet.addSelectionListener(this); 53 Ma pView.addLayerChangeListener(this);54 Main.getLayerManager().addLayerChangeListener(this); 54 55 } 55 56 … … 286 287 287 288 @Override 288 public void activeLayerChange(Layer oldLayer, Layer newLayer) {289 public void layerAdded(LayerAddEvent e) { 289 290 // Do nothing 290 291 } 291 292 292 293 @Override 293 public void layer Added(LayernewLayer) {294 public void layerOrderChanged(LayerOrderChangeEvent e) { 294 295 // Do nothing 295 296 } 296 297 297 298 @Override 298 public void layerRemov ed(Layer oldLayer) {299 if ( oldLayerinstanceof OsmDataLayer) {300 clear(((OsmDataLayer) oldLayer).data);299 public void layerRemoving(LayerRemoveEvent e) { 300 if (e.getRemovedLayer() instanceof OsmDataLayer) { 301 clear(((OsmDataLayer) e.getRemovedLayer()).data); 301 302 } 302 303 } -
trunk/src/org/openstreetmap/josm/gui/ImageryMenu.java
r10173 r10345 33 33 import org.openstreetmap.josm.data.imagery.ImageryLayerInfo; 34 34 import org.openstreetmap.josm.data.imagery.Shape; 35 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;36 35 import org.openstreetmap.josm.gui.layer.ImageryLayer; 37 import org.openstreetmap.josm.gui.layer.Layer; 36 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 37 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 38 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 39 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 38 40 import org.openstreetmap.josm.gui.preferences.imagery.ImageryPreference; 39 41 import org.openstreetmap.josm.tools.ImageProvider; … … 111 113 super(trc("menu", "Imagery")); 112 114 setupMenuScroller(); 113 Ma pView.addLayerChangeListener(this);115 Main.getLayerManager().addLayerChangeListener(this); 114 116 // build dynamically 115 117 addMenuListener(new MenuListener() { … … 210 212 211 213 private JMenuItem getNewOffsetMenu() { 212 if (!Main.isDisplayingMapView()) { 213 offsetAction.setEnabled(false); 214 return singleOffset; 215 } 216 Collection<ImageryLayer> layers = Main.map.mapView.getLayersOfType(ImageryLayer.class); 214 Collection<ImageryLayer> layers = Main.getLayerManager().getLayersOfType(ImageryLayer.class); 217 215 if (layers.isEmpty()) { 218 216 offsetAction.setEnabled(false); … … 239 237 240 238 @Override 241 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 242 // Do nothing 239 public void layerAdded(LayerAddEvent e) { 240 if (e.getAddedLayer() instanceof ImageryLayer) { 241 refreshOffsetMenu(); 242 } 243 243 } 244 244 245 245 @Override 246 public void layer Added(Layer newLayer) {247 if ( newLayerinstanceof ImageryLayer) {246 public void layerRemoving(LayerRemoveEvent e) { 247 if (e.getRemovedLayer() instanceof ImageryLayer) { 248 248 refreshOffsetMenu(); 249 249 } … … 251 251 252 252 @Override 253 public void layerRemoved(Layer oldLayer) { 254 if (oldLayer instanceof ImageryLayer) { 255 refreshOffsetMenu(); 256 } 253 public void layerOrderChanged(LayerOrderChangeEvent e) { 254 refreshOffsetMenu(); 257 255 } 258 256 -
trunk/src/org/openstreetmap/josm/gui/MainFrame.java
r10340 r10345 114 114 refreshTitle(); 115 115 } 116 } , false);116 }); 117 117 Main.getLayerManager().addLayerChangeListener(new ManageLayerListeners(), true); 118 118 -
trunk/src/org/openstreetmap/josm/gui/MainMenu.java
r10340 r10345 117 117 import org.openstreetmap.josm.gui.dialogs.MenuItemSearchDialog; 118 118 import org.openstreetmap.josm.gui.io.RecentlyOpenedFilesMenu; 119 import org.openstreetmap.josm.gui.layer.Layer; 119 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 120 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 120 121 import org.openstreetmap.josm.gui.mappaint.MapPaintMenu; 121 122 import org.openstreetmap.josm.gui.preferences.imagery.ImageryPreference; … … 822 823 windowMenu.addMenuListener(menuSeparatorHandler); 823 824 824 new PresetsMenuEnabler(presetsMenu) .refreshEnabled();825 new PresetsMenuEnabler(presetsMenu); 825 826 } 826 827 … … 886 887 } 887 888 888 static class PresetsMenuEnabler implements MapView.LayerChangeListener {889 static class PresetsMenuEnabler implements ActiveLayerChangeListener { 889 890 private final JMenu presetsMenu; 890 891 891 892 PresetsMenuEnabler(JMenu presetsMenu) { 892 MapView.addLayerChangeListener(this);893 893 this.presetsMenu = presetsMenu; 894 } 895 896 /** 897 * Refreshes the enabled state 898 */ 899 protected void refreshEnabled() { 900 presetsMenu.setEnabled(Main.main.hasEditLayer()); 894 Main.getLayerManager().addAndFireActiveLayerChangeListener(this); 901 895 } 902 896 903 897 @Override 904 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 905 refreshEnabled(); 906 } 907 908 @Override 909 public void layerAdded(Layer newLayer) { 910 refreshEnabled(); 911 } 912 913 @Override 914 public void layerRemoved(Layer oldLayer) { 915 refreshEnabled(); 916 } 917 } 918 898 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 899 presetsMenu.setEnabled(e.getSource().getEditLayer() != null); 900 } 901 } 919 902 } -
trunk/src/org/openstreetmap/josm/gui/MapFrame.java
r10271 r10345 38 38 import javax.swing.JToolBar; 39 39 import javax.swing.KeyStroke; 40 import javax.swing.SwingUtilities;41 40 import javax.swing.border.Border; 42 41 import javax.swing.event.PopupMenuEvent; … … 59 58 import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener; 60 59 import org.openstreetmap.josm.data.ViewportData; 61 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;62 60 import org.openstreetmap.josm.gui.dialogs.ChangesetDialog; 63 61 import org.openstreetmap.josm.gui.dialogs.CommandStackDialog; … … 77 75 import org.openstreetmap.josm.gui.layer.Layer; 78 76 import org.openstreetmap.josm.gui.layer.LayerManager; 77 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 78 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 79 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 80 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 81 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 82 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 79 83 import org.openstreetmap.josm.gui.util.AdvancedKeyPressDetector; 80 84 import org.openstreetmap.josm.tools.Destroyable; … … 90 94 * @author imi 91 95 */ 92 public class MapFrame extends JPanel implements Destroyable, LayerChangeListener { 96 public class MapFrame extends JPanel implements Destroyable, ActiveLayerChangeListener, LayerChangeListener { 93 97 94 98 /** … … 285 289 // status line below the map 286 290 statusLine = new MapStatus(this); 287 MapView.addLayerChangeListener(this); 291 Main.getLayerManager().addLayerChangeListener(this); 292 Main.getLayerManager().addActiveLayerChangeListener(this); 288 293 289 294 boolean unregisterTab = Shortcut.findShortcut(KeyEvent.VK_TAB, 0) != null; … … 329 334 @Override 330 335 public void destroy() { 331 MapView.removeLayerChangeListener(this); 336 Main.getLayerManager().removeLayerChangeListener(this); 337 Main.getLayerManager().removeActiveLayerChangeListener(this); 332 338 dialogsPanel.destroy(); 333 339 Main.pref.removePreferenceChangeListener(sidetoolbarPreferencesChangedListener); … … 757 763 758 764 @Override 759 public void activeLayerChange (Layer oldLayer, Layer newLayer) {765 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 760 766 boolean modeChanged = false; 767 Layer newLayer = e.getSource().getActiveLayer(); 761 768 if (mapMode == null || !mapMode.layerIsSupported(newLayer)) { 762 769 MapMode newMapMode = getLastMapMode(newLayer); … … 771 778 } 772 779 // if this is really a change (and not the first active layer) 773 if ( oldLayer!= null) {780 if (e.getPreviousActiveLayer() != null) { 774 781 if (!modeChanged && mapMode != null) { 775 782 // Let mapmodes know about new active layer … … 783 790 // After all listeners notice new layer, some buttons will be disabled/enabled 784 791 // and possibly need to be hidden/shown. 785 SwingUtilities.invokeLater(new Runnable() { 786 @Override public void run() { 787 validateToolBarsVisibility(); 788 } 789 }); 792 validateToolBarsVisibility(); 790 793 } 791 794 … … 803 806 804 807 @Override 805 public void layerAdded(Layer newLayer) {806 // Do nothing808 public void layerAdded(LayerAddEvent e) { 809 // ignored 807 810 } 808 811 809 812 @Override 810 public void layerRemoved(Layer oldLayer) { 811 lastMapMode.remove(oldLayer); 812 } 813 public void layerRemoving(LayerRemoveEvent e) { 814 lastMapMode.remove(e.getRemovedLayer()); 815 } 816 817 @Override 818 public void layerOrderChanged(LayerOrderChangeEvent e) { 819 // ignored 820 } 821 813 822 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
r10332 r10345 186 186 DefaultListSelectionModel selectionModel = new DefaultListSelectionModel(); 187 187 selectionModel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 188 model = new LayerListModel(selectionModel); 188 model = new LayerListModel(layerManager, selectionModel); 189 189 190 190 // create the list control 191 191 // 192 layerList = new LayerList(model , layerManager);192 layerList = new LayerList(model); 193 193 layerList.setSelectionModel(selectionModel); 194 194 layerList.addMouseListener(new PopupMenuHandler()); … … 330 330 @Override 331 331 public void showNotify() { 332 MapView.addLayerChangeListener(activateLayerAction);332 layerManager.addActiveLayerChangeListener(activateLayerAction); 333 333 layerManager.addLayerChangeListener(model); 334 334 layerManager.addAndFireActiveLayerChangeListener(model); … … 340 340 layerManager.removeLayerChangeListener(model); 341 341 layerManager.removeActiveLayerChangeListener(model); 342 MapView.removeLayerChangeListener(activateLayerAction);342 layerManager.removeActiveLayerChangeListener(activateLayerAction); 343 343 } 344 344 … … 649 649 private final CopyOnWriteArrayList<LayerListModelListener> listeners; 650 650 private LayerList layerList; 651 private final MainLayerManager layerManager; 651 652 652 653 /** 653 654 * constructor 654 * 655 * @param layerManager The layer manager to use for the list. 655 656 * @param selectionModel the list selection model 656 657 */ 657 LayerListModel(DefaultListSelectionModel selectionModel) { 658 LayerListModel(MainLayerManager layerManager, DefaultListSelectionModel selectionModel) { 659 this.layerManager = layerManager; 658 660 this.selectionModel = selectionModel; 659 661 listeners = new CopyOnWriteArrayList<>(); … … 664 666 } 665 667 666 private MainLayerManager getLayerManager() { 667 // layerList should never be null. But if it is, we should not crash. 668 if (layerList == null) { 669 return new MainLayerManager(); 670 } else { 671 return layerList.getLayerManager(); 672 } 668 /** 669 * The layer manager this model is for. 670 * @return The layer manager. 671 */ 672 public MainLayerManager getLayerManager() { 673 return layerManager; 673 674 } 674 675 … … 1125 1126 */ 1126 1127 static class LayerList extends JTable { 1127 private final transient MainLayerManager layerManager; 1128 1129 LayerList(LayerListModel dataModel, MainLayerManager layerManager) { 1128 1129 LayerList(LayerListModel dataModel) { 1130 1130 super(dataModel); 1131 this.layerManager = layerManager;1132 1131 dataModel.setLayerList(this); 1133 1132 } … … 1142 1141 viewport.scrollRectToVisible(rect); 1143 1142 } 1144 1145 /**1146 * Gets you the layer manager used for this list.1147 * @return The layer manager.1148 * @since 102881149 */1150 public MainLayerManager getLayerManager() {1151 return layerManager;1152 }1153 1143 } 1154 1144 -
trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java
r10162 r10345 39 39 import org.openstreetmap.josm.data.notes.NoteComment; 40 40 import org.openstreetmap.josm.data.osm.NoteData; 41 import org.openstreetmap.josm.gui.MapView;42 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;43 41 import org.openstreetmap.josm.gui.NoteInputDialog; 44 42 import org.openstreetmap.josm.gui.NoteSortDialog; 45 43 import org.openstreetmap.josm.gui.SideButton; 46 import org.openstreetmap.josm.gui.layer.Layer; 44 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 45 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 46 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 47 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 47 48 import org.openstreetmap.josm.gui.layer.NoteLayer; 48 49 import org.openstreetmap.josm.tools.ImageProvider; … … 99 100 uploadAction = new UploadNotesAction(); 100 101 buildDialog(); 101 Ma pView.addLayerChangeListener(this);102 Main.getLayerManager().addLayerChangeListener(this); 102 103 } 103 104 … … 170 171 171 172 @Override 172 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 173 // Do nothing 174 } 175 176 @Override 177 public void layerAdded(Layer newLayer) { 178 if (newLayer instanceof NoteLayer) { 179 noteData = ((NoteLayer) newLayer).getNoteData(); 173 public void layerAdded(LayerAddEvent e) { 174 if (e.getAddedLayer() instanceof NoteLayer) { 175 noteData = ((NoteLayer) e.getAddedLayer()).getNoteData(); 180 176 model.setData(noteData.getNotes()); 181 177 setNotes(noteData.getSortedNotes()); … … 184 180 185 181 @Override 186 public void layerRemov ed(Layer oldLayer) {187 if ( oldLayerinstanceof NoteLayer) {182 public void layerRemoving(LayerRemoveEvent e) { 183 if (e.getRemovedLayer() instanceof NoteLayer) { 188 184 noteData = null; 189 185 model.clearData(); … … 192 188 } 193 189 } 190 } 191 192 @Override 193 public void layerOrderChanged(LayerOrderChangeEvent e) { 194 // ignored 194 195 } 195 196 -
trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
r9136 r10345 35 35 import org.openstreetmap.josm.data.osm.OsmPrimitive; 36 36 import org.openstreetmap.josm.data.osm.User; 37 import org.openstreetmap.josm.gui.MapView;38 37 import org.openstreetmap.josm.gui.SideButton; 39 38 import org.openstreetmap.josm.gui.layer.Layer; 39 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 40 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 40 41 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 41 42 import org.openstreetmap.josm.gui.util.GuiHelper; … … 50 51 * 51 52 */ 52 public class UserListDialog extends ToggleDialog implements SelectionChangedListener, MapView.LayerChangeListener {53 public class UserListDialog extends ToggleDialog implements SelectionChangedListener, ActiveLayerChangeListener { 53 54 54 55 /** … … 72 73 public void showNotify() { 73 74 DataSet.addSelectionListener(this); 74 Ma pView.addLayerChangeListener(this);75 Main.getLayerManager().addActiveLayerChangeListener(this); 75 76 } 76 77 77 78 @Override 78 79 public void hideNotify() { 79 Ma pView.removeLayerChangeListener(this);80 Main.getLayerManager().removeActiveLayerChangeListener(this); 80 81 DataSet.removeSelectionListener(this); 81 82 } … … 113 114 114 115 @Override 115 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 116 if (newLayer instanceof OsmDataLayer) { 117 refresh(((OsmDataLayer) newLayer).data.getAllSelected()); 116 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 117 Layer activeLayer = e.getSource().getActiveLayer(); 118 if (activeLayer instanceof OsmDataLayer) { 119 refresh(((OsmDataLayer) activeLayer).data.getAllSelected()); 118 120 } else { 119 121 refresh(null); 120 122 } 121 }122 123 @Override124 public void layerAdded(Layer newLayer) {125 // do nothing126 }127 128 @Override129 public void layerRemoved(Layer oldLayer) {130 // do nothing131 123 } 132 124 -
trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
r9078 r10345 42 42 import org.openstreetmap.josm.data.validation.TestError; 43 43 import org.openstreetmap.josm.data.validation.ValidatorVisitor; 44 import org.openstreetmap.josm.gui.MapView;45 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;46 44 import org.openstreetmap.josm.gui.PleaseWaitRunnable; 47 45 import org.openstreetmap.josm.gui.PopupMenuHandler; 48 46 import org.openstreetmap.josm.gui.SideButton; 49 47 import org.openstreetmap.josm.gui.dialogs.validator.ValidatorTreePanel; 50 import org.openstreetmap.josm.gui.layer.Layer; 48 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 49 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 51 50 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 52 51 import org.openstreetmap.josm.gui.preferences.validator.ValidatorPreference; … … 66 65 * @author frsantos 67 66 */ 68 public class ValidatorDialog extends ToggleDialog implements SelectionChangedListener, LayerChangeListener { 67 public class ValidatorDialog extends ToggleDialog implements SelectionChangedListener, ActiveLayerChangeListener { 69 68 70 69 /** The display tree */ … … 179 178 updateSelection(ds.getAllSelected()); 180 179 } 181 MapView.addLayerChangeListener(this); 182 Layer activeLayer = Main.map.mapView.getActiveLayer(); 183 if (activeLayer != null) { 184 activeLayerChange(null, activeLayer); 185 } 180 Main.getLayerManager().addAndFireActiveLayerChangeListener(this); 186 181 } 187 182 188 183 @Override 189 184 public void hideNotify() { 190 Ma pView.removeLayerChangeListener(this);185 Main.getLayerManager().removeActiveLayerChangeListener(this); 191 186 DataSet.removeSelectionListener(this); 192 187 } … … 407 402 408 403 @Override 409 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 410 if (newLayer instanceof OsmDataLayer) { 411 linkedLayer = (OsmDataLayer) newLayer; 412 tree.setErrorList(linkedLayer.validationErrors); 413 } 414 } 415 416 @Override 417 public void layerAdded(Layer newLayer) { 418 // Do nothing 419 } 420 421 @Override 422 public void layerRemoved(Layer oldLayer) { 423 if (oldLayer == linkedLayer) { 404 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 405 OsmDataLayer editLayer = e.getSource().getEditLayer(); 406 if (editLayer == null) { 424 407 tree.setErrorList(new ArrayList<TestError>()); 408 } else { 409 tree.setErrorList(editLayer.validationErrors); 425 410 } 426 411 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/layer/ActivateLayerAction.java
r10144 r10345 10 10 import javax.swing.AbstractAction; 11 11 12 import org.openstreetmap.josm.Main;13 import org.openstreetmap.josm.gui.MapView;14 12 import org.openstreetmap.josm.gui.dialogs.LayerListDialog; 15 13 import org.openstreetmap.josm.gui.dialogs.LayerListDialog.LayerListModel; 16 14 import org.openstreetmap.josm.gui.help.HelpUtil; 17 15 import org.openstreetmap.josm.gui.layer.Layer; 16 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 17 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 18 18 import org.openstreetmap.josm.gui.util.GuiHelper; 19 19 import org.openstreetmap.josm.tools.CheckParameterUtil; … … 26 26 */ 27 27 public final class ActivateLayerAction extends AbstractAction 28 implements IEnabledStateUpdating, MapView.LayerChangeListener, MultikeyShortcutAction {28 implements IEnabledStateUpdating, ActiveLayerChangeListener, MultikeyShortcutAction { 29 29 private transient Layer layer; 30 30 private transient Shortcut multikeyShortcut; … … 77 77 private void execute(Layer layer) { 78 78 // model is going to be updated via LayerChangeListener and PropertyChangeEvents 79 Main.map.mapView.setActiveLayer(layer);79 model.getLayerManager().setActiveLayer(layer); 80 80 layer.setVisible(true); 81 81 } 82 82 83 protected boolean isActiveLayer(Layer layer) { 84 if (!Main.isDisplayingMapView()) 85 return false; 86 return Main.map.mapView.getActiveLayer() == layer; 83 boolean isActiveLayer(Layer layer) { 84 return model.getLayerManager().getActiveLayer() == layer; 87 85 } 88 86 … … 106 104 107 105 @Override 108 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 109 updateEnabledState(); 110 } 111 112 @Override 113 public void layerAdded(Layer newLayer) { 114 updateEnabledState(); 115 } 116 117 @Override 118 public void layerRemoved(Layer oldLayer) { 106 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 119 107 updateEnabledState(); 120 108 } … … 137 125 return null; // Repeating action doesn't make much sense for activating 138 126 } 127 139 128 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
r10332 r10345 618 618 super.destroy(); 619 619 Main.pref.removePreferenceChangeListener(this); 620 for (JosmAction action : josmActions) {621 action.destroy();622 }623 620 Container parent = pluginHook.getParent(); 624 621 if (parent != null) { -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationDialogManager.java
r9371 r10345 11 11 import java.util.Objects; 12 12 13 import org.openstreetmap.josm.Main; 13 14 import org.openstreetmap.josm.data.osm.Relation; 14 import org.openstreetmap.josm.gui.MapView;15 15 import org.openstreetmap.josm.gui.layer.Layer; 16 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 17 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 18 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 19 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 16 20 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 17 21 … … 20 24 * 21 25 */ 22 public class RelationDialogManager extends WindowAdapter implements MapView.LayerChangeListener {26 public class RelationDialogManager extends WindowAdapter implements LayerChangeListener { 23 27 24 28 /** keeps track of open relation editors */ … … 33 37 if (RelationDialogManager.relationDialogManager == null) { 34 38 RelationDialogManager.relationDialogManager = new RelationDialogManager(); 35 Ma pView.addLayerChangeListener(RelationDialogManager.relationDialogManager);39 Main.getLayerManager().addLayerChangeListener(RelationDialogManager.relationDialogManager); 36 40 } 37 41 return RelationDialogManager.relationDialogManager; … … 167 171 } 168 172 169 /** 170 * called when a layer is removed 171 * 172 */ 173 @Override 174 public void layerRemoved(Layer oldLayer) { 173 @Override 174 public void layerRemoving(LayerRemoveEvent e) { 175 Layer oldLayer = e.getRemovedLayer(); 175 176 if (!(oldLayer instanceof OsmDataLayer)) 176 177 return; … … 190 191 191 192 @Override 192 public void activeLayerChange(Layer oldLayer, Layer newLayer) {193 // do nothing194 } 195 196 @Override 197 public void layer Added(LayernewLayer) {198 // do nothing193 public void layerAdded(LayerAddEvent e) { 194 // ignore 195 } 196 197 @Override 198 public void layerOrderChanged(LayerOrderChangeEvent e) { 199 // ignore 199 200 } 200 201 -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java
r10089 r10345 11 11 import org.openstreetmap.josm.data.osm.DataSet; 12 12 import org.openstreetmap.josm.data.osm.OsmPrimitive; 13 import org.openstreetmap.josm.gui.MapView; 14 import org.openstreetmap.josm.gui.layer.Layer; 13 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 14 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 15 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 16 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 17 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 18 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 15 19 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 16 20 import org.openstreetmap.josm.tools.CheckParameterUtil; 17 21 18 public class SelectionTableModel extends AbstractTableModel implements SelectionChangedListener, MapView.LayerChangeListener {22 public class SelectionTableModel extends AbstractTableModel implements SelectionChangedListener, ActiveLayerChangeListener, LayerChangeListener { 19 23 20 24 /** this selection table model only displays selected primitives in this layer */ … … 40 44 public void register() { 41 45 DataSet.addSelectionListener(this); 42 Ma pView.addLayerChangeListener(this);46 Main.getLayerManager().addActiveLayerChangeListener(this); 43 47 } 44 48 … … 48 52 public void unregister() { 49 53 DataSet.removeSelectionListener(this); 50 Ma pView.removeLayerChangeListener(this);54 Main.getLayerManager().removeActiveLayerChangeListener(this); 51 55 } 52 56 … … 69 73 70 74 @Override 71 public void activeLayerChange (Layer oldLayer, Layer newLayer) {72 if ( oldLayer== layer) {75 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 76 if (e.getPreviousActiveLayer() == layer) { 73 77 cache.clear(); 74 78 } 75 if ( newLayer== layer) {76 cache.addAll( ((OsmDataLayer) newLayer).data.getAllSelected());79 if (e.getSource().getActiveLayer() == layer) { 80 cache.addAll(layer.data.getAllSelected()); 77 81 } 78 82 fireTableDataChanged(); … … 80 84 81 85 @Override 82 public void layerAdded(Layer newLayer) {86 public void layerAdded(LayerAddEvent e) { 83 87 // do nothing 84 88 } 85 89 86 90 @Override 87 public void layerRemov ed(Layer oldLayer) {88 if ( oldLayer== layer) {91 public void layerRemoving(LayerRemoveEvent e) { 92 if (e.getRemovedLayer() == layer) { 89 93 unregister(); 90 94 } 91 95 this.cache.clear(); 92 96 fireTableDataChanged(); 97 } 98 99 @Override 100 public void layerOrderChanged(LayerOrderChangeEvent e) { 101 // do nothing 93 102 } 94 103 … … 128 137 return cache.get(row); 129 138 } 139 130 140 } -
trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java
r10212 r10345 22 22 import org.openstreetmap.josm.data.osm.history.History; 23 23 import org.openstreetmap.josm.data.osm.history.HistoryDataSet; 24 import org.openstreetmap.josm.gui.MapView; 25 import org.openstreetmap.josm.gui.layer.Layer; 24 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 25 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 26 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 27 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 26 28 import org.openstreetmap.josm.tools.Predicate; 27 29 import org.openstreetmap.josm.tools.Utils; … … 33 35 * @since 2019 34 36 */ 35 public final class HistoryBrowserDialogManager implements MapView.LayerChangeListener {37 public final class HistoryBrowserDialogManager implements LayerChangeListener { 36 38 37 39 private static final String WINDOW_GEOMETRY_PREF = HistoryBrowserDialogManager.class.getName() + ".geometry"; … … 54 56 protected HistoryBrowserDialogManager() { 55 57 dialogs = new HashMap<>(); 56 Ma pView.addLayerChangeListener(this);58 Main.getLayerManager().addLayerChangeListener(this); 57 59 } 58 60 … … 153 155 /* ----------------------------------------------------------------------------- */ 154 156 @Override 155 public void activeLayerChange(Layer oldLayer, Layer newLayer) {157 public void layerAdded(LayerAddEvent e) { 156 158 // Do nothing 157 159 } 158 160 159 161 @Override 160 public void layerAdded(Layer newLayer) { 162 public void layerRemoving(LayerRemoveEvent e) { 163 // remove all history browsers if the number of layers drops to 0 164 if (e.getSource().getLayers().isEmpty()) { 165 hideAll(); 166 } 167 } 168 169 @Override 170 public void layerOrderChanged(LayerOrderChangeEvent e) { 161 171 // Do nothing 162 }163 164 @Override165 public void layerRemoved(Layer oldLayer) {166 // remove all history browsers if the number of layers drops to 0167 if (Main.isDisplayingMapView() && Main.map.mapView.getNumLayers() == 0) {168 hideAll();169 }170 172 } 171 173 -
trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
r10308 r10345 41 41 import org.openstreetmap.josm.data.osm.visitor.AbstractVisitor; 42 42 import org.openstreetmap.josm.gui.JosmUserIdentityManager; 43 import org.openstreetmap.josm.gui.MapView;44 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;45 43 import org.openstreetmap.josm.gui.layer.Layer; 44 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 45 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 46 46 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 47 47 import org.openstreetmap.josm.gui.util.ChangeNotifier; … … 74 74 * @see HistoryBrowser 75 75 */ 76 public class HistoryBrowserModel extends ChangeNotifier implements LayerChangeListener, DataSetListener { 76 public class HistoryBrowserModel extends ChangeNotifier implements ActiveLayerChangeListener, DataSetListener { 77 77 /** the history of an OsmPrimitive */ 78 78 private History history; … … 111 111 } 112 112 } 113 Ma pView.addLayerChangeListener(this);113 Main.getLayerManager().addActiveLayerChangeListener(this); 114 114 } 115 115 … … 670 670 editLayer.data.removeDataSetListener(this); 671 671 } 672 Ma pView.removeLayerChangeListener(this);672 Main.getLayerManager().removeActiveLayerChangeListener(this); 673 673 } 674 674 … … 747 747 748 748 /* ---------------------------------------------------------------------- */ 749 /* LayerChangeListener 749 /* ActiveLayerChangeListener */ 750 750 /* ---------------------------------------------------------------------- */ 751 751 @Override 752 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 752 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 753 Layer oldLayer = e.getPreviousActiveLayer(); 753 754 if (oldLayer instanceof OsmDataLayer) { 754 755 OsmDataLayer l = (OsmDataLayer) oldLayer; 755 756 l.data.removeDataSetListener(this); 756 757 } 758 Layer newLayer = e.getSource().getActiveLayer(); 757 759 if (!(newLayer instanceof OsmDataLayer)) { 758 760 latest = null; … … 773 775 } 774 776 775 @Override776 public void layerAdded(Layer newLayer) {777 // Do nothing778 }779 780 @Override781 public void layerRemoved(Layer oldLayer) {782 // Do nothing783 }784 785 777 /** 786 778 * Creates a {@link HistoryOsmPrimitive} from a {@link OsmPrimitive} … … 825 817 } 826 818 } 819 827 820 } -
trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
r10300 r10345 78 78 import org.openstreetmap.josm.gui.MapFrame; 79 79 import org.openstreetmap.josm.gui.MapView; 80 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;81 80 import org.openstreetmap.josm.gui.NavigatableComponent.ZoomChangeListener; 82 81 import org.openstreetmap.josm.gui.PleaseWaitRunnable; 83 82 import org.openstreetmap.josm.gui.dialogs.LayerListDialog; 84 83 import org.openstreetmap.josm.gui.dialogs.LayerListPopup; 84 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 85 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 86 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 87 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 85 88 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 86 89 import org.openstreetmap.josm.gui.util.GuiHelper; … … 164 167 setBackgroundLayer(true); 165 168 this.setVisible(true); 166 MapView.addZoomChangeListener(this);167 169 } 168 170 … … 626 628 } 627 629 }; 628 Main.map.mapView.addMouseListener(adapter); 629 630 MapView.addLayerChangeListener(new LayerChangeListener() { 630 Main.getLayerManager().addLayerChangeListener(new LayerChangeListener() { 631 631 632 @Override 632 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 633 // 633 public void layerRemoving(LayerRemoveEvent e) { 634 if (e.getRemovedLayer() == AbstractTileSourceLayer.this) { 635 Main.map.mapView.removeMouseListener(adapter); 636 e.getSource().removeLayerChangeListener(this); 637 MapView.removeZoomChangeListener(AbstractTileSourceLayer.this); 638 } 634 639 } 635 640 636 641 @Override 637 public void layer Added(LayernewLayer) {638 // 642 public void layerOrderChanged(LayerOrderChangeEvent e) { 643 // ignored 639 644 } 640 645 641 646 @Override 642 public void layerRemoved(Layer oldLayer) { 643 if (oldLayer == AbstractTileSourceLayer.this) { 644 Main.map.mapView.removeMouseListener(adapter); 645 MapView.removeLayerChangeListener(this); 646 MapView.removeZoomChangeListener(AbstractTileSourceLayer.this); 647 public void layerAdded(LayerAddEvent e) { 648 if (e.getAddedLayer() == AbstractTileSourceLayer.this) { 649 Main.map.mapView.addMouseListener(adapter); 650 MapView.addZoomChangeListener(AbstractTileSourceLayer.this); 647 651 } 648 652 } 649 653 }); 650 651 654 // FIXME: why do we need this? Without this, if you add a WMS layer and do not move the mouse, sometimes, tiles do not 652 655 // start loading. -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
r10001 r10345 23 23 24 24 import org.openstreetmap.josm.Main; 25 import org.openstreetmap.josm.gui.MapView;26 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;27 25 import org.openstreetmap.josm.gui.dialogs.DialogsPanel.Action; 28 26 import org.openstreetmap.josm.gui.dialogs.ToggleDialog; 29 27 import org.openstreetmap.josm.gui.layer.Layer; 28 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; 29 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; 30 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; 31 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; 32 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 33 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 30 34 import org.openstreetmap.josm.tools.ImageProvider; 31 35 import org.openstreetmap.josm.tools.Shortcut; 32 36 import org.openstreetmap.josm.tools.date.DateUtils; 33 37 34 public final class ImageViewerDialog extends ToggleDialog implements LayerChangeListener { 38 public final class ImageViewerDialog extends ToggleDialog implements LayerChangeListener, ActiveLayerChangeListener { 35 39 36 40 private static final String COMMAND_ZOOM = "zoom"; … … 76 80 tr("Tool: {0}", tr("Display geotagged images")), KeyEvent.VK_Y, Shortcut.DIRECT), 200); 77 81 build(); 78 MapView.addLayerChangeListener(this); 82 Main.getLayerManager().addActiveLayerChangeListener(this); 83 Main.getLayerManager().addLayerChangeListener(this); 79 84 } 80 85 … … 196 201 @Override 197 202 public void destroy() { 198 MapView.removeLayerChangeListener(this); 203 Main.getLayerManager().removeActiveLayerChangeListener(this); 204 Main.getLayerManager().removeLayerChangeListener(this); 199 205 super.destroy(); 200 206 } … … 410 416 411 417 @Override 412 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 418 public void layerAdded(LayerAddEvent e) { 419 showLayer(e.getAddedLayer()); 420 } 421 422 @Override 423 public void layerRemoving(LayerRemoveEvent e) { 424 // Clear current image and layer if current layer is deleted 425 if (currentLayer != null && currentLayer.equals(e.getRemovedLayer())) { 426 showImage(null, null); 427 } 428 // Check buttons state in case of layer merging 429 if (currentLayer != null && e.getRemovedLayer() instanceof GeoImageLayer) { 430 currentLayer.checkPreviousNextButtons(); 431 } 432 } 433 434 @Override 435 public void layerOrderChanged(LayerOrderChangeEvent e) { 436 // ignored 437 } 438 439 @Override 440 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 441 showLayer(e.getSource().getActiveLayer()); 442 } 443 444 private void showLayer(Layer newLayer) { 413 445 if (currentLayer == null && newLayer instanceof GeoImageLayer) { 414 446 ((GeoImageLayer) newLayer).showFirstPhoto(); … … 416 448 } 417 449 418 @Override419 public void layerAdded(Layer newLayer) {420 if (currentLayer == null && newLayer instanceof GeoImageLayer) {421 ((GeoImageLayer) newLayer).showFirstPhoto();422 }423 }424 425 @Override426 public void layerRemoved(Layer oldLayer) {427 // Clear current image and layer if current layer is deleted428 if (currentLayer != null && currentLayer.equals(oldLayer)) {429 showImage(null, null);430 }431 // Check buttons state in case of layer merging432 if (currentLayer != null && oldLayer instanceof GeoImageLayer) {433 currentLayer.checkPreviousNextButtons();434 }435 }436 450 } -
trunk/src/org/openstreetmap/josm/io/FileExporter.java
r6830 r10345 8 8 9 9 import org.openstreetmap.josm.actions.ExtensionFileFilter; 10 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;11 10 import org.openstreetmap.josm.gui.layer.Layer; 11 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 12 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 12 13 13 public abstract class FileExporter implements LayerChangeListener { 14 public abstract class FileExporter implements ActiveLayerChangeListener { 14 15 15 16 public final ExtensionFileFilter filter; … … 54 55 55 56 @Override 56 public void activeLayerChange (Layer oldLayer, Layer newLayer) {57 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 57 58 // To be overriden by subclasses if their enabled state depends of the active layer nature 58 }59 60 @Override61 public void layerAdded(Layer newLayer) {62 // To be overriden by subclasses if needed63 }64 65 @Override66 public void layerRemoved(Layer oldLayer) {67 // To be overriden by subclasses if needed68 59 } 69 60 -
trunk/src/org/openstreetmap/josm/io/WMSLayerExporter.java
r8526 r10345 12 12 import org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer; 13 13 import org.openstreetmap.josm.gui.layer.Layer; 14 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 14 15 import org.openstreetmap.josm.tools.CheckParameterUtil; 15 16 … … 44 45 } 45 46 } 46 47 47 } 48 48 49 49 @Override 50 public void activeLayerChange (Layer oldLayer, Layer newLayer) {51 setEnabled( newLayerinstanceof AbstractTileSourceLayer);50 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 51 setEnabled(e.getSource().getActiveLayer() instanceof AbstractTileSourceLayer); 52 52 } 53 53 }
Note:
See TracChangeset
for help on using the changeset viewer.