Changeset 290 in josm for src/org/openstreetmap/josm/data


Ignore:
Timestamp:
2007-07-18T23:12:56+02:00 (18 years ago)
Author:
imi
Message:
  • added support for multiple data layers
Location:
src/org/openstreetmap/josm/data
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/data/coor/Coordinate.java

    r86 r290  
    2020         * Either easting or latitude
    2121         */
    22         double x;
     22        final double x;
    2323        /**
    2424         * Either northing or longitude
    2525         */
    26         double y;
     26        final double y;
    2727
    2828        /**
  • src/org/openstreetmap/josm/data/osm/DataSet.java

    r273 r290  
    2020 * @author imi
    2121 */
    22 public class DataSet {
     22public class DataSet implements Cloneable {
    2323
    2424        /**
     
    4949       
    5050        /**
    51          * A list of listeners to selection changed events.
     51         * A list of listeners to selection changed events. The list is static,
     52         * as listeners register themself for any dataset selection changes that
     53         * occour, regardless of the current active dataset. (However, the
     54         * selection does only change in the active layer)
    5255         */
    53         transient public Collection<SelectionChangedListener> listeners = new LinkedList<SelectionChangedListener>();
     56        public static Collection<SelectionChangedListener> listeners = new LinkedList<SelectionChangedListener>();
    5457
    5558        /**
     
    144147         * the event immediately. For more, @see SelectionChangedListener
    145148         */
    146         public void fireSelectionChanged(Collection<? extends OsmPrimitive> sel) {
     149        public static void fireSelectionChanged(Collection<? extends OsmPrimitive> sel) {
    147150                for (SelectionChangedListener l : listeners)
    148151                        l.selectionChanged(sel);
    149152        }
     153
     154        @Override public DataSet clone() {
     155                DataSet ds = new DataSet();
     156                for (Node n : nodes)
     157                        ds.nodes.add(new Node(n));
     158                for (Segment s : segments)
     159                        ds.segments.add(new Segment(s));
     160                for (Way w : ways)
     161                        ds.ways.add(new Way(w));
     162                for (DataSource source : dataSources)
     163                        ds.dataSources.add(new DataSource(source.bounds, source.origin));
     164            return ds;
     165    }
    150166}
  • src/org/openstreetmap/josm/data/osm/DataSource.java

    r286 r290  
    33import org.openstreetmap.josm.data.Bounds;
    44
    5 public class DataSource {
    6         public Bounds bounds;
    7         public String origin;
     5public class DataSource implements Cloneable {
     6        public final Bounds bounds;
     7        public final String origin;
     8       
     9        public DataSource(Bounds bounds, String origin) {
     10            this.bounds = bounds;
     11            this.origin = origin;
     12    }
     13
     14        @Override protected Object clone() throws CloneNotSupportedException {
     15            return new DataSource(bounds, origin);
     16    }
    817}
  • src/org/openstreetmap/josm/data/osm/Node.java

    r203 r290  
    1212 * @author imi
    1313 */
    14 public class Node extends OsmPrimitive {
     14public final class Node extends OsmPrimitive {
    1515       
    1616        public LatLon coor;
  • src/org/openstreetmap/josm/data/osm/Segment.java

    r209 r290  
    99 * @author imi
    1010 */
    11 public class Segment extends OsmPrimitive {
     11public final class Segment extends OsmPrimitive {
    1212
    1313        /**
  • src/org/openstreetmap/josm/data/osm/Way.java

    r203 r290  
    1212 * @author imi
    1313 */
    14 public class Way extends OsmPrimitive {
     14public final class Way extends OsmPrimitive {
    1515
    1616        /**
  • src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java

    r221 r290  
    3636         */
    3737        protected NavigatableComponent nc;
     38       
     39        public boolean inactive;
    3840
    3941        protected static final double PHI = Math.toRadians(20);
     
    4143        public void visitAll(DataSet data) {
    4244                for (final OsmPrimitive osm : data.segments)
    43                         if (!osm.deleted)
     45                        if (!osm.deleted && !osm.selected)
    4446                                osm.visit(this);
    4547                for (final OsmPrimitive osm : data.ways)
    46                         if (!osm.deleted)
     48                        if (!osm.deleted && !osm.selected)
    4749                                osm.visit(this);
    4850                for (final OsmPrimitive osm : data.nodes)
    49                         if (!osm.deleted)
     51                        if (!osm.deleted && !osm.selected)
    5052                                osm.visit(this);
    5153                for (final OsmPrimitive osm : data.getSelected())
     
    6163         */
    6264        public void visit(Node n) {
    63                 drawNode(n, n.selected ? getPreferencesColor("selected", Color.WHITE)
    64                                 : getPreferencesColor("node", Color.RED));
     65                Color color = null;
     66                if (inactive)
     67                        color = getPreferencesColor("inactive", Color.DARK_GRAY);
     68                else if (n.selected)
     69                        color = getPreferencesColor("selected", Color.WHITE);
     70                else
     71                        color = getPreferencesColor("node", Color.RED);
     72                drawNode(n, color);
    6573        }
    6674
     
    7078         */
    7179        public void visit(Segment ls) {
    72                 drawSegment(ls, getPreferencesColor("segment", darkgreen), Main.pref.getBoolean("draw.segment.direction"));
     80                Color color;
     81                if (inactive)
     82                        color = getPreferencesColor("inactive", Color.DARK_GRAY);
     83                else if (ls.selected)
     84                        color = getPreferencesColor("selected", Color.WHITE);
     85                else
     86                        color = getPreferencesColor("segment", darkgreen);
     87                drawSegment(ls, color, Main.pref.getBoolean("draw.segment.direction"));
    7388        }
    7489
     
    7893         */
    7994        public void visit(Way w) {
    80                 // only to overwrite with blue
    81                 Color wayColor = getPreferencesColor("way", darkblue);
    82                 for (Segment ls : w.segments) {
    83                         if (ls.incomplete) {
    84                                 wayColor = getPreferencesColor("incomplete way", darkerblue);
    85                                 break;
     95                Color wayColor;
     96                if (inactive)
     97                        wayColor = getPreferencesColor("inactive", Color.DARK_GRAY);
     98                else {
     99                        wayColor = getPreferencesColor("way", darkblue);
     100                        for (Segment ls : w.segments) {
     101                                if (ls.incomplete) {
     102                                        wayColor = getPreferencesColor("incomplete way", darkerblue);
     103                                        break;
     104                                }
    86105                        }
    87106                }
     
    93112                        orderNumber++;
    94113                        if (!ls.selected) // selected already in good color
    95                                 drawSegment(ls, w.selected ? getPreferencesColor("selected", Color.WHITE) : wayColor, showDirectionArrow);
     114                                drawSegment(ls, w.selected && !inactive ? getPreferencesColor("selected", Color.WHITE) : wayColor, showDirectionArrow);
    96115                        if (!ls.incomplete && showOrderNumber)
    97116                                drawOrderNumber(ls, orderNumber);
     
    140159                if (ls.incomplete)
    141160                        return;
    142                 if (ls.selected)
    143                         col = getPreferencesColor("selected", Color.WHITE);
    144161                g.setColor(col);
    145162                Point p1 = nc.getPoint(ls.from.eastNorth);
Note: See TracChangeset for help on using the changeset viewer.