<changes>
<release version="3.5-beta7" date="2009-??-??">
+ <action dev="POI-DEVELOPERS" type="add">46793 - fixed SimpleShape#getLineWidth to handle default line width </action>
<action dev="POI-DEVELOPERS" type="add">47356 - removed unused private fields in HWPF BorderCode</action>
<action dev="POI-DEVELOPERS" type="add">47355 - Improved HWPF TableCell to expose TableCellDescriptor</action>
<action dev="POI-DEVELOPERS" type="fix">46610 - Improved HWPF to better handle unicode</action>
if (lineColor != null){
graphics.setPaint(lineColor);
float width = (float)shape.getLineWidth();
- if(width == 0) width = 0.75f;
int dashing = shape.getLineDashing();
//TODO: implement more dashing styles
*/
public abstract class SimpleShape extends Shape {
+ public final static double DEFAULT_LINE_WIDTH = 0.75;
+
/**
* Records stored in EscherClientDataRecord
*/
public double getLineWidth(){
EscherOptRecord opt = (EscherOptRecord)getEscherChild(_escherContainer, EscherOptRecord.RECORD_ID);
EscherSimpleProperty prop = (EscherSimpleProperty)getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
- return prop == null ? 0 : (double)prop.getPropertyValue()/EMU_PER_POINT;
+ double width = prop == null ? DEFAULT_LINE_WIDTH : (double)prop.getPropertyValue()/EMU_PER_POINT;
+ return width;
}
/**
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.ddf.EscherDggRecord;
-import org.apache.poi.ddf.EscherDgRecord;
+import org.apache.poi.ddf.*;
import java.awt.*;
import java.awt.Rectangle;
assertEquals("expected 0 shaped in " + file, 0, sl.getShapes().length);
}
+ public void testLineWidth() throws IOException {
+ SimpleShape sh = new AutoShape(ShapeTypes.RightTriangle);
+
+ EscherOptRecord opt = (EscherOptRecord)SimpleShape.getEscherChild(sh.getSpContainer(), EscherOptRecord.RECORD_ID);
+ EscherSimpleProperty prop = (EscherSimpleProperty)SimpleShape.getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
+ assertNull(prop);
+ assertEquals(SimpleShape.DEFAULT_LINE_WIDTH, sh.getLineWidth());
+
+ sh.setLineWidth(1.0);
+ prop = (EscherSimpleProperty)SimpleShape.getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
+ assertNotNull(prop);
+ assertEquals(1.0, sh.getLineWidth());
+ }
+
public void testShapeId() throws IOException {
SlideShow ppt = new SlideShow();
Slide slide = ppt.createSlide();