Ignore:
Timestamp:
2017-05-13T14:56:51+02:00 (9 years ago)
Author:
zverik
Message:

Updated possible roles and did a little refactoring

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/reltoolbox/src/relcontext/ChosenRelation.java

    r33265 r33311  
    1717import org.openstreetmap.josm.data.osm.Node;
    1818import org.openstreetmap.josm.data.osm.OsmPrimitive;
    19 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    2019import org.openstreetmap.josm.data.osm.Relation;
    2120import org.openstreetmap.josm.data.osm.Way;
     
    150149        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f * opacity));
    151150
    152         drawRelations(g, mv, bbox, chosenRelation, new HashSet<>());
     151        drawRelations(g, mv, bbox, chosenRelation, new HashSet<Relation>());
    153152
    154153        g.setComposite(oldComposite);
     
    160159            visitedRelations.add(rel);
    161160            for (OsmPrimitive element : rel.getMemberPrimitives()) {
    162                 if (element.getType() == OsmPrimitiveType.NODE) {
    163                     Node node = (Node) element;
    164                     Point center = mv.getPoint(node);
    165                     g.drawOval(center.x - 4, center.y - 4, 9, 9);
    166                 } else if (element.getType() == OsmPrimitiveType.WAY) {
    167                     Way way = (Way) element;
    168                     if (way.getNodesCount() >= 2) {
    169                         GeneralPath b = new GeneralPath();
    170                         Point p = mv.getPoint(way.getNode(0));
    171                         b.moveTo(p.x, p.y);
    172                         for (int i = 1; i < way.getNodesCount(); i++) {
    173                             p = mv.getPoint(way.getNode(i));
    174                             b.lineTo(p.x, p.y);
    175                         }
    176                         g.draw(b);
    177                     }
    178                 } else if (element.getType() == OsmPrimitiveType.RELATION) {
    179                     Color oldColor = g.getColor();
    180                     g.setColor(Color.magenta);
    181                     drawRelations(g, mv, bbox, (Relation) element, visitedRelations);
    182                     g.setColor(oldColor);
     161                if (null != element.getType()) switch(element.getType()) {
     162                    case NODE:
     163                        Node node = (Node) element;
     164                        Point center = mv.getPoint(node);
     165                        g.drawOval(center.x - 4, center.y - 4, 9, 9);
     166                        break;
     167                    case WAY:
     168                        Way way = (Way) element;
     169                        if (way.getNodesCount() >= 2) {
     170                            GeneralPath b = new GeneralPath();
     171                            Point p = mv.getPoint(way.getNode(0));
     172                            b.moveTo(p.x, p.y);
     173                            for (int i = 1; i < way.getNodesCount(); i++) {
     174                                p = mv.getPoint(way.getNode(i));
     175                                b.lineTo(p.x, p.y);
     176                            }
     177                            g.draw(b);
     178                        }   break;
     179                    case RELATION:
     180                        Color oldColor = g.getColor();
     181                        g.setColor(Color.magenta);
     182                        drawRelations(g, mv, bbox, (Relation) element, visitedRelations);
     183                        g.setColor(oldColor);
     184                        break;
     185                    default:
     186                        break;
    183187                }
    184                 // todo: closedway, multipolygon - ?
    185188            }
    186189        }
Note: See TracChangeset for help on using the changeset viewer.