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

📄 abstractdocument.java

📁 JRemoteControl is a simple Java&#8482 driven bluetooth remote control.It allows you to initiate virt
💻 JAVA
字号:
/* * JRemCntl - Copyright (C) 2007 Filippo Di Vattimo <fildiv@gmail.com> * See COPYING */package fildiv.jremcntl.server.gui.core;import java.util.ArrayList;import java.util.Hashtable;import java.util.Iterator;import java.util.List;import java.util.Map;public abstract class AbstractDocument implements Document {	protected final DocumentEvent DOC_ATTACHED_EVENT;	protected final DocumentEvent DOC_DETACHED_EVENT;	protected final DocumentEvent DOC_MODIFIED_EVENT;		protected final int GENERIC_MODIFIED_TYPE = 0;			private List listeners;	private Map cachedEvents;		private boolean modified;	private int silentModeCount;	public AbstractDocument() {		DOC_ATTACHED_EVENT = new DocumentAttachedEvent(this);		DOC_DETACHED_EVENT = new DocumentDetachedEvent(this);		DOC_MODIFIED_EVENT = new DocumentModifiedEvent(this);	}		public void addActionListener(DocumentListener listener) {		getListeners().add(listener);		listener.actionPerformed(DOC_ATTACHED_EVENT);	}		public void removeActionListener(DocumentListener listener) {		getListeners().remove(listener);		listener.actionPerformed(DOC_DETACHED_EVENT);	}	protected List getListeners() {		if (listeners == null)			listeners =  new ArrayList();				return listeners;	}		public boolean isModified() {		return modified;	}		protected void setModified(boolean modified) {		this.modified = modified;	}		public boolean isSilentMode() {		return silentModeCount > 0;	}		public void setSilentMode(boolean silent) {				int value = silent ? 1 : -1;		int newSilentModeCount = silentModeCount + value;		if (newSilentModeCount < 0)			throw new IllegalStateException();				if (newSilentModeCount == 0)			firePendingEvents();				silentModeCount = newSilentModeCount;	}		private void firePendingEvents() {		if (cachedEvents == null)			return;				try {								for (Iterator i = cachedEvents.values().iterator(); i.hasNext(); ) {				DocumentEvent event = (DocumentEvent) i.next();				fireEventHelper(event);			}				} finally {					cachedEvents = null;		}	}	protected void fireGenericModifyEvent() {		fireModifyEvent(GENERIC_MODIFIED_TYPE);	}		protected void fireModifyEvent(int modifyType) {		fireModifyEvent(this, modifyType, null);	}	protected void fireModifyEvent(Object affectObject, int modifyType) {		fireModifyEvent(affectObject, modifyType, null);	}	protected void fireModifyEvent(int modifyType, Object modifySupport) {		fireModifyEvent(this, modifyType, modifySupport);	}	protected void fireModifyEvent(Object affectObject, int modifyType, 			Object modifySupport) {		DocumentEvent event = new DocumentModifiedEvent(this, 				new DocModifiedContent(affectObject, modifyType, modifySupport));		fireEvent(event);	}		protected void fireEvent(DocumentEvent event) {				if (listeners == null)			return;				if (isSilentMode())			addEventToCache(event);		else			fireEventHelper(event);	}	private void fireEventHelper(DocumentEvent event) {				assert listeners != null;				for (Iterator i = listeners.iterator(); i.hasNext(); ) {						DocumentListener listener = (DocumentListener) i.next();			listener.actionPerformed(event);		}	}	protected void addEventToCache(DocumentEvent event) {		if (cachedEvents == null)			cachedEvents = new Hashtable();				cachedEvents.put(event, event);			}	protected void removeAllListeners() {		try {					for (Iterator i = listeners.iterator(); i.hasNext(); ) {								DocumentListener listener = (DocumentListener) i.next();				listener.actionPerformed(DOC_DETACHED_EVENT);			}				} finally {						listeners = null;		}	}	public void resetState() {		setModified(false);	}		protected boolean checkModified(Object value1, Object value2) {		return !value1.equals(value2);	}	protected boolean checkModified(String value1, String value2) {		return !value1.equals(value2);	}	protected boolean checkModified(long value1, long value2) {		return value1 != value2;	}	protected boolean checkModified(boolean value1, boolean value2) {		return value1 != value2;	}	public abstract String getName();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -