Changeset 3180 in josm for trunk


Ignore:
Timestamp:
2010-04-14T16:34:33+02:00 (10 years ago)
Author:
bastiK
Message:

applied #4876 - make size of tagged nodes configurable (patch by petschge)

Location:
trunk/src/org/openstreetmap/josm
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/Node.java

    r3166 r3180  
    195195    }
    196196
    197     public boolean isJunctionNode() {
     197    public boolean isConnectionNode() {
    198198        return (OsmPrimitive.getFilteredList(getReferrers(), Way.class)).size() > 1;
    199199    }
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java

    r3165 r3180  
    2222    private int showIconsDistance;
    2323    private int selectedNodeSize;
    24     private int junctionNodeSize;
     24    private int connectionNodeSize;
    2525    private int unselectedNodeSize;
     26    private int taggedNodeSize;
    2627    private boolean fillSelectedNode;
    2728    private boolean fillUnselectedNode;
    2829    private boolean fillTaggedNode;
     30    private boolean fillConnectionNode;
    2931    private Color selectedColor;
    3032    private Color highlightColor;
     
    3234    private Color nodeColor;
    3335    private Color taggedColor;
     36    private Color connectionColor;
     37    private Color taggedConnectionColor;
    3438
    3539    private MapPaintSettings() {
     
    4953        nodeColor = PaintColors.NODE.get();
    5054        taggedColor = PaintColors.TAGGED.get();
     55        connectionColor = PaintColors.CONNECTION.get();
     56        if (taggedColor != nodeColor) {
     57            taggedConnectionColor = taggedColor;
     58        } else {
     59            taggedConnectionColor = connectionColor;
     60        }
     61
    5162
    5263        showOrderNumber = Main.pref.getBoolean("draw.segment.order_number", false);
     
    5970        selectedNodeSize = Main.pref.getInteger("mappaint.node.selected-size", 5);
    6071        unselectedNodeSize = Main.pref.getInteger("mappaint.node.unselected-size", 3);
    61         junctionNodeSize = Main.pref.getInteger("mappaint.node.junction-size", 5);
     72        connectionNodeSize = Main.pref.getInteger("mappaint.node.onnection-size", 5);
     73        taggedNodeSize = Main.pref.getInteger("mappaint.node.tagged-size", 3);
    6274        fillSelectedNode = Main.pref.getBoolean("mappaint.node.fill-selected", true);
    6375        fillUnselectedNode = Main.pref.getBoolean("mappaint.node.fill-unselected", false);
    6476        fillTaggedNode = Main.pref.getBoolean("mappaint.node.fill-tagged", true);
     77        fillConnectionNode = Main.pref.getBoolean("mappaint.node.fill-onnection", false);
    6578    }
    6679
     
    105118    }
    106119
     120    public Color getConnectionColor() {
     121        return connectionColor;
     122    }
     123
     124    public Color getTaggedConnectionColor() {
     125        return taggedConnectionColor;
     126    }
     127
    107128    public boolean isShowOrderNumber() {
    108129        return showOrderNumber;
     
    133154    }
    134155
    135     public int getJunctionNodeSize() {
    136         return junctionNodeSize;
     156    public int getConnectionNodeSize() {
     157        return connectionNodeSize;
    137158    }
    138159
    139160    public int getUnselectedNodeSize() {
    140161        return unselectedNodeSize;
     162    }
     163
     164    public int getTaggedNodeSize() {
     165        return taggedNodeSize;
    141166    }
    142167
     
    149174    }
    150175
     176    public boolean isFillConnectionNode() {
     177        return fillConnectionNode;
     178    }
     179
    151180    public boolean isFillTaggedNode() {
    152181        return fillTaggedNode;
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java

    r3165 r3180  
    1313    INACTIVE(marktr("inactive"), Color.darkGray),
    1414    SELECTED(marktr("selected"), Color.red),
    15     NODE(marktr("node"), Color.yellow),
    16     TAGGED(marktr("tagged"), new Color(204, 255, 255)), // turquoise
     15    NODE(marktr("Node: standard"), Color.yellow),
     16    CONNECTION(marktr("Node: connection"), Color.yellow),
     17    TAGGED(marktr("Node: tagged"), new Color(204, 255, 255)), // light cyan
    1718    DEFAULT_WAY(marktr("way"),  new Color(0,0,128)), // dark blue
    1819    RELATION(marktr("relation"), new Color(0,128,128)), // teal
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/SimplePaintVisitor.java

    r3165 r3180  
    6262    protected Color highlightColor;
    6363    protected Color taggedColor;
     64    protected Color connectionColor;
     65    protected Color taggedConnectionColor;
    6466    protected boolean showDirectionArrow;
    6567    protected boolean showRelevantDirectionsOnly;
     
    6971    protected boolean fillUnselectedNode;
    7072    protected boolean fillTaggedNode;
     73    protected boolean fillConnectionNode;
    7174    protected int selectedNodeSize;
    72     protected int selectedNodeRadius;
    7375    protected int unselectedNodeSize;
    74     protected int unselectedNodeRadius;
    75     protected int junctionNodeSize;
    76     protected int junctionNodeRadius;
     76    protected int connectionNodeSize;
     77    protected int taggedNodeSize;
    7778    protected int defaultSegmentWidth;
    7879    protected int virtualNodeSize;
     
    9899        highlightColor = PaintColors.HIGHLIGHT.get();
    99100        taggedColor = PaintColors.TAGGED.get();
     101        connectionColor = PaintColors.CONNECTION.get();
     102
     103        if (taggedColor != nodeColor) {
     104            taggedConnectionColor = taggedColor;
     105        } else {
     106            taggedConnectionColor = connectionColor;
     107        }
    100108    }
    101109
     
    107115        showOrderNumber = settings.isShowOrderNumber();
    108116        selectedNodeSize = settings.getSelectedNodeSize();
    109         selectedNodeRadius = selectedNodeSize / 2;
    110117        unselectedNodeSize = settings.getUnselectedNodeSize();
    111         unselectedNodeRadius = unselectedNodeSize / 2;
    112         junctionNodeSize = settings.getJunctionNodeSize();
    113         junctionNodeRadius = junctionNodeSize / 2;
     118        connectionNodeSize = settings.getConnectionNodeSize();
     119        taggedNodeSize = settings.getTaggedNodeSize();
    114120        defaultSegmentWidth = settings.getDefaultSegmentWidth();
    115121        fillSelectedNode = settings.isFillSelectedNode();
    116122        fillUnselectedNode = settings.isFillUnselectedNode();
     123        fillConnectionNode = settings.isFillConnectionNode();
    117124        fillTaggedNode = settings.isFillTaggedNode();
    118125        virtualNodeSize = virtual ? Main.pref.getInteger("mappaint.node.virtual-size", 8) / 2 : 0;
     
    224231    }
    225232
     233    private static final int max(int a, int b, int c, int d) {
     234        return Math.max(Math.max(a, b), Math.max(c, d));
     235    }
     236
    226237    /**
    227238     * Draw a small rectangle.
     
    234245
    235246        if (n.isHighlighted()) {
    236             drawNode(n, highlightColor, selectedNodeSize, unselectedNodeRadius, fillSelectedNode);
    237         } else if (ds.isSelected(n)) {
    238             drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);
     247            drawNode(n, highlightColor, selectedNodeSize, fillSelectedNode);
    239248        } else {
    240             boolean junction = n.isJunctionNode();
    241             drawNode(
    242                 n,
    243                 (inactive || n.isDisabled()) ? inactiveColor :
    244                     (n.isTagged() ? taggedColor : nodeColor),
    245                 junction ? junctionNodeSize : unselectedNodeSize,
    246                 junction ? junctionNodeRadius : unselectedNodeRadius,
    247                 n.isTagged() ? fillTaggedNode : fillUnselectedNode);
     249            Color color;
     250
     251            if (inactive || n.isDisabled()) {
     252                color = inactiveColor;
     253            } else if (ds.isSelected(n)) {
     254                color = selectedColor;
     255            } else if (n.isConnectionNode()) {
     256                if (n.isTagged()) {
     257                    color = taggedConnectionColor;
     258                } else {
     259                    color = connectionColor;
     260                }
     261            } else {
     262                if (n.isTagged()) {
     263                    color = taggedColor;
     264                } else {
     265                    color = nodeColor;
     266                }
     267            }
     268
     269            final int size = max((ds.isSelected(n) ? selectedNodeSize : 0),
     270                                    (n.isTagged() ? taggedNodeSize : 0),
     271                                    (n.isConnectionNode() ? connectionNodeSize : 0),
     272                                    unselectedNodeSize);
     273
     274            final boolean fill = (ds.isSelected(n) && fillSelectedNode) ||
     275                                    (n.isTagged() && fillTaggedNode) ||
     276                                    (n.isConnectionNode() && fillConnectionNode) ||
     277                                    fillUnselectedNode;
     278
     279            drawNode(n, color, size, fill);
    248280        }
    249281    }
     
    421453     * @param color The color of the node.
    422454     */
    423     public void drawNode(Node n, Color color, int size, int radius, boolean fill) {
     455    public void drawNode(Node n, Color color, int size, boolean fill) {
    424456        if (size > 1) {
     457            int radius = size / 2;
    425458            Point p = nc.getPoint(n);
    426459            if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth())
  • trunk/src/org/openstreetmap/josm/gui/mappaint/SimpleNodeElemStyle.java

    r3159 r3180  
    22package org.openstreetmap.josm.gui.mappaint;
    33
     4import java.awt.Color;
    45import org.openstreetmap.josm.data.osm.Node;
    56import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    1617    }
    1718
     19    private static final int max(int a, int b, int c, int d) {
     20        return Math.max(Math.max(a, b), Math.max(c, d));
     21    }
     22
    1823    @Override
    1924    public void paintPrimitive(OsmPrimitive primitive, MapPaintSettings settings, MapPainter painter,
     
    2126        Node n = (Node)primitive;
    2227        String name = painter.isShowNames()?painter.getNodeName(n):null;
     28
     29
    2330        if (n.isHighlighted()) {
    2431            painter.drawNode(n, settings.getHighlightColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name);
    25         } else if (selected) {
    26             painter.drawNode(n, settings.getSelectedColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode(), name);
    2732        } else {
    28             painter.drawNode(
    29                 n,
    30                 (painter.isInactive() || n.isDisabled()) ? settings.getInactiveColor() : settings.getNodeColor(),
    31                 n.isJunctionNode() ? settings.getJunctionNodeSize() : settings.getUnselectedNodeSize(),
    32                 n.isTagged() ? settings.isFillTaggedNode() : settings.isFillUnselectedNode(),
    33                 name);
     33
     34            Color color;
     35
     36            if (painter.isInactive() || n.isDisabled()) {
     37                color = settings.getInactiveColor();
     38            } else if (selected) {
     39                color = settings.getSelectedColor();
     40            } else if (n.isConnectionNode()) {
     41                if (n.isTagged()) {
     42                    color = settings.getTaggedConnectionColor();
     43                } else {
     44                    color = settings.getConnectionColor();
     45                }
     46            } else {
     47                if (n.isTagged()) {
     48                    color = settings.getTaggedColor();
     49                } else {
     50                    color = settings.getNodeColor();
     51                }
     52            }
     53
     54            final int size = max((selected ? settings.getSelectedNodeSize() : 0),
     55                                    (n.isTagged() ? settings.getTaggedNodeSize() : 0),
     56                                    (n.isConnectionNode() ? settings.getConnectionNodeSize() : 0),
     57                                    settings.getUnselectedNodeSize());
     58
     59            final boolean fill = (selected && settings.isFillSelectedNode()) ||
     60                                    (n.isTagged() && settings.isFillTaggedNode()) ||
     61                                    (n.isConnectionNode() && settings.isFillConnectionNode()) ||
     62                                    settings.isFillUnselectedNode();
     63
     64            painter.drawNode(n, color, size, fill, name);
    3465        }
    3566    }
Note: See TracChangeset for help on using the changeset viewer.