You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
4.1 KiB
171 lines
4.1 KiB
//
|
|
// Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.
|
|
//
|
|
// This is free software; you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 2 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This software is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this software; if not, write to the Free Software
|
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
|
// USA.
|
|
//
|
|
|
|
import java.awt.Button;
|
|
import java.awt.Color;
|
|
import java.awt.Font;
|
|
import java.awt.GridBagConstraints;
|
|
import java.awt.GridBagLayout;
|
|
import java.awt.Insets;
|
|
import java.awt.Label;
|
|
import java.awt.Panel;
|
|
import java.awt.TextField;
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
|
|
//
|
|
// The panel which implements the user authentication scheme
|
|
//
|
|
|
|
class AuthPanel extends Panel implements ActionListener {
|
|
|
|
Label title, retry, prompt;
|
|
TextField password;
|
|
Button ok;
|
|
|
|
// mslgon support
|
|
Label promptuser;
|
|
TextField username;
|
|
boolean mslogon = false;
|
|
// mslogon support end
|
|
|
|
//
|
|
// Constructor.
|
|
//
|
|
|
|
// mslgon support 2
|
|
public AuthPanel(boolean logon) {
|
|
|
|
mslogon = logon;
|
|
// mslgon support 2 end
|
|
|
|
title = new Label("VNC Authentication",Label.CENTER);
|
|
title.setFont(new Font("Helvetica", Font.BOLD, 18));
|
|
|
|
prompt = new Label("Password:",Label.CENTER);
|
|
|
|
password = new TextField(10);
|
|
password.setForeground(Color.black);
|
|
password.setBackground(Color.white);
|
|
password.setEchoChar('*');
|
|
|
|
// mslogon support 3
|
|
|
|
if (mslogon) {
|
|
promptuser = new Label("Username:",Label.CENTER);
|
|
username = new TextField(10);
|
|
username.setForeground(Color.black);
|
|
username.setBackground(Color.white);
|
|
}
|
|
// mslogon support 3 end
|
|
|
|
ok = new Button("OK");
|
|
|
|
retry = new Label("",Label.CENTER);
|
|
retry.setFont(new Font("Courier", Font.BOLD, 16));
|
|
|
|
|
|
GridBagLayout gridbag = new GridBagLayout();
|
|
GridBagConstraints gbc = new GridBagConstraints();
|
|
|
|
setLayout(gridbag);
|
|
|
|
gbc.gridwidth = GridBagConstraints.REMAINDER;
|
|
gridbag.setConstraints(title,gbc);
|
|
add(title);
|
|
|
|
gbc.fill = GridBagConstraints.HORIZONTAL;
|
|
gridbag.setConstraints(retry,gbc);
|
|
add(retry);
|
|
|
|
gbc.fill = GridBagConstraints.NONE;
|
|
gbc.gridwidth = 1;
|
|
|
|
//mslogon support 4
|
|
|
|
if (mslogon) {
|
|
gridbag.setConstraints(promptuser,gbc);
|
|
add(promptuser);
|
|
gridbag.setConstraints(username,gbc);
|
|
add(username);
|
|
username.addActionListener(this);
|
|
}
|
|
//mslogon support 4 end
|
|
|
|
gridbag.setConstraints(prompt,gbc);
|
|
add(prompt);
|
|
|
|
gridbag.setConstraints(password,gbc);
|
|
add(password);
|
|
password.addActionListener(this);
|
|
|
|
gbc.ipady = 10;
|
|
gbc.gridwidth = GridBagConstraints.REMAINDER;
|
|
gbc.fill = GridBagConstraints.BOTH;
|
|
gbc.insets = new Insets(0,20,0,0);
|
|
gbc.ipadx = 40;
|
|
gridbag.setConstraints(ok,gbc);
|
|
add(ok);
|
|
ok.addActionListener(this);
|
|
}
|
|
|
|
// mslogon support 5
|
|
public void setmslogon(boolean InfoMsLogon) {
|
|
mslogon = InfoMsLogon;
|
|
}
|
|
|
|
public void moveFocusToUsernameField() {
|
|
if (mslogon) { username.requestFocus(); }
|
|
else { moveFocusToPasswordField();}
|
|
}
|
|
|
|
// mslogon support 5 end
|
|
|
|
//
|
|
// Move keyboard focus to the password text field object.
|
|
//
|
|
|
|
public void moveFocusToPasswordField() {
|
|
password.requestFocus();
|
|
}
|
|
|
|
//
|
|
// This method is called when a button is pressed or return is
|
|
// pressed in the password text field.
|
|
//
|
|
|
|
public synchronized void actionPerformed(ActionEvent evt) {
|
|
if (evt.getSource() == password || evt.getSource() == ok) {
|
|
password.setEnabled(false);
|
|
notify();
|
|
}
|
|
}
|
|
|
|
//
|
|
// retry().
|
|
//
|
|
|
|
public void retry() {
|
|
retry.setText("Sorry. Try again.");
|
|
password.setEnabled(true);
|
|
password.setText("");
|
|
moveFocusToPasswordField();
|
|
}
|
|
|
|
}
|
|
|