Changeset 845 in josm for trunk/src


Ignore:
Timestamp:
2008-08-22T21:25:28+02:00 (16 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.