expose access to OEPlaceholderAtom so that users can determine whether a shape represents ppt placeholder (date/time, footer or slide number)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@664493 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4360c3607d
commit
3cbc6fc52a
@ -37,6 +37,9 @@
|
|||||||
|
|
||||||
<!-- Don't forget to update status.xml too! -->
|
<!-- Don't forget to update status.xml too! -->
|
||||||
<release version="3.1-final" date="2008-06-??">
|
<release version="3.1-final" date="2008-06-??">
|
||||||
|
<action dev="POI-DEVELOPERS" type="add">Support custom image renderers in HSLF</action>
|
||||||
|
<action dev="POI-DEVELOPERS" type="fix">Correctly increment the reference count of a blip when a picture is inserted</action>
|
||||||
|
<action dev="POI-DEVELOPERS" type="fix">45110 - Fixed TextShape.resizeToFitText() to properly resize TextShape</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy</action>
|
<action dev="POI-DEVELOPERS" type="fix">45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary</action>
|
<action dev="POI-DEVELOPERS" type="fix">45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate</action>
|
<action dev="POI-DEVELOPERS" type="fix">45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate</action>
|
||||||
|
@ -34,6 +34,9 @@
|
|||||||
<!-- Don't forget to update changes.xml too! -->
|
<!-- Don't forget to update changes.xml too! -->
|
||||||
<changes>
|
<changes>
|
||||||
<release version="3.1-final" date="2008-06-??">
|
<release version="3.1-final" date="2008-06-??">
|
||||||
|
<action dev="POI-DEVELOPERS" type="add">Support custom image renderers in HSLF</action>
|
||||||
|
<action dev="POI-DEVELOPERS" type="fix">Correctly increment the reference count of a blip when a picture is inserted</action>
|
||||||
|
<action dev="POI-DEVELOPERS" type="fix">45110 - Fixed TextShape.resizeToFitText() to properly resize TextShape</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy</action>
|
<action dev="POI-DEVELOPERS" type="fix">45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary</action>
|
<action dev="POI-DEVELOPERS" type="fix">45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate</action>
|
<action dev="POI-DEVELOPERS" type="fix">45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate</action>
|
||||||
|
@ -51,21 +51,7 @@ public abstract class MasterSheet extends Sheet {
|
|||||||
if(!(shape instanceof TextShape)) return false;
|
if(!(shape instanceof TextShape)) return false;
|
||||||
|
|
||||||
TextShape tx = (TextShape)shape;
|
TextShape tx = (TextShape)shape;
|
||||||
TextRun run = tx.getTextRun();
|
return tx.getPlaceholderAtom() != null;
|
||||||
if(run == null) return false;
|
|
||||||
|
|
||||||
Record[] records = run._records;
|
|
||||||
for (int i = 0; i < records.length; i++) {
|
|
||||||
int type = (int)records[i].getRecordType();
|
|
||||||
if (type == RecordTypes.BaseTextPropAtom.typeID ||
|
|
||||||
type == RecordTypes.DateTimeMCAtom.typeID ||
|
|
||||||
type == RecordTypes.GenericDateMCAtom.typeID ||
|
|
||||||
type == RecordTypes.FooterMCAtom.typeID ||
|
|
||||||
type == RecordTypes.SlideNumberMCAtom.typeID
|
|
||||||
) return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -20,10 +20,12 @@ package org.apache.poi.hslf.model;
|
|||||||
import org.apache.poi.ddf.*;
|
import org.apache.poi.ddf.*;
|
||||||
import org.apache.poi.util.LittleEndian;
|
import org.apache.poi.util.LittleEndian;
|
||||||
import org.apache.poi.hslf.record.ColorSchemeAtom;
|
import org.apache.poi.hslf.record.ColorSchemeAtom;
|
||||||
|
import org.apache.poi.hslf.record.Record;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.geom.AffineTransform;
|
import java.awt.geom.AffineTransform;
|
||||||
import java.awt.geom.Rectangle2D;
|
import java.awt.geom.Rectangle2D;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An abstract simple (non-group) shape.
|
* An abstract simple (non-group) shape.
|
||||||
@ -284,4 +286,28 @@ public class SimpleShape extends Shape {
|
|||||||
ShapePainter.paint(this, graphics);
|
ShapePainter.paint(this, graphics);
|
||||||
graphics.setTransform(at);
|
graphics.setTransform(at);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find a record in the underlying EscherClientDataRecord
|
||||||
|
*
|
||||||
|
* @param recordType type of the record to search
|
||||||
|
*/
|
||||||
|
protected Record getClientDataRecord(int recordType) {
|
||||||
|
Record oep = null;
|
||||||
|
EscherContainerRecord spContainer = getSpContainer();
|
||||||
|
for (Iterator it = spContainer.getChildRecords().iterator(); it.hasNext();) {
|
||||||
|
EscherRecord obj = (EscherRecord) it.next();
|
||||||
|
if (obj.getRecordId() == EscherClientDataRecord.RECORD_ID) {
|
||||||
|
byte[] data = obj.serialize();
|
||||||
|
Record[] records = Record.findChildRecords(data, 8, data.length - 8);
|
||||||
|
for (int j = 0; j < records.length; j++) {
|
||||||
|
if (records[j].getRecordType() == recordType) {
|
||||||
|
return records[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return oep;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -147,6 +147,7 @@ public class Slide extends Sheet
|
|||||||
int dgId = dgg.getMaxDrawingGroupId() + 1;
|
int dgId = dgg.getMaxDrawingGroupId() + 1;
|
||||||
dg.setOptions((short)(dgId << 4));
|
dg.setOptions((short)(dgId << 4));
|
||||||
dgg.setDrawingsSaved(dgg.getDrawingsSaved() + 1);
|
dgg.setDrawingsSaved(dgg.getDrawingsSaved() + 1);
|
||||||
|
dgg.setMaxDrawingGroupId(dgId);
|
||||||
|
|
||||||
for (Iterator it = dgContainer.getChildContainers().iterator(); it.hasNext(); ) {
|
for (Iterator it = dgContainer.getChildContainers().iterator(); it.hasNext(); ) {
|
||||||
EscherContainerRecord c = (EscherContainerRecord)it.next();
|
EscherContainerRecord c = (EscherContainerRecord)it.next();
|
||||||
|
@ -683,4 +683,13 @@ public class TextRun
|
|||||||
String ns = s.replaceAll("\\r?\\n", "\r");
|
String ns = s.replaceAll("\\r?\\n", "\r");
|
||||||
return ns;
|
return ns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns records that make up this text run
|
||||||
|
*
|
||||||
|
* @return text run records
|
||||||
|
*/
|
||||||
|
public Record[] getRecords(){
|
||||||
|
return _records;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -138,7 +138,7 @@ public class StyleTextPropAtom extends RecordAtom
|
|||||||
new TextProp(2, 0x4000, "spaceafter"),
|
new TextProp(2, 0x4000, "spaceafter"),
|
||||||
new TextProp(2, 0x8000, "para_unknown_4"),
|
new TextProp(2, 0x8000, "para_unknown_4"),
|
||||||
new TextProp(2, 0x10000, "para_unknown_5"),
|
new TextProp(2, 0x10000, "para_unknown_5"),
|
||||||
new TextProp(2, 0xE0000, "para_unknown_6"),
|
new TextProp(2, 0xA0000, "para_unknown_6"),
|
||||||
new TextProp(2, 0x200000, "para_unknown_7")
|
new TextProp(2, 0x200000, "para_unknown_7")
|
||||||
};
|
};
|
||||||
/** All the different kinds of character properties we might handle */
|
/** All the different kinds of character properties we might handle */
|
||||||
@ -167,7 +167,7 @@ public class StyleTextPropAtom extends RecordAtom
|
|||||||
/**
|
/**
|
||||||
* For the Text Style Properties (StyleTextProp) Atom
|
* For the Text Style Properties (StyleTextProp) Atom
|
||||||
*/
|
*/
|
||||||
protected StyleTextPropAtom(byte[] source, int start, int len) {
|
public StyleTextPropAtom(byte[] source, int start, int len) {
|
||||||
// Sanity Checking - we're always at least 8+10 bytes long
|
// Sanity Checking - we're always at least 8+10 bytes long
|
||||||
if(len < 18) {
|
if(len < 18) {
|
||||||
len = 18;
|
len = 18;
|
||||||
|
Loading…
Reference in New Issue
Block a user