@Override public void setAnchor(Rectangle2D anchor){ CTTransform2D xfrm = ((CTGraphicalObjectFrame)getXmlObject()).getXfrm(); CTPoint2D off = xfrm.isSetOff() ? xfrm.getOff() : xfrm.addNewOff(); long x = Units.toEMU(anchor.getX()); long y = Units.toEMU(anchor.getY()); off.setX(x); off.setY(y); CTPositiveSize2D ext = xfrm.isSetExt() ? xfrm.getExt() : xfrm .addNewExt(); long cx = Units.toEMU(anchor.getWidth()); long cy = Units.toEMU(anchor.getHeight()); ext.setCx(cx); ext.setCy(cy); }
/** * Creates a group shape. * * @param anchor the client anchor describes how this group is attached to the group. * @return the newly created group shape. */ public XSSFShapeGroup createGroup(XSSFChildAnchor anchor) { CTGroupShape ctShape = ctGroup.addNewGrpSp(); ctShape.set(prototype()); XSSFShapeGroup shape = new XSSFShapeGroup(getDrawing(), ctShape); shape.parent = this; shape.anchor = anchor; // TODO: calculate bounding rectangle on anchor and set off/ext correctly CTGroupTransform2D xfrm = shape.getCTGroupShape().getGrpSpPr().getXfrm(); CTTransform2D t2 = anchor.getCTTransform2D(); xfrm.setOff(t2.getOff()); xfrm.setExt(t2.getExt()); // child offset is left to 0,0 xfrm.setChExt(t2.getExt()); xfrm.setFlipH(t2.getFlipH()); xfrm.setFlipV(t2.getFlipV()); return shape; }
public Boolean getFlipHorizontal() { if (transform.isSetFlipH()) { return transform.getFlipH(); } else { return null; } }
public Boolean getFlipVertical() { if (transform.isSetFlipV()) { return transform.getFlipV(); } else { return null; } }
@Override public Rectangle2D getAnchor() { CTTransform2D xfrm = getXfrm(false); if (xfrm == null) { return null; } CTPoint2D off = xfrm.getOff(); double x = Units.toPoints(off.getX()); double y = Units.toPoints(off.getY()); CTPositiveSize2D ext = xfrm.getExt(); double cx = Units.toPoints(ext.getCx()); double cy = Units.toPoints(ext.getCy()); return new Rectangle2D.Double(x, y, cx, cy); }
public void setDx2(int dx2) { t2d.getExt().setCx(dx2 - getDx1()); } }
/** * Return a fake-xfrm which is used for calculating the text height */ protected CTTransform2D getXfrm() { Rectangle2D anc = getAnchor(); CTTransform2D xfrm = CTTransform2D.Factory.newInstance(); CTPoint2D off = xfrm.addNewOff(); off.setX(Units.toEMU(anc.getX())); off.setY(Units.toEMU(anc.getY())); CTPositiveSize2D size = xfrm.addNewExt(); size.setCx(Units.toEMU(anc.getWidth())); size.setCy(Units.toEMU(anc.getHeight())); return xfrm; }
public void setExtension(XDDFPositiveSize2D extension) { CTPositiveSize2D xformExt; if (extension == null) { if (transform.isSetExt()) { transform.unsetExt(); } return; } else if (transform.isSetExt()) { xformExt = transform.getExt(); } else { xformExt = transform.addNewExt(); } xformExt.setCx(extension.getX()); xformExt.setCy(extension.getY()); }
public XSSFChildAnchor(int x, int y, int cx, int cy) { t2d = CTTransform2D.Factory.newInstance(); CTPoint2D off = t2d.addNewOff(); CTPositiveSize2D ext = t2d.addNewExt(); off.setX(x); off.setY(y); ext.setCx(Math.abs(cx - x)); ext.setCy(Math.abs(cy - y)); if(x > cx) t2d.setFlipH(true); if(y > cy) t2d.setFlipV(true); }
public void setOffset(XDDFPoint2D offset) { CTPoint2D xformOff; if (offset == null) { if (transform.isSetOff()) { transform.unsetOff(); } return; } else if (transform.isSetOff()) { xformOff = transform.getOff(); } else { xformOff = transform.addNewOff(); } xformOff.setX(offset.getX()); xformOff.setY(offset.getY()); }
public int getDy1() { return (int)t2d.getOff().getY(); }
public void setFlipHorizontal(Boolean flip) { if (flip == null) { if (transform.isSetFlipH()) { transform.unsetFlipH(); } } else { transform.setFlipH(flip); } }
@Override public void setFlipHorizontal(boolean flip) { CTTransform2D xfrm = getXfrm(true); if (xfrm != null) { xfrm.setFlipH(flip); } }
@Override public double getRotation() { CTTransform2D xfrm = getXfrm(); return (double) xfrm.getRot() / 60000; }
@Override public boolean getFlipVertical() { return getXfrm().getFlipV(); }
@Override public boolean getFlipHorizontal() { return getXfrm().getFlipH(); }
@Override public Rectangle2D getAnchor(){ CTTransform2D xfrm = ((CTGraphicalObjectFrame)getXmlObject()).getXfrm(); CTPoint2D off = xfrm.getOff(); double x = Units.toPoints(off.getX()); double y = Units.toPoints(off.getY()); CTPositiveSize2D ext = xfrm.getExt(); double cx = Units.toPoints(ext.getCx()); double cy = Units.toPoints(ext.getCy()); return new Rectangle2D.Double(x, y, cx, cy); }