Changeset 10508 in josm for trunk/src/org/openstreetmap/josm/gui/MainPanel.java
- Timestamp:
- 2016-07-03T18:26:16+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/MainPanel.java
r10444 r10508 7 7 8 8 import javax.swing.JPanel; 9 import javax.swing.SwingUtilities;10 9 11 10 import org.openstreetmap.josm.Main; 12 11 import org.openstreetmap.josm.actions.mapmode.MapMode; 13 12 import org.openstreetmap.josm.gui.layer.Layer; 14 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;15 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;16 import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;17 import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;18 13 import org.openstreetmap.josm.gui.layer.MainLayerManager; 14 import org.openstreetmap.josm.gui.layer.MainLayerManager.LayerAvailabilityEvent; 15 import org.openstreetmap.josm.gui.layer.MainLayerManager.LayerAvailabilityListener; 19 16 import org.openstreetmap.josm.gui.util.GuiHelper; 20 17 … … 45 42 /** 46 43 * Update the content of this {@link MainFrame} to either display the map or display the welcome screen. 44 * @param showMap If the map should be displayed. 47 45 */ 48 protected void updateContent() { 46 protected void updateContent(boolean showMap) { 49 47 GuiHelper.assertCallFromEdt(); 50 48 MapFrame old = map; 51 boolean showMap = !layerManager.getLayers().isEmpty();52 49 if (old != null && showMap) { 53 50 // no state change … … 155 152 */ 156 153 public void reAddListeners() { 157 layerManager.addLayer ChangeListener(new LayerChangeListener() {154 layerManager.addLayerAvailabilityListener(new LayerAvailabilityListener() { 158 155 @Override 159 public void layerAdded(LayerAddEvent e) {160 updateContent(); 156 public void beforeFirstLayerAdded(LayerAvailabilityEvent e) { 157 updateContent(true); 161 158 } 162 159 163 160 @Override 164 public void layerRemoving(final LayerRemoveEvent e) { 165 // Delay main.map removal until after all listeners are finished. 166 // Some components rely on this and e.g. get the MapView that way. 167 SwingUtilities.invokeLater(new Runnable() { 168 @Override 169 public void run() { 170 updateContent(); 171 } 172 }); 161 public void afterLastLayerRemoved(LayerAvailabilityEvent e) { 162 updateContent(false); 173 163 } 174 164 }); 165 GuiHelper.runInEDTAndWait(new Runnable() { 175 166 @Override 176 public void layerOrderChanged(LayerOrderChangeEvent e) {177 // ignored167 public void run() { 168 updateContent(!layerManager.getLayers().isEmpty()); 178 169 } 179 170 });
Note:
See TracChangeset
for help on using the changeset viewer.
