Changeset 5297 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
- Timestamp:
- 2012-06-24T19:14:38+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
r5275 r5297 63 63 import org.openstreetmap.josm.gui.layer.Layer.LayerAction; 64 64 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 65 import org.openstreetmap.josm.gui.util.GuiHelper; 65 66 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher; 66 67 import org.openstreetmap.josm.tools.CheckParameterUtil; … … 704 705 @Override 705 706 public void updateEnabledState() { 706 if (layer == null) { 707 if (getModel().getSelectedLayers().size() != 1) { 708 setEnabled(false); 709 return; 710 } 711 Layer selectedLayer = getModel().getSelectedLayers().get(0); 712 setEnabled(!isActiveLayer(selectedLayer)); 713 } else { 714 setEnabled(!isActiveLayer(layer)); 715 } 707 GuiHelper.runInEDT(new Runnable() { 708 @Override 709 public void run() { 710 if (layer == null) { 711 if (getModel().getSelectedLayers().size() != 1) { 712 setEnabled(false); 713 return; 714 } 715 Layer selectedLayer = getModel().getSelectedLayers().get(0); 716 setEnabled(!isActiveLayer(selectedLayer)); 717 } else { 718 setEnabled(!isActiveLayer(layer)); 719 } 720 } 721 }); 716 722 } 717 723 … … 1255 1261 return; 1256 1262 layer.removePropertyChangeListener(this); 1257 int size = getRowCount(); 1258 List<Integer> rows = getSelectedRows(); 1259 if (rows.isEmpty() && size > 0) { 1260 selectionModel.setSelectionInterval(size-1, size-1); 1261 } 1262 fireTableDataChanged(); 1263 fireRefresh(); 1264 ensureActiveSelected(); 1263 final int size = getRowCount(); 1264 final List<Integer> rows = getSelectedRows(); 1265 GuiHelper.runInEDTAndWait(new Runnable() { 1266 @Override 1267 public void run() { 1268 if (rows.isEmpty() && size > 0) { 1269 selectionModel.setSelectionInterval(size-1, size-1); 1270 } 1271 fireTableDataChanged(); 1272 fireRefresh(); 1273 ensureActiveSelected(); 1274 } 1275 }); 1265 1276 } 1266 1277 … … 1426 1437 if (getLayers().isEmpty()) 1427 1438 return; 1428 if (getActiveLayer() != null) { 1439 final Layer activeLayer = getActiveLayer(); 1440 if (activeLayer != null) { 1429 1441 // there's an active layer - select it and make it 1430 1442 // visible 1431 int idx = getLayers().indexOf( getActiveLayer());1443 int idx = getLayers().indexOf(activeLayer); 1432 1444 selectionModel.setSelectionInterval(idx, idx); 1433 1445 ensureSelectedIsVisible(); … … 1506 1518 /* ------------------------------------------------------------------------------ */ 1507 1519 @Override 1508 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 1509 if (oldLayer != null) { 1510 int idx = getLayers().indexOf(oldLayer); 1511 if (idx >= 0) { 1512 fireTableRowsUpdated(idx,idx); 1513 } 1514 } 1515 1516 if (newLayer != null) { 1517 int idx = getLayers().indexOf(newLayer); 1518 if (idx >= 0) { 1519 fireTableRowsUpdated(idx,idx); 1520 } 1521 } 1522 ensureActiveSelected(); 1520 public void activeLayerChange(final Layer oldLayer, final Layer newLayer) { 1521 GuiHelper.runInEDTAndWait(new Runnable() { 1522 @Override 1523 public void run() { 1524 if (oldLayer != null) { 1525 int idx = getLayers().indexOf(oldLayer); 1526 if (idx >= 0) { 1527 fireTableRowsUpdated(idx,idx); 1528 } 1529 } 1530 1531 if (newLayer != null) { 1532 int idx = getLayers().indexOf(newLayer); 1533 if (idx >= 0) { 1534 fireTableRowsUpdated(idx,idx); 1535 } 1536 } 1537 ensureActiveSelected(); 1538 } 1539 }); 1523 1540 } 1524 1541
Note:
See TracChangeset
for help on using the changeset viewer.