Ignore:
Timestamp:
2008-04-17T03:03:28+02:00 (16 years ago)
Author:
framm
Message:
  • new extrude mode allows creation of rectangular shapes
  • new AlignInRectangle function
  • additional information in status bar about length, heading, and angle of segment being drawn
  • helper line from last node to mouse cursor (disable with edit.helper-line=false)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/MapView.java

    r582 r608  
    1 // License: GPL. Copyright 2007 by Immanuel Scholz and others
     1// License: GPL. See LICENSE file for details.
     2
    23package org.openstreetmap.josm.gui;
    34
     
    2324import org.openstreetmap.josm.actions.MoveAction;
    2425import org.openstreetmap.josm.data.Bounds;
     26import org.openstreetmap.josm.data.Preferences;
    2527import org.openstreetmap.josm.data.SelectionChangedListener;
    2628import org.openstreetmap.josm.data.coor.EastNorth;
     
    2931import org.openstreetmap.josm.data.osm.OsmPrimitive;
    3032import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    31 import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
    3233import org.openstreetmap.josm.data.projection.Projection;
    3334import org.openstreetmap.josm.gui.layer.Layer;
     35import org.openstreetmap.josm.gui.layer.MapViewPaintable;
    3436import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    3537import org.openstreetmap.josm.gui.layer.OsmDataLayer.ModifiedChangedListener;
     
    7981        private Layer activeLayer;
    8082       
     83        private LinkedList<MapViewPaintable> temporaryLayers = new LinkedList<MapViewPaintable>();
     84       
    8185        /**
    8286         * The listener of the active layer changes.
     
    195199                if (center == null)
    196200                        return; // no data loaded yet.
    197                 g.setColor(SimplePaintVisitor.getPreferencesColor("background", Color.BLACK));
     201                g.setColor(Preferences.getPreferencesColor("background", Color.BLACK));
    198202                g.fillRect(0, 0, getWidth(), getHeight());
    199203
     
    203207                                l.paint(g, this);
    204208                }
     209               
    205210                if (getActiveLayer() != null && getActiveLayer().visible)
    206211                        getActiveLayer().paint(g, this);
    207212
     213                for (MapViewPaintable mvp : temporaryLayers) {
     214                        mvp.paint(g, this);
     215                }
     216               
    208217                // draw world borders
    209218                g.setColor(Color.WHITE);
     
    330339                        firePropertyChange("scale", oldScale, scale);
    331340        }
     341       
     342        public boolean addTemporaryLayer(MapViewPaintable mvp) {
     343                if (temporaryLayers.contains(mvp)) return false;
     344                return temporaryLayers.add(mvp);
     345        }
     346       
     347        public boolean removeTemporaryLayer(MapViewPaintable mvp) {
     348                return temporaryLayers.remove(mvp);
     349        }
    332350}
Note: See TracChangeset for help on using the changeset viewer.