Search in sources :

Example 6 with ExObjRefAtom

use of org.apache.poi.hslf.record.ExObjRefAtom in project poi by apache.

the class OLEShape method setObjectID.

/**
     * Set the unique identifier for the OLE object and
     * register it in the necessary structures
     * 
     * @param objectId the unique identifier for the OLE object
     */
public void setObjectID(int objectId) {
    setEscherProperty(EscherProperties.BLIP__PICTUREID, objectId);
    EscherContainerRecord ecr = getSpContainer();
    EscherSpRecord spRecord = ecr.getChildById(EscherSpRecord.RECORD_ID);
    spRecord.setFlags(spRecord.getFlags() | EscherSpRecord.FLAG_OLESHAPE);
    HSLFEscherClientDataRecord cldata = getClientData(true);
    ExObjRefAtom uer = null;
    for (Record r : cldata.getHSLFChildRecords()) {
        if (r.getRecordType() == RecordTypes.ExObjRefAtom.typeID) {
            uer = (ExObjRefAtom) r;
            break;
        }
    }
    if (uer == null) {
        uer = new ExObjRefAtom();
        cldata.addChild(uer);
    }
    uer.setExObjIdRef(objectId);
}
Also used : ExObjRefAtom(org.apache.poi.hslf.record.ExObjRefAtom) HSLFEscherClientDataRecord(org.apache.poi.hslf.record.HSLFEscherClientDataRecord) EscherSpRecord(org.apache.poi.ddf.EscherSpRecord) EscherContainerRecord(org.apache.poi.ddf.EscherContainerRecord) HSLFEscherClientDataRecord(org.apache.poi.hslf.record.HSLFEscherClientDataRecord) Record(org.apache.poi.hslf.record.Record) EscherContainerRecord(org.apache.poi.ddf.EscherContainerRecord) EscherSpRecord(org.apache.poi.ddf.EscherSpRecord)

Example 7 with ExObjRefAtom

use of org.apache.poi.hslf.record.ExObjRefAtom in project poi by apache.

the class HSLFShapeFactory method createFrame.

private static HSLFShape createFrame(EscherContainerRecord spContainer, ShapeContainer<HSLFShape, HSLFTextParagraph> parent) {
    InteractiveInfo info = getClientDataRecord(spContainer, RecordTypes.InteractiveInfo.typeID);
    if (info != null && info.getInteractiveInfoAtom() != null) {
        switch(info.getInteractiveInfoAtom().getAction()) {
            case InteractiveInfoAtom.ACTION_OLE:
                return new OLEShape(spContainer, parent);
            case InteractiveInfoAtom.ACTION_MEDIA:
                return new MovieShape(spContainer, parent);
            default:
                break;
        }
    }
    ExObjRefAtom oes = getClientDataRecord(spContainer, RecordTypes.ExObjRefAtom.typeID);
    return (oes != null) ? new OLEShape(spContainer, parent) : new HSLFPictureShape(spContainer, parent);
}
Also used : ExObjRefAtom(org.apache.poi.hslf.record.ExObjRefAtom) MovieShape(org.apache.poi.hslf.model.MovieShape) InteractiveInfo(org.apache.poi.hslf.record.InteractiveInfo) OLEShape(org.apache.poi.hslf.model.OLEShape)

Example 8 with ExObjRefAtom

use of org.apache.poi.hslf.record.ExObjRefAtom in project poi by apache.

the class MovieShape method getPath.

/**
     * @return UNC or local path to a video file
     */
@SuppressWarnings("resource")
public String getPath() {
    ExObjRefAtom oe = getClientDataRecord(RecordTypes.ExObjRefAtom.typeID);
    int idx = oe.getExObjIdRef();
    HSLFSlideShow ppt = getSheet().getSlideShow();
    ExObjList lst = (ExObjList) ppt.getDocumentRecord().findFirstOfType(RecordTypes.ExObjList.typeID);
    if (lst == null) {
        return null;
    }
    Record[] r = lst.getChildRecords();
    for (int i = 0; i < r.length; i++) {
        if (r[i] instanceof ExMCIMovie) {
            ExMCIMovie mci = (ExMCIMovie) r[i];
            ExVideoContainer exVideo = mci.getExVideo();
            int objectId = exVideo.getExMediaAtom().getObjectId();
            if (objectId == idx) {
                return exVideo.getPathAtom().getText();
            }
        }
    }
    return null;
}
Also used : ExObjList(org.apache.poi.hslf.record.ExObjList) ExObjRefAtom(org.apache.poi.hslf.record.ExObjRefAtom) HSLFEscherClientDataRecord(org.apache.poi.hslf.record.HSLFEscherClientDataRecord) Record(org.apache.poi.hslf.record.Record) EscherContainerRecord(org.apache.poi.ddf.EscherContainerRecord) HSLFSlideShow(org.apache.poi.hslf.usermodel.HSLFSlideShow) ExVideoContainer(org.apache.poi.hslf.record.ExVideoContainer) ExMCIMovie(org.apache.poi.hslf.record.ExMCIMovie)

Aggregations

ExObjRefAtom (org.apache.poi.hslf.record.ExObjRefAtom)8 EscherContainerRecord (org.apache.poi.ddf.EscherContainerRecord)4 HSLFEscherClientDataRecord (org.apache.poi.hslf.record.HSLFEscherClientDataRecord)4 EscherSpRecord (org.apache.poi.ddf.EscherSpRecord)2 AnimationInfo (org.apache.poi.hslf.record.AnimationInfo)2 AnimationInfoAtom (org.apache.poi.hslf.record.AnimationInfoAtom)2 InteractiveInfo (org.apache.poi.hslf.record.InteractiveInfo)2 Record (org.apache.poi.hslf.record.Record)2 HSLFException (org.apache.poi.hslf.exceptions.HSLFException)1 MovieShape (org.apache.poi.hslf.model.MovieShape)1 OLEShape (org.apache.poi.hslf.model.OLEShape)1 ExMCIMovie (org.apache.poi.hslf.record.ExMCIMovie)1 ExObjList (org.apache.poi.hslf.record.ExObjList)1 ExVideoContainer (org.apache.poi.hslf.record.ExVideoContainer)1 InteractiveInfoAtom (org.apache.poi.hslf.record.InteractiveInfoAtom)1 HSLFSlideShow (org.apache.poi.hslf.usermodel.HSLFSlideShow)1