passwordattributeeditor.java

来自「很棒的web服务器源代码」· Java 代码 · 共 275 行

JAVA
275
字号
// PasswordAttributeEditor.java// $Id: PasswordAttributeEditor.java,v 1.14 2000/08/16 21:37:27 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1997.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigadm.editors ;import java.awt.BorderLayout;import java.awt.Button;import java.awt.Color;import java.awt.Component;import java.awt.Container;import java.awt.Dimension;import java.awt.Frame;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Image;import java.awt.Insets;import java.awt.Label;import java.awt.Panel;import java.awt.TextComponent;import java.awt.TextField;import java.awt.Window;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.EventObject;import java.util.Properties;import org.w3c.tools.resources.Attribute;import org.w3c.jigsaw.admin.RemoteAccessException;import org.w3c.jigsaw.admin.RemoteResource;import org.w3c.jigadm.RemoteResourceWrapper;class PasswordEditor extends Panel implements ActionListener {    protected PasswordAttributeEditor pae;    protected TextField passwd;    protected TextField verify;    protected String orig;    protected Image img;    public void actionPerformed(ActionEvent ae) {	if( ae.getActionCommand().equals("Ok") || 	    ae.getSource().equals(verify)) {	    if(passwd.getText().equals(verify.getText())	       && !passwd.getText().equals("")) {		pae.setValue(passwd.getText());		pae.dispose();	    } else {		// popup an Error? FIXME		passwd.requestFocus();	    }	} else if ( ae.getActionCommand().equals("Cancel")) {	    pae.dispose();	} else if(ae.getSource().equals(passwd)) {	    verify.requestFocus();	}     }    public PasswordEditor (PasswordAttributeEditor pae, String name) {	GridBagLayout gbl = new GridBagLayout();	GridBagConstraints gbc = new GridBagConstraints();	GridBagLayout mgbl = new GridBagLayout();	GridBagConstraints mgbc = new GridBagConstraints();	Label l;	Button b;	Panel p = new Panel(gbl);	this.pae = pae;	gbc.fill = GridBagConstraints.HORIZONTAL;	gbc.weightx = 0;	gbc.weighty = 0;	mgbc.fill = GridBagConstraints.NONE;	mgbc.weightx = 0;	mgbc.weighty = 0;	mgbc.insets = new Insets(16, 10, 16, 5);	setLayout(mgbl);	passwd = new TextField(10);	passwd.setEchoChar('*');	passwd.addActionListener(this);	verify = new TextField(10);	verify.setEchoChar('*');	verify.addActionListener(this);	// Construct the first block with the labels and textfields	if (name != null) {	    l = new Label("User: ", Label.RIGHT);	    gbc.gridwidth = 1;	    gbl.setConstraints(l, gbc);	    p.add(l);	    l = new Label(name);	    gbc.gridwidth = GridBagConstraints.REMAINDER;	    gbl.setConstraints(l, gbc);	    p.add(l);	}	l = new Label("Password: ", Label.RIGHT);	gbc.gridwidth = 1;	gbl.setConstraints(l, gbc);	p.add(l);	gbc.gridwidth = GridBagConstraints.REMAINDER;	gbl.setConstraints(passwd, gbc);	p.add(passwd);	l = new Label("Verify: ", Label.RIGHT);	gbc.gridwidth = 1;	gbl.setConstraints(l, gbc);	p.add(l);	gbc.gridwidth = GridBagConstraints.REMAINDER;	gbl.setConstraints(verify, gbc);	p.add(verify);	mgbc.gridwidth = GridBagConstraints.REMAINDER;	mgbl.setConstraints(p, mgbc);	add(p);		// and now the usual button bar	p = new Panel(new GridLayout(1, 2, 20, 20));	b = new Button("Ok");	b.addActionListener(this);	p.add(b);	b = new Button("Cancel");	b.addActionListener(this);	p.add(b);	mgbl.setConstraints(p, mgbc);	add(p);    }    public PasswordEditor (PasswordAttributeEditor pae) {	this(pae, null);    }}public class PasswordAttributeEditor extends AttributeEditor {  class PasswordEditorListener implements ActionListener {	        public void actionPerformed(ActionEvent ae) {	    popupDialog();	}    }    protected String name = null;    private String origs;    private String current;    Button  widget;    private Frame popup = null;    // get rid of the password editor    protected void dispose() {	if(popup != null) {	    popup.dispose();	    popup = null;	}    }    // pops up a new editor    protected void popupDialog() {	if(popup == null) {	    PasswordEditor pe = new PasswordEditor(this, name);	    popup = new Frame("Jigsaw Password Editor");	    popup.setBackground(Color.lightGray);	    popup.setSize(new Dimension(300, 200));	    popup.setLayout(new BorderLayout());	    popup.add("Center", pe);	    popup.show();	    pe.passwd.requestFocus();	}    }    protected void setLabel(String s) {	if(s.equals("")) {	    widget.setLabel("WARNING: No password, click to edit");	} else {	    char c[] = new char[s.length()];	    for(int i=0; i<s.length(); i++)		c[i] = '*';	    widget.setLabel(new String(c));	}    }    /**     * @see org.w3c.jigadm.editors.AttributeEditorInterface     */    public boolean hasChanged() {	return !origs.equals(current);    }    /**     * @see org.w3c.jigadm.editors.AttributeEditorInterface     */    public void clearChanged() {	origs = new String(current);	setLabel(current);    }    /**     * @see org.w3c.jigadm.editors.AttributeEditorInterface     */    public void resetChanges() {	current = new String(origs);	setLabel(current);    }    /**     * @see org.w3c.jigadm.editors.AttributeEditorInterface     */    public Object getValue() {	return current;    }    /**     * @see org.w3c.jigadm.editors.AttributeEditorInterface     */    public void setValue(Object o) {	current = o.toString();	setLabel(current);    }    /*     * @see org.w3c.jigadm.editors.AttributeEditor     */    public Component getComponent() {	return widget;    }    public PasswordAttributeEditor() {	widget = new Button();	origs = "";    }    /**     * 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    {	RemoteResource r = w.getResource();	name = (String) r.getValue("identifier");	if(o == null) {	    String v = null;	    v = (String) r.getValue(a.getName());	    if(v == null)		if(a.getDefault() != null)		    v = a.getDefault().toString();	    if ( v != null ) {		origs = v;	    } 	} else {	    origs = o.toString();	}	current = origs;	setLabel(origs);	widget.addActionListener(new PasswordEditorListener());    }}

⌨️ 快捷键说明

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