⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtfproperty.java

📁 处理PDF
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	}
	/**
	 * 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 + -