Changeset 845 in josm


Ignore:
Timestamp:
Aug 22, 2008 9:25:28 PM (5 years ago)
Author:
stoecker
Message:

Prevent editing inactive layer. Fix layer oder and display order. Closes #371

Location:
trunk/src/org/openstreetmap/josm
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java

    r804 r845  
    124124         */ 
    125125        public void eventDispatched(AWTEvent event) { 
     126                if(!Main.map.mapView.isDrawableLayer()) 
     127                        return; 
    126128                InputEvent e = (InputEvent) event; 
    127129                ctrl = (e.getModifiers() & ActionEvent.CTRL_MASK) != 0; 
     
    134136         */ 
    135137        public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) { 
     138                if(!Main.map.mapView.isDrawableLayer()) 
     139                        return; 
    136140                computeHelperLine(); 
    137141        } 
     
    146150 
    147151                if (e.getButton() != MouseEvent.BUTTON1) 
     152                        return; 
     153                if(!Main.map.mapView.isDrawableLayer()) 
    148154                        return; 
    149155 
     
    331337         
    332338        @Override public void mouseMoved(MouseEvent e) { 
     339                if(!Main.map.mapView.isDrawableLayer()) 
     340                        return; 
    333341 
    334342                // we copy ctrl/alt/shift from the event just in case our global 
     
    441449         */ 
    442450        @Override public void mouseExited(MouseEvent e) { 
     451                if(!Main.map.mapView.isDrawableLayer()) 
     452                        return; 
    443453                mousePos = e.getPoint(); 
    444454                Main.map.mapView.repaint(); 
  • trunk/src/org/openstreetmap/josm/gui/MapView.java

    r811 r845  
    172172                for (Layer.LayerChangeListener l : Layer.listeners) 
    173173                        l.layerAdded(layer); 
    174                 // autoselect the new layer 
    175                 Layer old = activeLayer; 
    176                 setActiveLayer(layer); 
    177                 for (Layer.LayerChangeListener l : Layer.listeners) 
    178                         l.activeLayerChange(old, layer); 
     174                if (layer instanceof OsmDataLayer) { 
     175                        // autoselect the new layer 
     176                        Layer old = activeLayer; 
     177                        setActiveLayer(layer); 
     178                        for (Layer.LayerChangeListener l : Layer.listeners) 
     179                                l.activeLayerChange(old, layer); 
     180                } 
    179181                repaint(); 
     182        } 
     183 
     184        @Override 
     185        protected DataSet getData() 
     186        { 
     187                if(activeLayer != null && activeLayer instanceof OsmDataLayer) 
     188                        return ((OsmDataLayer)activeLayer).data; 
     189                return new DataSet(); 
     190        } 
     191 
     192        public Boolean isDrawableLayer() 
     193        { 
     194                return activeLayer != null && activeLayer instanceof OsmDataLayer; 
    180195        } 
    181196 
     
    251266                for (int i = layers.size()-1; i >= 0; --i) { 
    252267                        Layer l = layers.get(i); 
    253                         if (l.visible && l != getActiveLayer()) 
     268                        if (l.visible/* && l != getActiveLayer()*/) 
    254269                                l.paint(tempG, this); 
    255270                } 
    256                  
    257                 if (getActiveLayer() != null && getActiveLayer().visible) 
    258                         getActiveLayer().paint(tempG, this); 
     271 
     272                /*if (getActiveLayer() != null && getActiveLayer().visible) 
     273                        getActiveLayer().paint(tempG, this);*/ 
    259274 
    260275                for (MapViewPaintable mvp : temporaryLayers) { 
     
    353368                        editLayer = (OsmDataLayer)layer; 
    354369                        Main.ds = editLayer.data; 
    355                         DataSet.fireSelectionChanged(Main.ds.getSelected()); 
    356                 } 
     370                } 
     371                else 
     372                        Main.ds.setSelected(); 
     373                DataSet.fireSelectionChanged(Main.ds.getSelected()); 
    357374                Layer old = activeLayer; 
    358375                activeLayer = layer; 
  • trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java

    r805 r845  
    1818import org.openstreetmap.josm.data.coor.EastNorth; 
    1919import org.openstreetmap.josm.data.coor.LatLon; 
     20import org.openstreetmap.josm.data.osm.DataSet; 
    2021import org.openstreetmap.josm.data.osm.Node; 
    2122import org.openstreetmap.josm.data.osm.OsmPrimitive; 
     
    4950        public NavigatableComponent() { 
    5051                setLayout(null); 
    51     } 
     52        } 
     53 
     54        protected DataSet getData() 
     55        { 
     56                return Main.ds; 
     57        } 
    5258 
    5359        /** 
     
    137143                double minDistanceSq = Double.MAX_VALUE; 
    138144                Node minPrimitive = null; 
    139                 for (Node n : Main.ds.nodes) { 
     145                for (Node n : getData().nodes) { 
    140146                        if (n.deleted || n.incomplete) 
    141147                                continue; 
     
    163169        public final List<WaySegment> getNearestWaySegments(Point p) { 
    164170                TreeMap<Double, List<WaySegment>> nearest = new TreeMap<Double, List<WaySegment>>(); 
    165                 for (Way w : Main.ds.ways) { 
     171                for (Way w : getData().ways) { 
    166172                        if (w.deleted || w.incomplete) continue; 
    167173                        Node lastN = null; 
     
    273279        public Collection<OsmPrimitive> getAllNearest(Point p) { 
    274280                Collection<OsmPrimitive> nearest = new HashSet<OsmPrimitive>(); 
    275                         for (Way w : Main.ds.ways) { 
     281                        for (Way w : getData().ways) { 
    276282                        if (w.deleted || w.incomplete) continue; 
    277283                        Node lastN = null; 
     
    295301                                } 
    296302                        } 
    297                 for (Node n : Main.ds.nodes) { 
     303                for (Node n : getData().nodes) { 
    298304                        if (!n.deleted && !n.incomplete 
    299305                                        && getPoint(n.eastNorth).distanceSq(p) < snapDistance) { 
     
    314320        public Collection<Node> getNearestNodes(Point p) { 
    315321                Collection<Node> nearest = new HashSet<Node>(); 
    316                 for (Node n : Main.ds.nodes) { 
     322                for (Node n : getData().nodes) { 
    317323                        if (!n.deleted && !n.incomplete 
    318324                                        && getPoint(n.eastNorth).distanceSq(p) < snapDistance) { 
  • trunk/src/org/openstreetmap/josm/gui/SelectionManager.java

    r655 r845  
    285285                } else { 
    286286                        // nodes 
    287                         for (Node n : Main.ds.nodes) { 
     287                        for (Node n : nc.getData().nodes) { 
    288288                                if (!n.deleted && !n.incomplete && r.contains(nc.getPoint(n.eastNorth))) 
    289289                                        selection.add(n); 
     
    291291                         
    292292                        // ways 
    293                         for (Way w : Main.ds.ways) { 
     293                        for (Way w : nc.getData().ways) { 
    294294                                if (w.deleted || w.nodes.isEmpty() || w.incomplete) 
    295295                                                continue; 
  • trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java

    r745 r845  
    288288         */ 
    289289        public void layerAdded(Layer newLayer) { 
    290                 model.add(0, newLayer); 
     290                model.add(model.size(), newLayer); 
    291291                updateButtonEnabled(); 
    292292        } 
Note: See TracChangeset for help on using the changeset viewer.