diff --git a/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/MilStdSymbol.java b/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/MilStdSymbol.java index eadb1f5..410e42d 100644 --- a/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/MilStdSymbol.java +++ b/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/MilStdSymbol.java @@ -1068,10 +1068,16 @@ public Rectangle getSymbolExtentFull() { if (_ModifierShapes != null && _ModifierShapes.size() > 0) { int symbolCount2 = _ModifierShapes.size(); - for (int lcv2 = 0; lcv2 < symbolCount2; lcv2++) { - temp = _ModifierShapes.get(lcv2).getBounds(); + for (int lcv2 = 0; lcv2 < symbolCount2; lcv2++) + { + if(_ModifierShapes.get(lcv2).getShapeType() == ShapeInfo.SHAPE_TYPE_MODIFIER) + { + siTemp = _ModifierShapes.get(lcv2); + + temp = siTemp.getBounds(); - bounds = bounds.union(temp); + bounds = bounds.union(temp); + } } diff --git a/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/ShapeInfo.java b/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/ShapeInfo.java index 17c3ce7..792b91d 100644 --- a/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/ShapeInfo.java +++ b/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/ShapeInfo.java @@ -291,7 +291,7 @@ else if(_TextLayout != null)//for deutch multipoint labels return null; - if(this.affineTransform != null) + /*if(this.affineTransform != null) { //position set by affinetransform @@ -299,7 +299,7 @@ else if(_TextLayout != null)//for deutch multipoint labels sTemp = affineTransform.createTransformedShape(temp); temp = sTemp.getBounds(); - } + }//*/ return temp; } diff --git a/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/SymbolDraw.java b/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/SymbolDraw.java index f3fdb64..7d0695c 100644 --- a/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/SymbolDraw.java +++ b/core/JavaRendererUtils/src/main/java/ArmyC2/C2SD/Utilities/SymbolDraw.java @@ -146,51 +146,64 @@ else if(siTemp.getTextLayout() != null) if(shapes != null) { + int outlineWidth = RendererSettings.getInstance().getTextOutlineWidth()+2; + for(int i = 0; i < shapes.size(); i++) { siTemp = shapes.get(i); - - if(siTemp.getAffineTransform() != null) + if(siTemp.getShapeType() != ShapeInfo.SHAPE_TYPE_MODIFIER_FILL) { - AffineTransform atTemp = (AffineTransform)siTemp.getAffineTransform().clone(); - atTemp.preConcatenate(AffineTransform.getTranslateInstance(offsetX, offsetY)); - destination.setTransform(atTemp); - //destination.setTransform(siTemp.getAffineTransform()); - } - else - destination.translate(offsetX, offsetY); - - if(siTemp.getStroke() != null) - destination.setStroke(siTemp.getStroke()); - - if(siTemp.getFillColor() != null) - { - destination.setColor(siTemp.getFillColor()); - if(siTemp.getShape() != null) - destination.fill(siTemp.getShape()); - else//for deutch. needs to set line color for text + if(siTemp.getAffineTransform() != null) { - siTemp.setLineColor(siTemp.getFillColor()); - siTemp.setFillColor(null); + AffineTransform atTemp = (AffineTransform)siTemp.getAffineTransform().clone(); + atTemp.preConcatenate(AffineTransform.getTranslateInstance(offsetX, offsetY)); + destination.setTransform(atTemp); + //destination.setTransform(siTemp.getAffineTransform()); } + else//*/ + destination.translate(offsetX, offsetY); - } - if(siTemp.getLineColor() != null)//change to else if when Deutch fixes above - { - destination.setColor(siTemp.getLineColor()); + if(siTemp.getStroke() != null) + destination.setStroke(siTemp.getStroke()); - Point2D point = null; - if(siTemp.getShape() != null) - destination.draw(siTemp.getShape()); - else if(siTemp.getGlyphVector() != null) + if(siTemp.getFillColor() != null) { - point = siTemp.getGlyphPosition(); - destination.drawGlyphVector(siTemp.getGlyphVector(), (float)point.getX(), (float)point.getY()); + destination.setColor(siTemp.getFillColor()); + if(siTemp.getShape() != null) + destination.fill(siTemp.getShape()); + else//for deutch. needs to set line color for text + { + siTemp.setLineColor(siTemp.getFillColor()); + siTemp.setFillColor(null); + } + } - else if(siTemp.getTextLayout() != null) + if(siTemp.getLineColor() != null)//change to else if when Deutch fixes above { - point = siTemp.getGlyphPosition(); - siTemp.getTextLayout().draw(destination, (float)point.getX(), (float)point.getY()); + destination.setColor(siTemp.getLineColor()); + + Point2D point = null; + if(siTemp.getShape() != null) + destination.draw(siTemp.getShape()); + else if(siTemp.getGlyphVector() != null) + { + point = siTemp.getGlyphPosition(); + destination.drawGlyphVector(siTemp.getGlyphVector(), (float)point.getX(), (float)point.getY()); + } + else if(siTemp.getTextLayout() != null) + { + point = siTemp.getGlyphPosition(); + //siTemp.getTextLayout().draw(destination, (float)point.getX()+offsetX, (float)point.getY()+offsetY); + //Shape outline = siTemp.getTextLayout().getOutline(AffineTransform.getTranslateInstance(point.getX(), point.getY())); + Shape outline = siTemp.getTextLayout().getOutline(AffineTransform.getTranslateInstance(0 , 0)); + destination.setStroke(new BasicStroke(outlineWidth)); + destination.setColor(SymbolDraw.getIdealTextBackgroundColor(symbol.getLineColor())); + //destination.setColor(Color.BLUE); + destination.draw(outline); + destination.setColor(symbol.getLineColor()); + //destination.setColor(Color.RED); + destination.fill(outline); + } } }