authpopup.java
来自「很棒的web服务器源代码」· Java 代码 · 共 148 行
JAVA
148 行
// AuthPopup.java// $Id: AuthPopup.java,v 1.4 2000/08/16 21:37:28 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1997.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigadm.gui;import java.awt.Button;import java.awt.Component;import java.awt.Container;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.event.ActionEvent;import java.awt.event.ActionListener;import java.util.EventObject;import org.w3c.tools.codec.Base64Encoder;import org.w3c.www.http.HttpCredential;import org.w3c.www.http.HttpFactory;class AuthPopup extends Panel implements ActionListener { protected ServerBrowser sb; protected TextField user; protected TextField passwd; protected String orig; protected Image img; protected boolean ok; protected synchronized void done() { ok = true; notifyAll(); } public void actionPerformed(ActionEvent ae) { if( ae.getActionCommand().equals("Ok") || ae.getSource().equals(passwd)) { if(!user.getText().equals("")) { HttpCredential credential; credential = HttpFactory.makeCredential("Basic"); Base64Encoder encoder = new Base64Encoder(user.getText() +":" +passwd.getText()); credential.setAuthParameter("cookie", encoder.processString()); sb.admin.setCredential(credential); sb.dispose(true); done(); } else { // popup an Error? FIXME user.requestFocus(); } } else if ( ae.getActionCommand().equals("Cancel")) { sb.dispose(false); } else if(ae.getSource().equals(user)) { passwd.requestFocus(); } } public synchronized boolean waitForCompletion() { try { wait(); } catch (InterruptedException ex) { } return ok; } public AuthPopup (ServerBrowser sb, 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); ok = false; this.sb = sb; 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); user = new TextField(10); user.addActionListener(this); passwd = new TextField(10); passwd.setEchoChar('*'); passwd.addActionListener(this); // Construct the first block with the labels and textfields if (name != null) { l = new Label("Realm: ", 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("User: ", Label.RIGHT); gbc.gridwidth = 1; gbl.setConstraints(l, gbc); p.add(l); gbc.gridwidth = GridBagConstraints.REMAINDER; gbl.setConstraints(user, gbc); p.add(user); 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); 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 AuthPopup (ServerBrowser sb) { this(sb, null); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?