Ignore:
Timestamp:
2011-08-21T13:12:53+02:00 (15 years ago)
Author:
xeen
Message:

updates visual appearance of highlights and adds them to select and delete action

in more detail:

  • add target highlighting to select action
  • add target cursor to select action
  • add target highlighting to delete action
  • unify ctrl/alt/shift modifier detection in MapMode actions
  • highlights are now a halo around the way/node instead of a color change
  • default highlight color is now the same as the select color (red)
  • ability to highlight WaySegments and VirtualNodes
  • various style/whitespace nits
  • fixes #2411

This patch touches a lot of areas, so please report any regressions in the map mode
tools. Also please add a comment to #2411 if you find to highlighting in select
mode distracting, so it can be fine tuned (or turned off by default).

File:
1 edited

Legend:

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

    r4319 r4327  
    111111            symbol = createSymbol(env);
    112112        }
    113        
     113
    114114        // optimization: if we neither have a symbol, nor an icon
    115115        // we don't have to check for the remaining style properties and we don't
     
    243243                Color fillColor = symbol.fillColor;
    244244                if (fillColor != null) {
    245                     if (n.isHighlighted()) {
    246                         fillColor = settings.getHighlightColor();
    247                     } else {
    248                         if (painter.isInactiveMode() || n.isDisabled()) {
    249                             fillColor = settings.getInactiveColor();
    250                         } else if (selected) {
    251                             fillColor = settings.getSelectedColor(fillColor.getAlpha());
    252                         } else if (member) {
    253                             fillColor = settings.getRelationSelectedColor(fillColor.getAlpha());
    254                         }
     245                    if (painter.isInactiveMode() || n.isDisabled()) {
     246                        fillColor = settings.getInactiveColor();
     247                    } else if (selected) {
     248                        fillColor = settings.getSelectedColor(fillColor.getAlpha());
     249                    } else if (member) {
     250                        fillColor = settings.getRelationSelectedColor(fillColor.getAlpha());
    255251                    }
    256252                }
    257253                Color strokeColor = symbol.strokeColor;
    258254                if (strokeColor != null) {
    259                     if (n.isHighlighted()) {
    260                         strokeColor = settings.getHighlightColor();
    261                     } else {
    262                         if (painter.isInactiveMode() || n.isDisabled()) {
    263                             strokeColor = settings.getInactiveColor();
    264                         } else if (selected) {
    265                             strokeColor = settings.getSelectedColor(strokeColor.getAlpha());
    266                         } else if (member) {
    267                             strokeColor = settings.getRelationSelectedColor(strokeColor.getAlpha());
    268                         }
     255                    if (painter.isInactiveMode() || n.isDisabled()) {
     256                        strokeColor = settings.getInactiveColor();
     257                    } else if (selected) {
     258                        strokeColor = settings.getSelectedColor(strokeColor.getAlpha());
     259                    } else if (member) {
     260                        strokeColor = settings.getRelationSelectedColor(strokeColor.getAlpha());
    269261                    }
    270262                }
    271263                painter.drawNodeSymbol(n, symbol, fillColor, strokeColor);
    272264            } else {
    273                 if (n.isHighlighted()) {
    274                     painter.drawNode(n, settings.getHighlightColor(), settings.getSelectedNodeSize(), settings.isFillSelectedNode());
     265                Color color;
     266                boolean isConnection = n.isConnectionNode();
     267
     268                if (painter.isInactiveMode() || n.isDisabled()) {
     269                    color = settings.getInactiveColor();
     270                } else if (selected) {
     271                    color = settings.getSelectedColor();
     272                } else if (member) {
     273                    color = settings.getRelationSelectedColor();
     274                } else if (isConnection) {
     275                    if (n.isTagged()) {
     276                        color = settings.getTaggedConnectionColor();
     277                    } else {
     278                        color = settings.getConnectionColor();
     279                    }
    275280                } else {
    276                     Color color;
    277                     boolean isConnection = n.isConnectionNode();
    278 
    279                     if (painter.isInactiveMode() || n.isDisabled()) {
    280                         color = settings.getInactiveColor();
    281                     } else if (selected) {
    282                         color = settings.getSelectedColor();
    283                     } else if (member) {
    284                         color = settings.getRelationSelectedColor();
    285                     } else if (isConnection) {
    286                         if (n.isTagged()) {
    287                             color = settings.getTaggedConnectionColor();
    288                         } else {
    289                             color = settings.getConnectionColor();
    290                         }
     281                    if (n.isTagged()) {
     282                        color = settings.getTaggedColor();
    291283                    } else {
    292                         if (n.isTagged()) {
    293                             color = settings.getTaggedColor();
    294                         } else {
    295                             color = settings.getNodeColor();
    296                         }
     284                        color = settings.getNodeColor();
    297285                    }
    298 
    299                     final int size = Utils.max((selected ? settings.getSelectedNodeSize() : 0),
    300                             (n.isTagged() ? settings.getTaggedNodeSize() : 0),
    301                             (isConnection ? settings.getConnectionNodeSize() : 0),
    302                             settings.getUnselectedNodeSize());
    303 
    304                     final boolean fill = (selected && settings.isFillSelectedNode()) ||
    305                             (n.isTagged() && settings.isFillTaggedNode()) ||
    306                             (isConnection && settings.isFillConnectionNode()) ||
    307                             settings.isFillUnselectedNode();
    308 
    309                     painter.drawNode(n, color, size, fill);
    310286                }
     287
     288                final int size = Utils.max((selected ? settings.getSelectedNodeSize() : 0),
     289                        (n.isTagged() ? settings.getTaggedNodeSize() : 0),
     290                        (isConnection ? settings.getConnectionNodeSize() : 0),
     291                        settings.getUnselectedNodeSize());
     292
     293                final boolean fill = (selected && settings.isFillSelectedNode()) ||
     294                (n.isTagged() && settings.isFillTaggedNode()) ||
     295                (isConnection && settings.isFillConnectionNode()) ||
     296                settings.isFillUnselectedNode();
     297
     298                painter.drawNode(n, color, size, fill);
     299
    311300            }
    312301        } else if (primitive instanceof Relation && icon != null) {
     
    322311        return disabledIcon = new ImageIcon(GrayFilter.createDisabledImage(icon.getImage()));
    323312    }
    324    
     313
    325314    public Rectangle getBox() {
    326315        if (icon != null) {
Note: See TracChangeset for help on using the changeset viewer.