📄 rtfproperty.java
字号:
}
/**
* Set the value of the property identified by the parameter.
*
* @param propertyName The property name to set
* @param propertyValueNew The object to set the property value to
* @return <code>true</code> for handled or <code>false</code> if <code>propertyName</code> or <code>propertyValue</code> is <code>null</code>
*/
private boolean setProperty(String propertyName, Object propertyValueNew) {
if(propertyName == null || propertyValueNew == null) return false;
Object propertyValueOld = getProperty(propertyName);
if(propertyValueOld instanceof Integer && propertyValueNew instanceof Integer) {
int valueOld = ((Integer)propertyValueOld).intValue();
int valueNew = ((Integer)propertyValueNew).intValue();
if (valueOld==valueNew) return true;
} else {
if(propertyValueOld instanceof Long && propertyValueNew instanceof Long) {
long valueOld = ((Long)propertyValueOld).intValue();
long valueNew = ((Long)propertyValueNew).intValue();
if (valueOld==valueNew) return true;
}
}
beforeChange(propertyName);
properties.put(propertyName, propertyValueNew);
afterChange(propertyName);
setModified(propertyName, true);
return true;
}
/**
* Set the value of the property identified by the parameter.
*
* @param propertyName The property name to set
* @param propertyValueNew The object to set the property value to
* @return <code>true</code> for handled or <code>false</code> if <code>propertyName</code> is <code>null</code>
*/
private boolean setProperty(String propertyName, int propertyValueNew) {
if(propertyName == null) return false;
Object propertyValueOld = getProperty(propertyName);
if(propertyValueOld instanceof Integer) {
int valueOld = ((Integer)propertyValueOld).intValue();
if (valueOld==propertyValueNew) return true;
}
beforeChange(propertyName);
properties.put(propertyName, new Integer(propertyValueNew));
afterChange(propertyName);
setModified(propertyName, true);
return true;
}
/**
* Add the value of the property identified by the parameter.
*
* @param propertyName The property name to set
* @param propertyValue The object to set the property value to
* @return <code>true</code> for handled or <code>false</code> if <code>propertyName</code> is <code>null</code>
*/
private boolean addToProperty(String propertyName, int propertyValue) {
if(propertyName == null) return false;
int value = ((Integer)properties.get(propertyName)).intValue();
if((value | propertyValue) == value) return true;
value |= propertyValue;
beforeChange(propertyName);
properties.put(propertyName, new Integer(value));
afterChange(propertyName);
setModified(propertyName, true);
return true;
}
/**
* Set the value of the property identified by the parameter.
*
* @param propertyName The property name to set
* @param propertyValueNew The object to set the property value to
* @return <code>true</code> for handled or <code>false</code> if <code>propertyName</code> is <code>null</code>
*/
private boolean setProperty(String propertyName, long propertyValueNew) {
if(propertyName == null) return false;
Object propertyValueOld = getProperty(propertyName);
if(propertyValueOld instanceof Long) {
long valueOld = ((Long)propertyValueOld).longValue();
if (valueOld==propertyValueNew) return true;
}
beforeChange(propertyName);
properties.put(propertyName, new Long(propertyValueNew));
afterChange(propertyName);
setModified(propertyName, true);
return true;
}
/**
* Add the value of the property identified by the parameter.
*
* @param propertyName The property name to set
* @param propertyValue The object to set the property value to
* @return <code>true</code> for handled or <code>false</code> if <code>propertyName</code> is <code>null</code>
*/
private boolean addToProperty(String propertyName, long propertyValue) {
if(propertyName == null) return false;
long value = ((Long)properties.get(propertyName)).longValue();
if((value | propertyValue) == value) return true;
value |= propertyValue;
beforeChange(propertyName);
properties.put(propertyName, new Long(value));
afterChange(propertyName);
setModified(propertyName, true);
return true;
}
private boolean removeProperty(String propertyName) {
if(propertyName == null) return false;
if(properties.containsKey(propertyName)) {
beforeChange(propertyName);
properties.remove(propertyName);
afterChange(propertyName);
setModified(propertyName, true);
}
return true;
}
/**
* Get the value of the property identified by the parameter.
*
* @param propertyName String containing the property name to get
* @return Property Object requested or null if not found in map.
*/
public Object getProperty(String propertyName) {
return properties.get(propertyName);
}
/**
* Get a group of properties.
*
* @param propertyGroup The group name to obtain.
* @return Properties object with requested values.
*/
public HashMap getProperties(String propertyGroup) {
HashMap props = new HashMap();
if(!properties.isEmpty()) {
//properties.get
Iterator it = properties.keySet().iterator();
while(it.hasNext()) {
String key = (String)it.next();
if(key.startsWith(propertyGroup)) {
props.put(key, this.properties.get(key));
}
}
}
return props;
}
/**
* @return the modified
*/
public boolean isModified() {
return modifiedCharacter || modifiedParagraph || modifiedSection || modifiedDocument;
}
/**
* @param propertyName the propertyName that is modified
* @param modified the modified to set
*/
public void setModified(String propertyName, boolean modified) {
if(propertyName.startsWith(CHARACTER)) {
this.setModifiedCharacter(modified);
} else {
if(propertyName.startsWith(PARAGRAPH)) {
this.setModifiedParagraph(modified);
} else {
if(propertyName.startsWith(SECTION)) {
this.setModifiedSection(modified);
} else {
if(propertyName.startsWith(DOCUMENT)) {
this.setModifiedDocument(modified);
}
}
}
}
}
/**
* @return the modifiedCharacter
*/
public boolean isModifiedCharacter() {
return modifiedCharacter;
}
/**
* @param modifiedCharacter the modifiedCharacter to set
*/
public void setModifiedCharacter(boolean modifiedCharacter) {
this.modifiedCharacter = modifiedCharacter;
}
/**
* @return the modifiedParagraph
*/
public boolean isModifiedParagraph() {
return modifiedParagraph;
}
/**
* @param modifiedParagraph the modifiedParagraph to set
*/
public void setModifiedParagraph(boolean modifiedParagraph) {
this.modifiedParagraph = modifiedParagraph;
}
/**
* @return the modifiedSection
*/
public boolean isModifiedSection() {
return modifiedSection;
}
/**
* @param modifiedSection the modifiedSection to set
*/
public void setModifiedSection(boolean modifiedSection) {
this.modifiedSection = modifiedSection;
}
/**
* @return the modifiedDocument
*/
public boolean isModifiedDocument() {
return modifiedDocument;
}
/**
* @param modifiedDocument the modifiedDocument to set
*/
public void setModifiedDocument(boolean modifiedDocument) {
this.modifiedDocument = modifiedDocument;
}
/**
* Adds a <CODE>RtfPropertyListener</CODE> to the <CODE>RtfProperty</CODE>.
*
* @param listener
* the new RtfPropertyListener.
*/
public void addRtfPropertyListener(RtfPropertyListener listener) {
listeners.add(listener);
}
/**
* Removes a <CODE>RtfPropertyListener</CODE> from the <CODE>RtfProperty</CODE>.
*
* @param listener
* the new RtfPropertyListener.
*/
public void removeRtfPropertyListener(RtfPropertyListener listener) {
listeners.remove(listener);
}
public void beforeChange(String propertyName) {
// call listener for all
RtfPropertyListener listener;
for (Iterator iterator = listeners.iterator(); iterator.hasNext();) {
listener = (RtfPropertyListener) iterator.next();
listener.beforePropertyChange(propertyName);
}
if(propertyName.startsWith(CHARACTER)) {
// call listener for character chane
} else {
if(propertyName.startsWith(PARAGRAPH)) {
// call listener for paragraph change
} else {
if(propertyName.startsWith(SECTION)) {
// call listener for section change
} else {
if(propertyName.startsWith(DOCUMENT)) {
// call listener for document change
}
}
}
}
}
public void afterChange(String propertyName) {
// call listener for all
RtfPropertyListener listener;
for (Iterator iterator = listeners.iterator(); iterator.hasNext();) {
listener = (RtfPropertyListener) iterator.next();
listener.afterPropertyChange(propertyName);
}
if(propertyName.startsWith(CHARACTER)) {
// call listener for character chane
} else {
if(propertyName.startsWith(PARAGRAPH)) {
// call listener for paragraph change
} else {
if(propertyName.startsWith(SECTION)) {
// call listener for section change
} else {
if(propertyName.startsWith(DOCUMENT)) {
// call listener for document change
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -