Changeset 2675 in josm for trunk/src/org/openstreetmap/josm/gui
- Timestamp:
- 2009-12-23T21:22:35+01:00 (14 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java
r1747 r2675 1 1 package org.openstreetmap.josm.gui.mappaint; 2 2 import java.awt.Color; 3 4 import org.openstreetmap.josm.data.osm.OsmPrimitive; 5 import org.openstreetmap.josm.data.osm.visitor.paint.MapPaintSettings; 6 import org.openstreetmap.josm.data.osm.visitor.paint.MapPainter; 3 7 4 8 public class AreaElemStyle extends ElemStyle … … 6 10 public Color color; 7 11 public boolean closed; 8 p ublic LineElemStyle line = null;12 private LineElemStyle line; 9 13 10 14 public AreaElemStyle (AreaElemStyle a, long maxScale, long minScale) { … … 15 19 this.minScale = minScale; 16 20 this.rules = a.rules; 21 this.line = new LineElemStyle(); 22 this.line.color = a.color; 17 23 } 18 24 … … 36 42 priority = 0; 37 43 } 44 45 public ElemStyle getLineStyle() { 46 return line; 47 } 48 49 @Override 50 public void paintPrimitive(OsmPrimitive primitive, MapPaintSettings paintSettings, MapPainter painter, boolean selected) { 51 // TODO 52 /*Way way = (Way)primitive; 53 String name = painter.isShowNames() ? painter.getWayName(way) : null; 54 painter.drawArea(getPolygon(way), selected ? paintSettings.getSelectedColor() : color, name); 55 line.paintPrimitive(way, paintSettings, painter, selected);*/ 56 } 38 57 } -
trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyle.java
r2512 r2675 5 5 import org.openstreetmap.josm.data.osm.OsmPrimitive; 6 6 import org.openstreetmap.josm.data.osm.OsmUtils; 7 import org.openstreetmap.josm.data.osm.visitor.paint.MapPaintSettings; 8 import org.openstreetmap.josm.data.osm.visitor.paint.MapPainter; 7 9 8 abstract public class ElemStyle 9 { 10 abstract public class ElemStyle { 10 11 // zoom range to display the feature 11 12 public long minScale; … … 16 17 Collection<Rule> rules = null; 17 18 18 public Boolean equals(ElemStyle s)19 {20 return s != null && s.getCode().equals(getCode());19 @Override 20 public boolean equals(Object o) { 21 return (o instanceof ElemStyle) && (((ElemStyle) o).getCode().equals(getCode())); 21 22 } 23 24 @Override 25 public int hashCode() { 26 return getClass().hashCode(); 27 } 28 22 29 public String getCode() 23 30 { … … 25 32 { 26 33 code = ""; 27 for(Rule r: rules) 34 for(Rule r: rules) { 28 35 code += r.toCode(); 36 } 29 37 } 30 38 return code; … … 39 47 String bv = OsmUtils.getNamedOsmBoolean(r.boolValue); 40 48 if(k == null || (r.value != null && !k.equals(r.value)) 41 || (bv != null && !bv.equals(OsmUtils.getNamedOsmBoolean(k))))49 || (bv != null && !bv.equals(OsmUtils.getNamedOsmBoolean(k)))) 42 50 return false; 43 51 } 44 52 return true; 45 53 } 54 55 public abstract void paintPrimitive(OsmPrimitive primitive, MapPaintSettings paintSettings, MapPainter painter, boolean selected); 46 56 } -
trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java
r2659 r2675 84 84 if(val.startsWith("+")) 85 85 { 86 line. width = Integer.parseInt(val.substring(1));86 line.setWidth(Integer.parseInt(val.substring(1))); 87 87 line.widthMode = LineElemStyle.WidthMode.OFFSET; 88 88 } 89 89 else if(val.startsWith("-")) 90 90 { 91 line. width = Integer.parseInt(val);91 line.setWidth(Integer.parseInt(val)); 92 92 line.widthMode = LineElemStyle.WidthMode.OFFSET; 93 93 } 94 94 else if(val.endsWith("%")) 95 95 { 96 line. width = Integer.parseInt(val.substring(0, val.length()-1));96 line.setWidth(Integer.parseInt(val.substring(0, val.length()-1))); 97 97 line.widthMode = LineElemStyle.WidthMode.PERCENT; 98 98 } else { 99 line. width = Integer.parseInt(val);99 line.setWidth(Integer.parseInt(val)); 100 100 } 101 101 } -
trunk/src/org/openstreetmap/josm/gui/mappaint/IconElemStyle.java
r2512 r2675 3 3 import javax.swing.GrayFilter; 4 4 import javax.swing.ImageIcon; 5 6 import org.openstreetmap.josm.data.osm.Node; 7 import org.openstreetmap.josm.data.osm.OsmPrimitive; 8 import org.openstreetmap.josm.data.osm.visitor.paint.MapPaintSettings; 9 import org.openstreetmap.josm.data.osm.visitor.paint.MapPainter; 5 10 6 11 public class IconElemStyle extends ElemStyle … … 33 38 return disabledIcon = new ImageIcon(GrayFilter.createDisabledImage(icon.getImage())); 34 39 } 40 @Override 41 public void paintPrimitive(OsmPrimitive primitive, MapPaintSettings settings, MapPainter painter, boolean selected) { 42 if (painter.isShowIcons()) { 43 Node n = (Node) primitive; 44 String name = painter.isShowNames()?painter.getNodeName(n):null; 45 painter.drawNodeIcon(n, (painter.isInactive() || n.isDisabled())?getDisabledIcon():icon, 46 annotate, selected, name); 47 } else { 48 SimpleNodeElemStyle.INSTANCE.paintPrimitive(primitive, settings, painter, selected); 49 } 50 51 } 35 52 } -
trunk/src/org/openstreetmap/josm/gui/mappaint/LineElemStyle.java
r2659 r2675 4 4 import java.util.Collection; 5 5 6 import org.openstreetmap.josm.data.osm.Node; 7 import org.openstreetmap.josm.data.osm.OsmPrimitive; 8 import org.openstreetmap.josm.data.osm.Way; 9 import org.openstreetmap.josm.data.osm.visitor.paint.MapPaintSettings; 10 import org.openstreetmap.josm.data.osm.visitor.paint.MapPainter; 11 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors; 6 12 import org.openstreetmap.josm.tools.I18n; 7 13 8 public class LineElemStyle extends ElemStyle implements Comparable<LineElemStyle> 9 { 10 public int width; 14 public class LineElemStyle extends ElemStyle implements Comparable<LineElemStyle> { 15 16 public static final LineElemStyle UNTAGGED_WAY; 17 18 static { 19 UNTAGGED_WAY = new LineElemStyle(); 20 UNTAGGED_WAY.color = PaintColors.UNTAGGED.get(); 21 } 22 23 private int width; 11 24 public int realWidth; //the real width of this line in meter 12 25 public Color color; … … 60 73 public void init() 61 74 { 62 width = 1;75 width = -1; 63 76 realWidth = 0; 64 77 dashed = new float[0]; … … 124 137 } 125 138 } 139 140 @Override 141 public void paintPrimitive(OsmPrimitive primitive, MapPaintSettings paintSettings, MapPainter painter, boolean selected) { 142 Way w = (Way)primitive; 143 /* show direction arrows, if draw.segment.relevant_directions_only is not set, 144 the way is tagged with a direction key 145 (even if the tag is negated as in oneway=false) or the way is selected */ 146 boolean showDirection = selected || ((!paintSettings.isUseRealWidth()) && (paintSettings.isShowDirectionArrow() 147 && (!paintSettings.isShowRelevantDirectionsOnly() || w.hasDirectionKeys()))); 148 /* head only takes over control if the option is true, 149 the direction should be shown at all and not only because it's selected */ 150 boolean showOnlyHeadArrowOnly = showDirection && selected && paintSettings.isShowHeadArrowOnly(); 151 Node lastN; 152 153 Color myColor = color; 154 int myWidth = getWidth(); 155 156 if (realWidth > 0 && paintSettings.isUseRealWidth() && !showDirection) { 157 158 /* if we have a "width" tag, try use it */ 159 /* (this might be slow and could be improved by caching the value in the Way, on the other hand only used if "real width" is enabled) */ 160 String widthTag = w.get("width"); 161 if(widthTag == null) { 162 widthTag = w.get("est_width"); 163 } 164 if(widthTag != null) { 165 try { 166 realWidth = Integer.parseInt(widthTag); 167 } 168 catch(NumberFormatException nfe) { 169 } 170 } 171 172 myWidth = (int) (100 / (float) (painter.getCircum() / realWidth)); 173 if (myWidth < getWidth()) { 174 myWidth = getWidth(); 175 } 176 } 177 178 if(w.highlighted) { 179 myColor = paintSettings.getHighlightColor(); 180 } else if (selected) { 181 myColor = paintSettings.getSelectedColor(); 182 } else if(w.isDisabled()) { 183 myColor = paintSettings.getInactiveColor(); 184 } 185 186 /* draw overlays under the way */ 187 if(overlays != null) { 188 for(LineElemStyle s : overlays) { 189 if(!s.over) { 190 painter.drawWay(w, s.color != null && selected ? myColor: s.color, s.getWidth(myWidth), 191 s.getDashed(), s.dashedColor, false, false); 192 } 193 } 194 } 195 196 /* draw the way */ 197 painter.drawWay(w, myColor, myWidth, dashed, dashedColor, showDirection, showOnlyHeadArrowOnly); 198 199 /* draw overlays above the way */ 200 if(overlays != null) { 201 for(LineElemStyle s : overlays) { 202 if(s.over) { 203 painter.drawWay(w, s.color != null && selected ? myColor : s.color, s.getWidth(myWidth), 204 s.getDashed(), s.dashedColor, false, false); 205 } 206 } 207 } 208 209 if(paintSettings.isShowOrderNumber()) { 210 int orderNumber = 0; 211 lastN = null; 212 for(Node n : w.getNodes()) { 213 if(lastN != null) { 214 orderNumber++; 215 painter.drawOrderNumber(lastN, n, orderNumber); 216 } 217 lastN = n; 218 } 219 } 220 } 221 222 public int getWidth() { 223 if (width == -1) 224 return MapPaintSettings.INSTANCE.getDefaultSegmentWidth(); 225 return width; 226 } 227 228 public void setWidth(int width) { 229 this.width = width; 230 } 126 231 } -
trunk/src/org/openstreetmap/josm/gui/preferences/ColorPreference.java
r2666 r2675 34 34 35 35 import org.openstreetmap.josm.Main; 36 import org.openstreetmap.josm.data.osm.visitor.paint. MapPaintVisitor;36 import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors; 37 37 import org.openstreetmap.josm.gui.MapScaler; 38 38 import org.openstreetmap.josm.gui.dialogs.ConflictDialog; … … 254 254 */ 255 255 private void fixColorPrefixes() { 256 (new MapPaintVisitor()).getColors();256 PaintColors.getColors(); 257 257 MarkerLayer.getColor(null); 258 258 MapScaler.getColor();
Note:
See TracChangeset
for help on using the changeset viewer.