| Method from org.apache.poi.hslf.model.Shape Detail: |
protected void afterInsert(Sheet sh) {
}
Event which fires when a shape is inserted in the sheet.
In some cases we need to propagate changes to upper level containers.
Default implementation does nothing. |
abstract protected EscherContainerRecord createSpContainer(boolean isChild)
Creates the lowerlevel escher records for this shape. |
public void draw(Graphics2D graphics) {
logger.log(POILogger.INFO, "Rendering " + getShapeName());
}
|
public Rectangle getAnchor() {
Rectangle2D anchor2d = getAnchor2D();
return anchor2d.getBounds();
}
Returns the anchor (the bounding box rectangle) of this shape.
All coordinates are expressed in points (72 dpi). |
public Rectangle2D getAnchor2D() {
EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
int flags = spRecord.getFlags();
Rectangle2D anchor=null;
if ((flags & EscherSpRecord.FLAG_CHILD) != 0){
EscherChildAnchorRecord rec = (EscherChildAnchorRecord)getEscherChild(_escherContainer, EscherChildAnchorRecord.RECORD_ID);
anchor = new java.awt.Rectangle();
if(rec == null){
logger.log(POILogger.WARN, "EscherSpRecord.FLAG_CHILD is set but EscherChildAnchorRecord was not found");
EscherClientAnchorRecord clrec = (EscherClientAnchorRecord)getEscherChild(_escherContainer, EscherClientAnchorRecord.RECORD_ID);
anchor = new java.awt.Rectangle();
anchor = new Rectangle2D.Float(
(float)clrec.getCol1()*POINT_DPI/MASTER_DPI,
(float)clrec.getFlag()*POINT_DPI/MASTER_DPI,
(float)(clrec.getDx1()-clrec.getCol1())*POINT_DPI/MASTER_DPI,
(float)(clrec.getRow1()-clrec.getFlag())*POINT_DPI/MASTER_DPI
);
} else {
anchor = new Rectangle2D.Float(
(float)rec.getDx1()*POINT_DPI/MASTER_DPI,
(float)rec.getDy1()*POINT_DPI/MASTER_DPI,
(float)(rec.getDx2()-rec.getDx1())*POINT_DPI/MASTER_DPI,
(float)(rec.getDy2()-rec.getDy1())*POINT_DPI/MASTER_DPI
);
}
}
else {
EscherClientAnchorRecord rec = (EscherClientAnchorRecord)getEscherChild(_escherContainer, EscherClientAnchorRecord.RECORD_ID);
anchor = new java.awt.Rectangle();
anchor = new Rectangle2D.Float(
(float)rec.getCol1()*POINT_DPI/MASTER_DPI,
(float)rec.getFlag()*POINT_DPI/MASTER_DPI,
(float)(rec.getDx1()-rec.getCol1())*POINT_DPI/MASTER_DPI,
(float)(rec.getRow1()-rec.getFlag())*POINT_DPI/MASTER_DPI
);
}
return anchor;
}
Returns the anchor (the bounding box rectangle) of this shape.
All coordinates are expressed in points (72 dpi). |
protected Color getColor(int rgb,
int alpha) {
if (rgb >= 0x8000000) {
int idx = rgb - 0x8000000;
ColorSchemeAtom ca = getSheet().getColorScheme();
if(idx >= 0 && idx < = 7) rgb = ca.getColor(idx);
}
Color tmp = new Color(rgb, true);
return new Color(tmp.getBlue(), tmp.getGreen(), tmp.getRed(), alpha);
}
|
public static EscherRecord getEscherChild(EscherContainerRecord owner,
int recordId) {
for ( Iterator iterator = owner.getChildRecords().iterator(); iterator.hasNext(); )
{
EscherRecord escherRecord = (EscherRecord) iterator.next();
if (escherRecord.getRecordId() == recordId)
return escherRecord;
}
return null;
}
Helper method to return escher child by record ID |
public int getEscherProperty(short propId) {
EscherOptRecord opt = (EscherOptRecord)getEscherChild(_escherContainer, EscherOptRecord.RECORD_ID);
EscherSimpleProperty prop = (EscherSimpleProperty)getEscherProperty(opt, propId);
return prop == null ? 0 : prop.getPropertyValue();
}
Get the value of a simple escher property for this shape. |
public static EscherProperty getEscherProperty(EscherOptRecord opt,
int propId) {
if(opt != null) for ( Iterator iterator = opt.getEscherProperties().iterator(); iterator.hasNext(); )
{
EscherProperty prop = (EscherProperty) iterator.next();
if (prop.getPropertyNumber() == propId)
return prop;
}
return null;
}
Returns escher property by id. |
public int getEscherProperty(short propId,
int defaultValue) {
EscherOptRecord opt = (EscherOptRecord)getEscherChild(_escherContainer, EscherOptRecord.RECORD_ID);
EscherSimpleProperty prop = (EscherSimpleProperty)getEscherProperty(opt, propId);
return prop == null ? defaultValue : prop.getPropertyValue();
}
Get the value of a simple escher property for this shape. |
public Fill getFill() {
if(_fill == null) _fill = new Fill(this);
return _fill;
}
Fill properties of this shape |
public Hyperlink getHyperlink() {
return Hyperlink.find(this);
}
Returns the hyperlink assigned to this shape |
public Rectangle2D getLogicalAnchor2D() {
return getAnchor2D();
}
|
public Shape getOutline() {
return getLogicalAnchor2D();
}
Return shape outline as a java.awt.Shape object |
public Shape getParent() {
return _parent;
}
|
public int getShapeId() {
EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
return spRecord == null ? 0 : spRecord.getShapeId();
}
|
public String getShapeName() {
return ShapeTypes.typeName(getShapeType());
}
|
public int getShapeType() {
EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
return spRecord.getOptions() > > 4;
}
|
public Sheet getSheet() {
return _sheet;
}
|
public EscherContainerRecord getSpContainer() {
return _escherContainer;
}
|
public void moveTo(float x,
float y) {
Rectangle2D anchor = getAnchor2D();
anchor.setRect(x, y, anchor.getWidth(), anchor.getHeight());
setAnchor(anchor);
}
Moves the top left corner of the shape to the specified point. |
public void setAnchor(Rectangle2D anchor) {
EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
int flags = spRecord.getFlags();
if ((flags & EscherSpRecord.FLAG_CHILD) != 0){
EscherChildAnchorRecord rec = (EscherChildAnchorRecord)getEscherChild(_escherContainer, EscherChildAnchorRecord.RECORD_ID);
rec.setDx1((int)(anchor.getX()*MASTER_DPI/POINT_DPI));
rec.setDy1((int)(anchor.getY()*MASTER_DPI/POINT_DPI));
rec.setDx2((int)((anchor.getWidth() + anchor.getX())*MASTER_DPI/POINT_DPI));
rec.setDy2((int)((anchor.getHeight() + anchor.getY())*MASTER_DPI/POINT_DPI));
}
else {
EscherClientAnchorRecord rec = (EscherClientAnchorRecord)getEscherChild(_escherContainer, EscherClientAnchorRecord.RECORD_ID);
rec.setFlag((short)(anchor.getY()*MASTER_DPI/POINT_DPI));
rec.setCol1((short)(anchor.getX()*MASTER_DPI/POINT_DPI));
rec.setDx1((short)(((anchor.getWidth() + anchor.getX())*MASTER_DPI/POINT_DPI)));
rec.setRow1((short)(((anchor.getHeight() + anchor.getY())*MASTER_DPI/POINT_DPI)));
}
}
Sets the anchor (the bounding box rectangle) of this shape.
All coordinates should be expressed in points (72 dpi). |
public void setEscherProperty(short propId,
int value) {
EscherOptRecord opt = (EscherOptRecord)getEscherChild(_escherContainer, EscherOptRecord.RECORD_ID);
setEscherProperty(opt, propId, value);
}
Set an simple escher property for this shape. |
public static void setEscherProperty(EscherOptRecord opt,
short propId,
int value) {
java.util.List props = opt.getEscherProperties();
for ( Iterator iterator = props.iterator(); iterator.hasNext(); ) {
EscherProperty prop = (EscherProperty) iterator.next();
if (prop.getId() == propId){
iterator.remove();
}
}
if (value != -1) {
opt.addEscherProperty(new EscherSimpleProperty(propId, value));
opt.sortProperties();
}
}
Set an escher property for this shape. |
public void setShapeId(int id) {
EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
if(spRecord != null) spRecord.setShapeId(id);
}
|
public void setShapeType(int type) {
EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
spRecord.setOptions((short)(type < < 4 | 0x2));
}
|
public void setSheet(Sheet sheet) {
_sheet = sheet;
}
Assign the SlideShow this shape belongs to |