|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.cvsclient.customizer;
import java.util.ArrayList;
import javax.swing.SwingUtilities;
import javax.accessibility.*;
import org.netbeans.modules.javacvs.passwd.*;
import org.netbeans.modules.javacvs.commands.ClientCreationException;
import org.openide.*;
import org.openide.DialogDisplayer;
import org.openide.util.*;
/**
*
* @author Milos Kleint
* @version
*/
public class LoginDialog extends javax.swing.JDialog {
public final Object STATUS_CONNECTING = new Integer(0);
public final Object STATUS_FAILED = new Integer(1);
private static ArrayList lastSuccessfullLoggings = new ArrayList();
private String connectStr = ""; // NOI18N
private PasswdEntry entry = null;
private boolean loggedIn = false;
private boolean offline = false;
private Thread loginThread = null;
private CVSPasswd passwd = null;
private int port;
/** Creates new form LoginDialog */
public LoginDialog(java.awt.Frame parent, boolean modal, String cvsRoot, CVSPasswd pass, int port) {
super(parent, modal);
initComponents();
initAccessibility();
connectStr = cvsRoot;
passwd = pass;
this.port = port;
setTitle(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/customizer/Bundle").getString("LoginDialog.title")); // NOI18N
lblLogin.setText(java.text.MessageFormat.format(org.openide.util.NbBundle.getBundle(LoginDialog.class).getString("LoginDialog.lblLogin.text"), new Object[] { cvsRoot })); // NOI18N
lblPasswd.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/customizer/Bundle").getString("LoginDialog.lblPasswd.mnemonic").charAt(0)); // NOI18N
lblPasswd.setLabelFor(txPasswd);
btnLogin.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/customizer/Bundle").getString("LoginDialog.btnLogin.mnemonic").charAt(0));
btnCancel.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/customizer/Bundle").getString("LoginDialog.btnCancel.mnemonic").charAt(0));
pack();
txPasswd.requestFocus();
getRootPane().setDefaultButton(btnLogin);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the FormEditor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
java.awt.GridBagConstraints gridBagConstraints;
loginPanel = new javax.swing.JPanel();
lblLogin = new javax.swing.JLabel();
lblPasswd = new javax.swing.JLabel();
txPasswd = new javax.swing.JPasswordField();
buttonPanel = new javax.swing.JPanel();
btnLogin = new javax.swing.JButton();
btnCancel = new javax.swing.JButton();
statusPanel = new javax.swing.JPanel();
statusLabel = new javax.swing.JLabel();
getContentPane().setLayout(new java.awt.GridBagLayout());
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
loginPanel.setLayout(new java.awt.GridBagLayout());
lblLogin.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/customizer/Bundle").getString("LoginDialog.lblLogin.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
loginPanel.add(lblLogin, gridBagConstraints);
lblPasswd.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/customizer/Bundle").getString("LoginDialog.lblPasswd.text"));
lblPasswd.setLabelFor(txPasswd);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 12);
loginPanel.add(lblPasswd, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
loginPanel.add(txPasswd, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(12, 12, 12, 11);
getContentPane().add(loginPanel, gridBagConstraints);
buttonPanel.setLayout(new java.awt.GridBagLayout());
btnLogin.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/customizer/Bundle").getString("LoginDialog.btnLogin.text"));
btnLogin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
loginButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.weightx = 1.0;
buttonPanel.add(btnLogin, gridBagConstraints);
btnCancel.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/customizer/Bundle").getString("LoginDialog.btnCancel.text"));
btnCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
offlineButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
buttonPanel.add(btnCancel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 11);
getContentPane().add(buttonPanel, gridBagConstraints);
statusPanel.setLayout(new java.awt.GridBagLayout());
statusPanel.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
statusLabel.setText(" ");
statusLabel.setEnabled(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weightx = 1.0;
statusPanel.add(statusLabel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 12, 17, 11);
getContentPane().add(statusPanel, gridBagConstraints);
}//GEN-END:initComponents
private void offlineButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_offlineButtonActionPerformed
// Add your handling code here:
loggedIn = false;
if (loginThread != null) {
if (loginThread.isAlive()) {
loginThread.interrupt();
}
}
offline = true;
closeDialog(null);
}//GEN-LAST:event_offlineButtonActionPerformed
private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loginButtonActionPerformed
// Add your handling code here:
loginThread = new Thread("CVS_AUTHORIZING_THREAD") { // NOI18N
public void run() {
//entry = new PasswdEntry();
// passwd.remove(connectStr);
// pasFile.add(connectStr, password); //CVSPasswd.scramble(password));
// pasFile.savePassFile();
//boolean setRight = entry.setEntry(connectStr + " " + CVSPasswd.scramble(password));
//if (!setRight) {D("wrongly set entry.");}
checkLogin();
}
};
loginThread.start();
}//GEN-LAST:event_loginButtonActionPerformed
/** Closes the dialog */
private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog
setVisible(false);
dispose();
}//GEN-LAST:event_closeDialog
/*
private boolean wasLoggedIn() {
return lastSuccessfullLoggings.contains(connectStr);
}
*/
/**
* Show the login dialog and start the login process immediately.
*/
public void showLogging() {
/*
if (wasLoggedIn()) {
loggedIn = true; // believe, that the user is still correctly logged in
return;
}
*/
SwingUtilities.invokeLater(new Runnable() {
public void run() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Runnable login = new Runnable() {
public void run() {
checkLogin(); // this should be called after show();
}
};
new Thread(login, "CVS_AUTHORIZING_THREAD").start(); // NOI18N
}
});
}
});
show();
}
private void checkLogin() {
lastSuccessfullLoggings.remove(connectStr);
txPasswd.setEnabled(false);
btnLogin.setEnabled(false);
setStatus(STATUS_CONNECTING, null);
StringBuffer message = new StringBuffer();
String password = null;
loggedIn = false;
try {
PasswdEntry entry = new PasswdEntry();
password = new String(txPasswd.getPassword());
entry.setEntry(connectStr + " " + CVSPasswd.scramble(password)); // NOI18N
loggedIn = passwd.checkServer(entry, port);
} catch (org.netbeans.lib.cvsclient.connection.AuthenticationException exc1) {
if (exc1.getUnderlyingThrowable() instanceof java.net.UnknownHostException) {
setStatus(org.openide.util.NbBundle.getBundle(LoginDialog.class).getString(
"LoginDialog.unknownHost")); // NOI18N
return;
}
if (exc1.getUnderlyingThrowable() instanceof java.io.IOException) {
setStatus(org.openide.util.NbBundle.getBundle(LoginDialog.class).getString(
"LoginDialog.connectionIOError")); // NOI18N
return;
}
} finally {
txPasswd.setEnabled(true);
btnLogin.setEnabled(true);
}
if (!loggedIn) {
setStatus(STATUS_FAILED, message.toString());
txPasswd.requestFocus();
txPasswd.setSelectionStart(0);
txPasswd.setSelectionEnd(txPasswd.getText().length());
} else {
// lastSuccessfullLoggings.add(connectStr);
// closeDialog(null);
setStatus(org.openide.util.NbBundle.getBundle(LoginDialog.class).getString(
"LoginDialog.status.succeeded")); // NOI18N
passwd.add(connectStr, new String(txPasswd.getPassword()));
try {
passwd.savePassFile();
} catch (ClientCreationException exc) {
NotifyDescriptor mess = new NotifyDescriptor.Message(exc.getLocalizedMessage(),
NotifyDescriptor.ERROR_MESSAGE);
DialogDisplayer.getDefault().notify(mess);
//OLD way TopManager.getDefault().notifyException(exc);
}
setVisible(false);
dispose();
}
}
public void setConnectString(String connectStr) {
this.connectStr = connectStr;
}
public void setPserverName(String pserverName) {
lblLogin.setText(java.text.MessageFormat.format(org.openide.util.NbBundle.getBundle(LoginDialog.class).getString("LoginDialog.loginLabel.text"), new Object[] { pserverName })); // NOI18N
pack();
}
public void setStatus(Object status) {
setStatus(status, null);
}
public void setStatus(Object status, String message) {
if (status.equals(STATUS_FAILED)) {
statusLabel.setText(org.openide.util.NbBundle.getBundle(LoginDialog.class).getString("LoginDialog.status.failed")); // NOI18N
if (message != null) statusLabel.setToolTipText(message);
} else if (status.equals(STATUS_CONNECTING)) {
statusLabel.setText(org.openide.util.NbBundle.getBundle(LoginDialog.class).getString("LoginDialog.status.connecting")); // NOI18N
} else if (status instanceof String) {
statusLabel.setText((String) status);
// statusLabel.setText();
}
}
public boolean isLoggedIn() {
return loggedIn;
}
public boolean isOffline() {
return offline;
}
public String getPassword() {
return new String(txPasswd.getPassword());
}
public static LoginDialog createDialog(String cvsRoot, CVSPasswd pass, int port) {
LoginDialog dialog = new LoginDialog(new javax.swing.JFrame(), true, cvsRoot, pass, port);
return dialog;
}
/**
* @param args the command line arguments
*
* public static void main (String args[]) {
* new LoginDialog (new javax.swing.JFrame (), true, null).show ();
* }
*/
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel buttonPanel;
private javax.swing.JPanel loginPanel;
private javax.swing.JPanel statusPanel;
private javax.swing.JButton btnLogin;
private javax.swing.JLabel lblLogin;
private javax.swing.JLabel lblPasswd;
private javax.swing.JLabel statusLabel;
private javax.swing.JButton btnCancel;
private javax.swing.JPasswordField txPasswd;
// End of variables declaration//GEN-END:variables
private static final java.util.ResourceBundle bundle = NbBundle.getBundle(LoginDialog.class);
private void initAccessibility() {
AccessibleContext context = this.getAccessibleContext();
context.setAccessibleDescription(bundle.getString("ACSD_LoginDialog"));
context = statusLabel.getAccessibleContext();
context.setAccessibleDescription(bundle.getString("ACSD_LoginDialog.statusLabel"));
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.