package com.bagri.tools.vvm.ui;
import javax.swing.*;
import com.bagri.tools.vvm.event.ApplicationEvent;
import com.bagri.tools.vvm.util.WindowUtil;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
public class AddUserDialog extends JDialog {
private static final KeyStroke ESCAPE_STROKE = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
private JTextField tfUsername;
private JPasswordField pfPassword;
private ActionListener successListener;
public AddUserDialog(JComponent owner) {
super(WindowUtil.getFrameForComponent(owner), "Add User", true);
//
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints cs = new GridBagConstraints();
cs.fill = GridBagConstraints.HORIZONTAL;
JLabel lbUsername = new JLabel("Username: ");
cs.gridx = 0;
cs.gridy = 0;
cs.gridwidth = 1;
panel.add(lbUsername, cs);
tfUsername = new JTextField(20);
cs.gridx = 1;
cs.gridy = 0;
cs.gridwidth = 2;
panel.add(tfUsername, cs);
JLabel lbPassword = new JLabel("Password: ");
cs.gridx = 0;
cs.gridy = 1;
cs.gridwidth = 1;
panel.add(lbPassword, cs);
pfPassword = new JPasswordField(20);
cs.gridx = 1;
cs.gridy = 1;
cs.gridwidth = 2;
panel.add(pfPassword, cs);
// panel.setBorder(new LineBorder(Color.GRAY));
JButton addButton = new JButton("Add User");
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (null != successListener) {
successListener.actionPerformed(new ActionEvent(AddUserDialog.this, e.getID(), "addUser"));
}
dispose();
}
});
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
JPanel bp = new JPanel();
bp.add(addButton);
bp.add(cancelButton);
getContentPane().add(panel, BorderLayout.CENTER);
getContentPane().add(bp, BorderLayout.PAGE_END);
pack();
setResizable(false);
setLocationRelativeTo(owner);
Action dispatchClosing = new AbstractAction() {
public void actionPerformed(ActionEvent event) {
dispatchEvent(new WindowEvent(
AddUserDialog.this, WindowEvent.WINDOW_CLOSING
));
}
};
JRootPane root = getRootPane();
root.setDefaultButton(addButton);
root.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ESCAPE_STROKE, ApplicationEvent.DISPATCH_WINDOW_CLOSING_ACTION);
root.getActionMap().put(ApplicationEvent.DISPATCH_WINDOW_CLOSING_ACTION, dispatchClosing );
}
public void setSuccessListener(ActionListener successListener) {
this.successListener = successListener;
}
public String getUsername() {
return tfUsername.getText().trim();
}
public String getPassword() {
return new String(pfPassword.getPassword());
}
public static void main(String[] args) {
AddUserDialog dlg = new AddUserDialog(null) {
@Override
public void dispose() {
super.dispose();
System.exit(0);
}
};
dlg.setSuccessListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AddUserDialog src = (AddUserDialog) e.getSource();
System.out.println("UserName =" + src.getUsername());
System.out.println("Password =" + src.getPassword());
}
});
dlg.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
dlg.setVisible(true);
}
}