stringchoiceeditor.java
来自「很棒的web服务器源代码」· Java 代码 · 共 223 行
JAVA
223 行
// StringChoiceEditor.java// $Id: StringChoiceEditor.java,v 1.5 2000/08/16 21:37:29 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1997.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigadmin.attributes;import java.awt.Component;import java.awt.Dimension;import java.awt.event.TextListener;import java.awt.event.TextEvent;import java.awt.event.ItemEvent;import javax.swing.event.DocumentListener;import javax.swing.event.DocumentEvent;import java.util.Properties;import org.w3c.tools.resources.Attribute;import org.w3c.jigadm.RemoteResourceWrapper;import org.w3c.jigadm.editors.AttributeEditor;import org.w3c.jigadm.editors.EditorFeeder;import org.w3c.jigadm.editors.EditorModifier;import org.w3c.jigadmin.widgets.StringChoice;import org.w3c.jigsaw.admin.RemoteAccessException;import org.w3c.jigsaw.admin.RemoteResource;/** * An editor for StringChoice attributes. * @author Benoit Mahe <bmahe@sophia.inria.fr> */public class StringChoiceEditor extends AttributeEditor { class StringChoiceComponent extends StringChoice implements DocumentListener { EditorFeeder feeder = null; EditorModifier modifier = null; StringChoiceEditor editor = null; //DocumentListener public void insertUpdate(DocumentEvent e) { editor.setModified(); } //DocumentListener public void changedUpdate(DocumentEvent e) { editor.setModified(); } //DocumentListener public void removeUpdate(DocumentEvent e) { editor.setModified(); } protected void setTextInternal(String stext) { if (modifier != null) setText(modifier.modify(stext)); else setText(stext); } StringChoiceComponent(StringChoiceEditor editor, String selected, EditorFeeder feeder, EditorModifier modifier) { super(); this.editor = editor; this.feeder = feeder; this.modifier = modifier; String items[] = feeder.getDefaultItems(); super.initialize(items); setText(selected); addDocumentListener(this); } } /** * Properties - The feeder's class name. */ public static final String FEEDER_CLASS_P = "feeder.class"; public static final String MODIFIER_CLASS_P = "modifier.class"; protected boolean hasChanged = false; protected String oldvalue = null; protected StringChoiceComponent comp = null; protected Dimension getPopupSize() { return new Dimension(400,160); } protected void createComponent(EditorFeeder feeder, EditorModifier modifier, String selected) { if ( comp == null ) comp = new StringChoiceComponent(this, selected, feeder, modifier); } protected void setModified() { hasChanged = true; } /** * Tells if the edited value has changed * @return true if the value changed. */ public boolean hasChanged() { return hasChanged; } /** * set the current value to be the original value, ie: changed * must return <strong>false</strong> after a reset. */ public void clearChanged() { hasChanged = false; } /** * reset the changes (if any) */ public void resetChanges() { hasChanged = false; comp.setText(oldvalue); } /** * Get the current value of the edited value * @return an object or <strong>null</strong> if the object was not * initialized */ public Object getValue() { String ct = comp.getText(); if ((ct != null) && (ct.length() > 0)) { return ct; } return null; } /** * Set the value of the edited value * @param o the new value. */ public void setValue(Object o) { this.oldvalue = (String) o; comp.setText(oldvalue); } /** * get the Component created by the editor. * @return a Component */ public Component getComponent() { return comp; } /** * Initialize the editor * @param w the ResourceWrapper father of the attribute * @param a the Attribute we are editing * @param o the value of the above attribute * @param p some Properties, used to fine-tune the editor * @exception RemoteAccessException if a remote access error occurs. */ public void initialize(RemoteResourceWrapper w , Attribute a , Object o , Properties p) throws RemoteAccessException { // Get the feeder class fromproperties: EditorFeeder feeder = null; EditorModifier modifier = null; String feederClass = null; String modifierClass = null; feederClass = (String)p.get(FEEDER_CLASS_P); if ( feederClass == null ) throw new RuntimeException("StringChoiceEditor mis-configuration:"+ FEEDER_CLASS_P + " property undefined."); try { Class c = Class.forName(feederClass); feeder = (EditorFeeder) c.newInstance(); feeder.initialize(w,p); } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException("StringChoiceEditor mis-configured: "+ " unable to instantiate "+ feederClass +"."); } modifierClass = (String)p.get(MODIFIER_CLASS_P); if (modifierClass != null) { try { Class cm = Class.forName(modifierClass); modifier = (EditorModifier) cm.newInstance(); } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException("SelectEditor mis-configured: "+ " unable to instantiate "+ modifierClass +"."); } } createComponent(feeder, modifier, (String) o); oldvalue = (String) o; } public StringChoiceEditor() { super(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?