home *** CD-ROM | disk | FTP | other *** search
/ BUG 15 / BUGCD1998_06.ISO / aplic / jbuilder / jsamples.z / LogonDialog.java < prev    next >
Text File  |  1997-07-03  |  7KB  |  221 lines

  1. package borland.samples.apps.chess.client  ;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import borland.jbcl.layout.GridBagConstraints2;
  6.  
  7. /**Displays the logon dialog & initiates the logon message to the server
  8. */
  9. public class LogonDialog extends Dialog  implements OkCancelDialog , KeyListener
  10. {
  11.   Panel dlgPanel = new Panel();
  12.   Button cancelButton = new Button();
  13.   Button okButton = new Button();
  14.   Panel client = new Panel();
  15.   Panel buttonBar = new Panel();
  16.   FlowLayout buttonBarFlowLayout = new FlowLayout();
  17.   Panel buttonBarGrid = new Panel();
  18.   GridLayout buttonBarGridLayout = new GridLayout();
  19.   BorderLayout logonBorderLayout = new BorderLayout() ;
  20.   GridBagLayout clientGridBagLayout = new GridBagLayout();
  21.   Label statusLabel = new Label();
  22.   Label nameLabel = new Label();
  23.   Label passwordLabel = new Label();
  24.   TextField password = new TextField();
  25.   TextField name = new TextField();
  26.   static String pass  = "";
  27.   static String login = "";
  28.   boolean loggingOn = false;
  29.   ChessViewer dlgParent;
  30.  
  31.   public LogonDialog(ChessViewer theParent)  {
  32.     super(theParent.f,CVS.LOG_ON,false);
  33.     dlgParent = theParent;
  34.     try {
  35.       enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  36.       dlgParent.statusLine.setText(CVS.PLEASE_ENTER_YOUR);
  37.       jbInit();
  38.       add(dlgPanel);
  39.       dlgParent.setModal(true);
  40.       Point y = dlgParent.listPanel.getLocation();
  41.       Point x = dlgParent.ep.getLocation();
  42.       pack();
  43.       if (x.x <= 0) {
  44.         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  45.         Dimension frameSize = getPreferredSize();
  46.         if (frameSize.height > screenSize.height)
  47.           frameSize.height = screenSize.height;
  48.         if (frameSize.width > screenSize.width)
  49.           frameSize.width = screenSize.width;
  50.         setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
  51.       }
  52.       else
  53.         setLocation(x.x,y.y);
  54.     }
  55.     catch (Exception e) {
  56.       String message = e.toString() ;
  57.       e.printStackTrace();
  58.     }
  59.   }
  60.  
  61.   public void jbInit() {
  62.     dlgPanel.setLayout(logonBorderLayout);
  63.  
  64.     buttonBar.setLayout(buttonBarFlowLayout);
  65.     buttonBarGrid.setLayout(buttonBarGridLayout);
  66.     buttonBarGridLayout.setColumns(2);
  67.     buttonBarGridLayout.setHgap(6);
  68.     okButton.setLabel(CVS.LOG_ON);
  69.     okButton.addActionListener(new OkButtonListener(this));
  70.     okButton.addKeyListener(this);
  71.     buttonBarGrid.add(okButton );
  72.     cancelButton.setLabel(CVS.CANCEL);
  73.     cancelButton.addActionListener(new CancelButtonListener(this));
  74.     cancelButton.addKeyListener(this);
  75.     buttonBarGrid.add(cancelButton);
  76.     buttonBar.add(buttonBarGrid);
  77.     dlgPanel.add(buttonBar,BorderLayout.SOUTH);
  78.  
  79.     client.setLayout(clientGridBagLayout);
  80.     statusLabel.setAlignment(Label.CENTER);
  81.     statusLabel.setText(CVS.WELCOME_TO_THE);
  82.     client.add(statusLabel,new GridBagConstraints2(0, 0, 2, 1, 0.0, 0.0
  83.             ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(4, 4, 4, 4), 0, 0));
  84.     nameLabel.setText(CVS.YOUR_NAME);
  85.     client.add(nameLabel,new GridBagConstraints2(0, 1, 1, 1, 0.0, 0.0
  86.             ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(4, 20, 4, 0), 0, 0));
  87.     name.setText(login);
  88.     name.addKeyListener(this);
  89.     name.selectAll();
  90.     client.add(name,new GridBagConstraints2(1, 1, 1, 1, 1.0, 0.0
  91.             ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(4, 0, 4, 20), 20, 0));
  92.  
  93.     passwordLabel.setText(CVS.PASSWORD);
  94.     client.add(passwordLabel,new GridBagConstraints2(0, 2, 1, 1, 0.0, 0.0
  95.             ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(4, 20, 4, 0), 0, 0));
  96.     password.setText(pass);
  97.     password.addKeyListener(this);
  98.     password.selectAll();
  99.     password.setEchoChar('*');     //NORES
  100.     client.add(password,new GridBagConstraints2(1, 2, 1, 1, 1.0, 0.0
  101.             ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(4, 0, 4, 20), 20, 0));
  102.     dlgPanel.add(client,BorderLayout.CENTER);
  103.   }
  104.  
  105.   /** Dispose dialog if system close is activated .
  106.   */
  107.   protected void processWindowEvent(WindowEvent e)  {
  108.  
  109.     if (e.getID() == WindowEvent.WINDOW_CLOSING)
  110.       cancel(null);
  111.     else
  112.       super.processWindowEvent(e);
  113.   }
  114.  
  115.   public void show() {
  116.     super.show();
  117.     if (login != null && login.length() > 0)
  118.       okButton.requestFocus();
  119.     else
  120.       name.requestFocus();
  121.   }
  122.  
  123.   public void badLogon() {
  124.     loggingOn = false;
  125.   }
  126.  
  127.   public void goodLogon() {
  128.     dispose();
  129.     dlgParent.setModal(false);
  130.     dlgParent.pDialog = null;
  131.   }
  132.  
  133.   /**OkButtonListener invokes this OkCancelDialog interface method
  134.   */
  135.   public void ok(ActionEvent evt) {
  136.     if (!loggingOn) {
  137.     try {
  138.       loggingOn = true;
  139.       login = name.getText();
  140.       if (login != null)
  141.         login = login.trim();
  142.       dlgParent.myName  = login;
  143.       pass = password.getText() ;
  144.       if (pass != null)
  145.         pass = pass.trim();
  146.       if (login == null ) {
  147.         name.requestFocus();
  148.         statusLabel.setText(CVS.INEED_A_NAME);
  149.         loggingOn = false;
  150.         return ;
  151.       }
  152.       if (login.length() < 2)   {
  153.         statusLabel.setText(CVS.PLEASE_CHOOSE_A);
  154.         name.requestFocus();
  155.         name.selectAll();
  156.         loggingOn = false;
  157.         return ;
  158.       }
  159.       if (pass == null  || pass.indexOf('[') != -1 ) {
  160.         password.requestFocus();
  161.         statusLabel.setText(CVS.INEED_A_PASSWORD);
  162.         pass = "";
  163.         loggingOn = false;
  164.         return ;
  165.       }
  166.       if (pass.length() < 2)   {
  167.         statusLabel.setText(CVS.PLEASE_CHOOSE_PASSWORD);
  168.         password.requestFocus();
  169.         password.selectAll();
  170.         loggingOn = false;
  171.         return;
  172.       }
  173.       dlgParent.statusLine.setText(CVS.LOGGING_ON_);
  174.       dlgParent.sendMsg("Name",login + "[" + pass) ;
  175.       password.requestFocus();
  176.     }
  177.     catch (Exception e) {
  178.       String message = e.toString() ;
  179.       //System.out.println("logonDlg err " + e + String.valueOf(i));
  180.       e.printStackTrace();
  181.     }
  182.     }
  183.   }
  184.  
  185.   /**CancelButtonListener invokes this OkCancelDialog interface method
  186.   */
  187.   public void cancel(ActionEvent evt) {
  188.     try {
  189.       dispose();
  190.       dlgParent.setModal(false);
  191.       dlgParent.statusLine.setText(CVS.FEEL_FREE_TO_USE_THE);
  192.       dlgParent.pDialog = null;
  193.     }
  194.     catch (Exception e) {
  195.       String message = e.toString() ;
  196.       //System.out.println("logonDlg err " + e + String.valueOf(i));
  197.       e.printStackTrace();
  198.     }
  199.   }
  200.  
  201.   public void keyTyped(KeyEvent parm1) {
  202.     //TODO: implement this  java.awt.event.KeyListener method;
  203.   }
  204.  
  205.   public void keyPressed(KeyEvent parm1) {
  206.     //TODO: implement this  java.awt.event.KeyListener method;
  207.   }
  208.  
  209.   public void keyReleased(KeyEvent e) {
  210.     if (e.getKeyCode() == KeyEvent.VK_ENTER)
  211.        if (e.getSource() == cancelButton)
  212.          cancel(null);
  213.        else
  214.          ok(null);
  215.      else
  216.      if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
  217.         cancel(null);
  218.   }
  219. }
  220.  
  221.