Changeset 247 in josm for src/org/openstreetmap/josm/gui


Ignore:
Timestamp:
2007-05-24T22:55:15+02:00 (18 years ago)
Author:
framm
Message:

Display a yellow rectangle around the original download bounding box(es). Fixes (well, almost) #149.
Still todo: merge rectangles into nice polygon; possibly shade outlying area and optionally forbid changes to items in that area.

Location:
src/org/openstreetmap/josm/gui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r234 r247  
    44import static org.openstreetmap.josm.tools.I18n.trn;
    55
     6import java.awt.Color;
    67import java.awt.Component;
    78import java.awt.Graphics;
    89import java.awt.GridBagLayout;
     10import java.awt.Point;
    911import java.awt.event.ActionEvent;
    1012import java.io.File;
     
    2931import org.openstreetmap.josm.actions.SaveAsAction;
    3032import org.openstreetmap.josm.command.Command;
     33import org.openstreetmap.josm.data.coor.EastNorth;
    3134import org.openstreetmap.josm.data.osm.DataSet;
     35import org.openstreetmap.josm.data.osm.DataSource;
    3236import org.openstreetmap.josm.data.osm.Node;
    3337import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    140144         */
    141145        @Override public void paint(final Graphics g, final MapView mv) {
     146                if (Main.pref.getBoolean("draw.data.downloaded_area", false)) {
     147                        // FIXME this is inefficient; instead a proper polygon has to be built, and instead
     148                        // of drawing the outline, the outlying areas should perhaps be shaded.
     149                        for (DataSource src : data.dataSources) {
     150                                if (src.sourceBounds != null) {
     151                                        EastNorth en1 = Main.proj.latlon2eastNorth(src.sourceBounds.min);
     152                                        EastNorth en2 = Main.proj.latlon2eastNorth(src.sourceBounds.max);
     153                                        Point p1 = mv.getPoint(en1);
     154                                        Point p2 = mv.getPoint(en2);
     155                                        g.setColor(SimplePaintVisitor.getPreferencesColor("downloaded Area", Color.YELLOW));
     156                                        g.drawRect(Math.min(p1.x,p2.x), Math.min(p1.y, p2.y), Math.abs(p2.x-p1.x), Math.abs(p2.y-p1.y));
     157                                }
     158                        }
     159                }
    142160                mapPainter.setGraphics(g);
    143161                mapPainter.setNavigatableComponent(mv);
     
    161179                        osm.visit(visitor);
    162180                visitor.fixReferences();
     181               
     182                // copy the merged layer's data source info
     183                for (DataSource src : ((OsmDataLayer)from).data.dataSources)
     184                        data.dataSources.add(src);
     185               
    163186                if (visitor.conflicts.isEmpty())
    164187                        return;
  • src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java

    r181 r247  
    1818        private JCheckBox directionHint = new JCheckBox(tr("Draw Direction Arrows"));
    1919        private JCheckBox segmentOrderNumber = new JCheckBox(tr("Draw segment order numbers"));
     20        private JCheckBox sourceBounds = new JCheckBox(tr("Draw boundaries of downloaded data"));
    2021
    2122        public void addGui(PreferenceDialog gui) {
     
    5253                segmentOrderNumber.setSelected(Main.pref.getBoolean("draw.segment.order_number"));
    5354                gui.display.add(segmentOrderNumber, GBC.eop().insets(20,0,0,0));
     55               
     56                // downloaded area
     57                sourceBounds.setToolTipText(tr("Draw the boundaries of data loaded from the server."));
     58                sourceBounds.setSelected(Main.pref.getBoolean("draw.data.downloaded_area"));
     59                gui.display.add(sourceBounds, GBC.eop().insets(20,0,0,0));
    5460        }
    5561
     
    6066                Main.pref.put("draw.segment.direction", directionHint.isSelected());
    6167                Main.pref.put("draw.segment.order_number", segmentOrderNumber.isSelected());
     68                Main.pref.put("draw.data.downloaded_area", sourceBounds.isSelected());
    6269    }
    6370}
Note: See TracChangeset for help on using the changeset viewer.