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

📄 jremcommanddoc.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.model;import java.util.ArrayList;import java.util.Collection;import fildiv.jremcntl.common.core.Command;import fildiv.jremcntl.common.core.ConfigIntegrityInfo;import fildiv.jremcntl.common.core.Context;import fildiv.jremcntl.common.core.Extension;import fildiv.jremcntl.common.core.JRemMobileKeys;import fildiv.jremcntl.common.core.SupportExtension;import fildiv.jremcntl.common.util.JRemUtils;import fildiv.jremcntl.server.core.JRemProperties;import fildiv.jremcntl.server.core.JRemPropertyDomainValue;import fildiv.jremcntl.server.core.JRemPropertyManager;import fildiv.jremcntl.server.gui.core.AbstractDocument;import fildiv.jremcntl.server.gui.core.DocumentEvent;import fildiv.jremcntl.server.gui.core.DocumentListener;import fildiv.jremcntl.server.gui.core.DocumentModifiedEvent;import fildiv.jremcntl.server.utils.JRemServerUtils;public class JRemCommandDoc extends AbstractDocument 	implements Command, JRemPropertyManager {	public static final int MODIFIED_CONTENT_TYPE_CHILDREN_MOD = 1;	private Context context;	protected int id;	private String exePath = "";	private String desc = "";	private String key = "";	private String question = "";	private JRemExtensionDoc extDoc = null;		private DocumentListener listener;	public JRemCommandDoc(String desc, 			String exePath, String key) {		this(null, 0, desc, exePath, key, "", true);	}	public JRemCommandDoc(Context context, int id, String desc, 			String exePath, String key, String question) {		this(context, id, desc, exePath, key, question, true);	}		protected JRemCommandDoc(Context context, int id, String desc, 			String exePath, String key, String question, 			boolean setModified) {				this.context = context;		this.id = id;		this.desc = desc;		this.exePath = exePath;		this.key = key;		this.question = question;				setModified(setModified);				listener = new DocumentListener() {			public void actionPerformed(DocumentEvent event) {				JRemCommandDoc.this.actionPerformed(event);			}		};	}		public Context getContext() {		return context;	}	public String getDesc() {		return desc;	}		public void setDesc(String desc) {				if (checkModified(this.desc, desc)) {			this.desc = desc;						setModified(true);			fireGenericModifyEvent();		}		}	public String getExePath() {		return exePath;	}	public void setExePath(String exePath) {				if (checkModified(this.exePath, exePath)) {			this.exePath = exePath;						setModified(true);			fireGenericModifyEvent();		}			}		public void setQuestion(String question) {		if (checkModified(this.question, question)) {			this.question = question;						setModified(true);			fireGenericModifyEvent();		}					}		public int getID() {		return id;	}		public String getKey() {		return key;	}	public void setKey(String key) {				if (checkModified(this.key, key)) {			this.key = key;						setModified(true);			fireGenericModifyEvent();		}			}			public String toString() {		return !JRemUtils.isEmptyString(key) ? 				"(" + key + ") " + desc : desc;	}		public boolean equals(Object obj) {				if (obj == null)			return false;				if (!(obj instanceof JRemCommandDoc))			return false;				JRemCommandDoc ctx = (JRemCommandDoc) obj;		return id == ctx.getID();	}	public int hashCode() {		return id;	}	protected void setContext(JRemContextDoc context) {		this.context = context;	}	public String getName() {		return id + " " + desc;	}		public String getBaseDir() {				return JRemServerUtils.getBasePath(this);	}		public String getQuestion() {		return question;	}		protected void setModified(boolean modified) {		super.setModified(modified);	}		public boolean isPropertyEditable(String name) {				if (JRemProperties.PROP_BASE_DIR.equalsIgnoreCase(name) ||			JRemProperties.PROP_QUESTION.equalsIgnoreCase(name))			return true;				return isManageProperty(name);	}	public boolean isPropertyEnabled(String name) {				if (JRemProperties.PROP_DEF_VIEW.equalsIgnoreCase(name))			return false;				return isManageProperty(name);	}	public Object getPropertyValue(String name) {		if (JRemProperties.PROP_ID.equalsIgnoreCase(name))			return String.valueOf(id);					if (JRemProperties.PROP_DESCRIPTION.equalsIgnoreCase(name))			return desc;		if (JRemProperties.PROP_MOBILE_KEY.equalsIgnoreCase(name))			return key;					if (JRemProperties.PROP_EXE_PATH.equalsIgnoreCase(name))			return exePath;		if (JRemProperties.PROP_BASE_DIR.equalsIgnoreCase(name))			return getBaseDir();		if (JRemProperties.PROP_QUESTION.equalsIgnoreCase(name))			return getQuestion();		if (JRemProperties.PROP_DEF_VIEW.equalsIgnoreCase(name))			return new Short(context.getDefView());		return null;	}	public void setPropertyValue(String name, Object value) {		if (JRemProperties.PROP_DESCRIPTION.equalsIgnoreCase(name))			setDesc( (String) value);		else if (JRemProperties.PROP_MOBILE_KEY.equalsIgnoreCase(name))			setKey( (String) value);		else if (JRemProperties.PROP_EXE_PATH.equalsIgnoreCase(name))			setExePath( (String) value);		else if (JRemProperties.PROP_QUESTION.equalsIgnoreCase(name)) {			setQuestion( (String) value);		}else if (JRemProperties.PROP_DEF_VIEW.equalsIgnoreCase(name))			throw new UnsupportedOperationException("set non supported");	}		public boolean isManageProperty(String name) {				return 			JRemProperties.PROP_ID.equalsIgnoreCase(name) ||			JRemProperties.PROP_DESCRIPTION.equalsIgnoreCase(name) ||			JRemProperties.PROP_MOBILE_KEY.equalsIgnoreCase(name) ||			JRemProperties.PROP_EXE_PATH.equalsIgnoreCase(name) ||			JRemProperties.PROP_QUESTION.equalsIgnoreCase(name) ||			JRemProperties.PROP_DEF_VIEW.equalsIgnoreCase(name);	}	public Collection getPropertyDomainValues(String name) {		Collection c = new ArrayList();		if (name.equals(JRemProperties.PROP_MOBILE_KEY)) {			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_NONE, "<none>"));			// number keys						c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_0, "0"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_1, "1"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_2, "2"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_3, "3"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_4, "4"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_5, "5"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_6, "6"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_7, "7"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_8, "8"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_9, "9"));			// special keys						c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_P, "#"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_S, "*"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_UP, "<up>"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_DOWN, "<down>")); 			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_LEFT, "<left>"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_RIGHT, "<right>"));			c.add(new JRemPropertyDomainValue(JRemMobileKeys.KEY_FIRE, "<fire>"));					} else if (name.equals(JRemProperties.PROP_DEF_VIEW)) {						JRemContextDoc context = (JRemContextDoc) this.context;			c = context.getPropertyDomainValues(name);		}				return c;		}		public ConfigIntegrityInfo checkValid() {		if (JRemUtils.isEmptyString(desc))			return ConfigIntegrityInfo.newInvalidIntegrity(				this, "\"Description\" cannot be empty.");		if (JRemUtils.isEmptyString(exePath))			return ConfigIntegrityInfo.newInvalidIntegrity(					this, "\"Command Path\" cannot be empty.");				if (extDoc != null) {			ConfigIntegrityInfo cii = extDoc.checkValid();			if (cii != ConfigIntegrityInfo.CONFIG_INTEGRIY_VALID)				return ConfigIntegrityInfo.newInvalidIntegrity(this, cii.getReason());					}				return ConfigIntegrityInfo.CONFIG_INTEGRIY_VALID;	}	public void resetState() {		super.resetState();		if (extDoc != null)			extDoc.resetState();	}		protected void attachExtensionDoc(JRemExtensionDoc extDoc) {				if (this.extDoc != null) 			this.extDoc.removeActionListener(listener);		this.extDoc = extDoc;		if (extDoc != null)			extDoc.addActionListener(listener);	}		public void setExtension(Extension be) {		attachExtensionDoc( (JRemExtensionDoc) be);		setModified(true);		fireGenericModifyEvent();	}		public boolean isInHerited() {		return extDoc == null;	}	public SupportExtension getParent() {		return context;	}	public Extension getExtension(boolean parentRecursion) {				if (extDoc == null && parentRecursion)			return getContext().getExtension(parentRecursion);				return extDoc;	}		protected void actionPerformed(DocumentEvent event) {		if (!(event instanceof DocumentModifiedEvent))			return;				fireModifyEvent(event, MODIFIED_CONTENT_TYPE_CHILDREN_MOD);	}		public boolean isModified() {				if (super.isModified()) 			return true;				if (extDoc != null && extDoc.isModified())			return true;		return false;	}}

⌨️ 快捷键说明

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