Changeset 1340 in josm


Ignore:
Timestamp:
Jan 25, 2009 6:27:54 PM (4 years ago)
Author:
ulfl
Message:

add a mappaint "dashedcolour", which controls the background color of a dashed line

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

Legend:

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

    r1333 r1340  
    5555    protected Color textColor; 
    5656    protected int currentDashed = 0; 
     57    protected Color currentDashedColor; 
    5758    protected int currentWidth = 0; 
    5859    protected Stroke currentStroke = null; 
     
    247248        int realWidth = 0; //the real width of the element in meters 
    248249        int dashed = 0; 
     250        Color dashedColor = null; 
    249251        Node lastN; 
    250252 
     
    255257            realWidth = l.realWidth; 
    256258            dashed = l.dashed; 
     259            dashedColor = l.dashedColor; 
    257260        } 
    258261        if(selected) 
     
    279282                        { 
    280283                            drawSeg(lastN, n, s.color != null  && !w.selected ? s.color : color, 
    281                             false, s.getWidth(width), s.dashed); 
     284                            false, s.getWidth(width), s.dashed, s.dashedColor); 
    282285                        } 
    283286                        lastN = n; 
     
    295298            if(lastN != null) 
    296299                drawSeg(lastN, n, color, 
    297                     showOnlyHeadArrowOnly ? !it.hasNext() : showDirection, width, dashed); 
     300                    showOnlyHeadArrowOnly ? !it.hasNext() : showDirection, width, dashed, dashedColor); 
    298301            lastN = n; 
    299302        } 
     
    312315                        { 
    313316                            drawSeg(lastN, n, s.color != null && !w.selected ? s.color : color, 
    314                             false, s.getWidth(width), s.dashed); 
     317                            false, s.getWidth(width), s.dashed, s.dashedColor); 
    315318                        } 
    316319                        lastN = n; 
     
    10841087    } 
    10851088 
    1086     private void drawSeg(Node n1, Node n2, Color col, boolean showDirection, int width, int dashed) { 
     1089    private void drawSeg(Node n1, Node n2, Color col, boolean showDirection, int width, int dashed, Color dashedColor) { 
    10871090        profilerSegments++; 
    1088         if (col != currentColor || width != currentWidth || dashed != currentDashed) { 
    1089             displaySegments(col, width, dashed); 
     1091        if (col != currentColor || width != currentWidth || dashed != currentDashed || dashedColor != currentDashedColor) { 
     1092            displaySegments(col, width, dashed, dashedColor); 
    10901093        } 
    10911094        Point p1 = nc.getPoint(n1.eastNorth); 
     
    11081111 
    11091112    protected void displaySegments() { 
    1110         displaySegments(null, 0, 0); 
    1111     } 
    1112  
    1113     protected void displaySegments(Color newColor, int newWidth, int newDash) { 
     1113        displaySegments(null, 0, 0, null); 
     1114    } 
     1115 
     1116    protected void displaySegments(Color newColor, int newWidth, int newDash, Color newDashedColor) { 
    11141117        if (currentPath != null) { 
    11151118            Graphics2D g2d = (Graphics2D)g; 
     
    11221125            } 
    11231126            g2d.draw(currentPath); 
     1127 
     1128            if(currentDashedColor != null) { 
     1129                g2d.setColor(currentDashedColor); 
     1130                if (currentStroke == null && useStrokes > dist) { 
     1131                    if (currentDashed != 0) 
     1132                        g2d.setStroke(new BasicStroke(currentWidth,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND,0,new float[] {currentDashed},currentDashed)); 
     1133                    else 
     1134                        g2d.setStroke(new BasicStroke(currentWidth,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND)); 
     1135                } 
     1136                g2d.draw(currentPath); 
     1137            } 
     1138             
    11241139            if(useStrokes > dist) 
    11251140                g2d.setStroke(new BasicStroke(1)); 
     
    11291144            currentWidth = newWidth; 
    11301145            currentDashed = newDash; 
     1146            currentDashedColor = newDashedColor; 
    11311147            currentStroke = null; 
    11321148        } 
  • trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java

    r1333 r1340  
    110110                    }                 
    111111                } 
    112             } else if(atts.getQName(count).equals("priority")) 
     112            } else if (atts.getQName(count).equals("dashedcolour")) 
     113                line.dashedColor=convertColor(atts.getValue(count)); 
     114            else if(atts.getQName(count).equals("priority")) 
    113115                line.priority = Integer.parseInt(atts.getValue(count)); 
    114116            else if(atts.getQName(count).equals("mode")) 
  • trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java

    r1333 r1340  
    1010    public Color color; 
    1111    public int dashed; 
     12    public Color dashedColor; 
    1213 
    1314    public boolean over; 
     
    2223        this.color = s.color; 
    2324        this.dashed = s.dashed; 
     25        this.dashedColor = s.dashedColor; 
    2426        this.over = s.over; 
    2527        this.widthMode = s.widthMode; 
     
    3537        this.color = s.color; 
    3638        this.dashed = s.dashed; 
     39        this.dashedColor = s.dashedColor; 
    3740        this.over = s.over; 
    3841        this.widthMode = s.widthMode; 
     
    5558        realWidth = 0; 
    5659        dashed = 0; 
     60        dashedColor = null; 
    5761        priority = 0; 
    5862        color = null; 
Note: See TracChangeset for help on using the changeset viewer.