Methods Summary |
---|
public org.apache.poi.hslf.model.textproperties.TextProp | addWithName(java.lang.String name)Add the TextProp with this name to the list
// Find the base TextProp to base on
TextProp base = null;
for(int i=0; i < StyleTextPropAtom.characterTextPropTypes.length; i++) {
if(StyleTextPropAtom.characterTextPropTypes[i].getName().equals(name)) {
base = StyleTextPropAtom.characterTextPropTypes[i];
}
}
for(int i=0; i < StyleTextPropAtom.paragraphTextPropTypes.length; i++) {
if(StyleTextPropAtom.paragraphTextPropTypes[i].getName().equals(name)) {
base = StyleTextPropAtom.paragraphTextPropTypes[i];
}
}
if(base == null) {
throw new IllegalArgumentException("No TextProp with name " + name + " is defined to add from");
}
// Add a copy of this property, in the right place to the list
TextProp textProp = (TextProp)base.clone();
int pos = 0;
for(int i=0; i<textPropList.size(); i++) {
TextProp curProp = (TextProp)textPropList.get(i);
if(textProp.getMask() > curProp.getMask()) {
pos++;
}
}
textPropList.add(pos, textProp);
return textProp;
|
public int | buildTextPropList(int containsField, org.apache.poi.hslf.model.textproperties.TextProp[] potentialProperties, byte[] data, int dataOffset)For an existing set of text properties, build the list of
properties coded for in a given run of properties.
int bytesPassed = 0;
// For each possible entry, see if we match the mask
// If we do, decode that, save it, and shuffle on
for(int i=0; i<potentialProperties.length; i++) {
// Check there's still data left to read
if(dataOffset+bytesPassed >= data.length) {
// Out of data, can't be any more properties to go
return bytesPassed;
}
// Check if this property is found in the mask
if((containsField & potentialProperties[i].getMask()) != 0) {
// Bingo, data contains this property
TextProp prop = (TextProp)potentialProperties[i].clone();
int val = 0;
if(prop.getSize() == 2) {
val = LittleEndian.getShort(data,dataOffset+bytesPassed);
} else {
val = LittleEndian.getInt(data,dataOffset+bytesPassed);
}
prop.setValue(val);
bytesPassed += prop.getSize();
textPropList.add(prop);
}
}
// Return how many bytes were used
return bytesPassed;
|
public org.apache.poi.hslf.model.textproperties.TextProp | findByName(java.lang.String textPropName)Fetch the TextProp with this name, or null if it isn't present
for(int i=0; i<textPropList.size(); i++) {
TextProp prop = (TextProp)textPropList.get(i);
if(prop.getName().equals(textPropName)) {
return prop;
}
}
return null;
|
public int | getCharactersCovered()Fetch the number of characters this styling applies to return charactersCovered;
|
public short | getReservedField()
return reservedField;
|
public java.util.LinkedList | getTextPropList()Fetch the TextProps that define this styling return textPropList;
|
public void | setReservedField(short val)
reservedField = val;
|
public void | updateTextSize(int textSize)Update the size of the text that this set of properties
applies to
charactersCovered = textSize;
|
public void | writeOut(java.io.OutputStream o)Writes out to disk the header, and then all the properties
// First goes the number of characters we affect
StyleTextPropAtom.writeLittleEndian(charactersCovered,o);
// Then we have the reserved field if required
if(reservedField > -1) {
StyleTextPropAtom.writeLittleEndian(reservedField,o);
}
// Then the mask field
int mask = 0;
for(int i=0; i<textPropList.size(); i++) {
TextProp textProp = (TextProp)textPropList.get(i);
//sometimes header indicates that the bitmask is present but its value is 0
if (textProp instanceof BitMaskTextProp)
mask |= (textProp.getWriteMask() == 0 ? 1 : textProp.getWriteMask());
else
mask |= textProp.getWriteMask();
}
StyleTextPropAtom.writeLittleEndian(mask,o);
// Then the contents of all the properties
for(int i=0; i<textPropList.size(); i++) {
TextProp textProp = (TextProp)textPropList.get(i);
int val = textProp.getValue();
if(textProp.getSize() == 2) {
StyleTextPropAtom.writeLittleEndian((short)val,o);
} else {
StyleTextPropAtom.writeLittleEndian(val,o);
}
}
|