home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / LogonDialog.java < prev    next >
Text File  |  1998-05-08  |  8KB  |  244 lines

  1. /*
  2.  * Copyright (c) 1997-1998 Borland International, Inc. All Rights Reserved.
  3.  * 
  4.  * This SOURCE CODE FILE, which has been provided by Borland as part
  5.  * of a Borland product for use ONLY by licensed users of the product,
  6.  * includes CONFIDENTIAL and PROPRIETARY information of Borland.  
  7.  *
  8.  * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS 
  9.  * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
  10.  * THE PRODUCT.
  11.  *
  12.  * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND, ITS RELATED
  13.  * COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY CLAIMS
  14.  * OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR DISTRIBUTION
  15.  * OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES ARISING OUT OF
  16.  * OR RESULTING FROM THE USE, MODIFICATION, OR DISTRIBUTION OF PROGRAMS
  17.  * OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE
  18.  * CODE FILE.
  19.  */
  20. package borland.samples.apps.chess.client  ;
  21.  
  22. import java.awt.*;
  23. import java.awt.event.*;
  24. import borland.jbcl.layout.GridBagConstraints2;
  25. import java.util.ResourceBundle;
  26.  
  27. /**Displays the logon dialog & initiates the logon message to the server
  28. */
  29. public class LogonDialog extends Dialog  implements OkCancelDialog , KeyListener
  30. {
  31.   ResourceBundle res = ResourceBundle.getBundle("borland.samples.apps.chess.client.Res");
  32.   Panel dlgPanel = new Panel();
  33.   Button cancelButton = new Button();
  34.   Button okButton = new Button();
  35.   Panel client = new Panel();
  36.   Panel buttonBar = new Panel();
  37.   FlowLayout buttonBarFlowLayout = new FlowLayout();
  38.   Panel buttonBarGrid = new Panel();
  39.   GridLayout buttonBarGridLayout = new GridLayout();
  40.   BorderLayout logonBorderLayout = new BorderLayout() ;
  41.   GridBagLayout clientGridBagLayout = new GridBagLayout();
  42.   Label statusLabel = new Label();
  43.   Label nameLabel = new Label();
  44.   Label passwordLabel = new Label();
  45.   TextField password = new TextField();
  46.   TextField name = new TextField();
  47.   static String pass  = "";
  48.   static String login = "";
  49.   boolean loggingOn = false;
  50.   ChessViewer dlgParent;
  51.  
  52.   public LogonDialog(ChessViewer theParent)  {
  53.     super(theParent.f,"",false);
  54.     setTitle(res.getString("LOG_ON"));
  55.     dlgParent = theParent;
  56.     try {
  57.       enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  58.       dlgParent.statusLine.setText(res.getString("PLEASE_ENTER_YOUR"));
  59.       jbInit();
  60.       add(dlgPanel);
  61.       dlgParent.setModal(true);
  62.       Point y = dlgParent.listPanel.getLocation();
  63.       Point x = dlgParent.ep.getLocation();
  64.       pack();
  65.       if (x.x <= 0) {
  66.         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  67.         Dimension frameSize = getPreferredSize();
  68.         if (frameSize.height > screenSize.height)
  69.           frameSize.height = screenSize.height;
  70.         if (frameSize.width > screenSize.width)
  71.           frameSize.width = screenSize.width;
  72.         setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
  73.       }
  74.       else
  75.         setLocation(x.x,y.y);
  76.     }
  77.     catch (Exception e) {
  78.       String message = e.toString() ;
  79.       e.printStackTrace();
  80.     }
  81.   }
  82.  
  83.   private void jbInit() {
  84.     dlgPanel.setLayout(logonBorderLayout);
  85.  
  86.     buttonBar.setLayout(buttonBarFlowLayout);
  87.     buttonBarGrid.setLayout(buttonBarGridLayout);
  88.     buttonBarGridLayout.setColumns(2);
  89.     buttonBarGridLayout.setHgap(6);
  90.     okButton.setLabel(res.getString("LOG_ON"));
  91.     okButton.addActionListener(new OkButtonListener(this));
  92.     okButton.addKeyListener(this);
  93.     buttonBarGrid.add(okButton );
  94.     cancelButton.setLabel(res.getString("CANCEL"));
  95.     cancelButton.addActionListener(new CancelButtonListener(this));
  96.     cancelButton.addKeyListener(this);
  97.     buttonBarGrid.add(cancelButton);
  98.     buttonBar.add(buttonBarGrid);
  99.     dlgPanel.add(buttonBar,BorderLayout.SOUTH);
  100.  
  101.     client.setLayout(clientGridBagLayout);
  102.     statusLabel.setAlignment(Label.CENTER);
  103.     statusLabel.setText(res.getString("WELCOME_TO_THE"));
  104.     client.add(statusLabel,new GridBagConstraints2(0, 0, 2, 1, 0.0, 0.0
  105.             ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(4, 4, 4, 4), 0, 0));
  106.     nameLabel.setText(res.getString("YOUR_NAME"));
  107.     client.add(nameLabel,new GridBagConstraints2(0, 1, 1, 1, 0.0, 0.0
  108.             ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(4, 20, 4, 0), 0, 0));
  109.     name.setText(login);
  110.     name.addKeyListener(this);
  111.     name.selectAll();
  112.     client.add(name,new GridBagConstraints2(1, 1, 1, 1, 1.0, 0.0
  113.             ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(4, 0, 4, 20), 20, 0));
  114.  
  115.     passwordLabel.setText(res.getString("PASSWORD"));
  116.     client.add(passwordLabel,new GridBagConstraints2(0, 2, 1, 1, 0.0, 0.0
  117.             ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(4, 20, 4, 0), 0, 0));
  118.     password.setText(pass);
  119.     password.addKeyListener(this);
  120.     password.selectAll();
  121.     password.setEchoChar('*');     //NORES
  122.     client.add(password,new GridBagConstraints2(1, 2, 1, 1, 1.0, 0.0
  123.             ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(4, 0, 4, 20), 20, 0));
  124.     dlgPanel.add(client,BorderLayout.CENTER);
  125.   }
  126.  
  127.   /** Dispose dialog if system close is activated .
  128.   */
  129.   protected void processWindowEvent(WindowEvent e)  {
  130.  
  131.     if (e.getID() == WindowEvent.WINDOW_CLOSING)
  132.       cancel(null);
  133.     else
  134.       super.processWindowEvent(e);
  135.   }
  136.  
  137.   public void setVisible(boolean isVisible) {
  138.     super.setVisible(isVisible);
  139.     if (isVisible)
  140.       if (login != null && login.length() > 0)
  141.         okButton.requestFocus();
  142.       else
  143.         name.requestFocus();
  144.   }
  145.  
  146.   public void badLogon() {
  147.     loggingOn = false;
  148.   }
  149.  
  150.   public void goodLogon() {
  151.     dispose();
  152.     dlgParent.setModal(false);
  153.     dlgParent.pDialog = null;
  154.   }
  155.  
  156.   /**OkButtonListener invokes this OkCancelDialog interface method
  157.   */
  158.   public void ok(ActionEvent evt) {
  159.     if (!loggingOn) {
  160.     try {
  161.       loggingOn = true;
  162.       login = name.getText();
  163.       if (login != null)
  164.         login = login.trim();
  165.       dlgParent.myName  = login;
  166.       pass = password.getText() ;
  167.       if (pass != null)
  168.         pass = pass.trim();
  169.       if (login == null ) {
  170.         name.requestFocus();
  171.         statusLabel.setText(res.getString("INEED_A_NAME"));
  172.         loggingOn = false;
  173.         return ;
  174.       }
  175.       if (login.length() < 2)   {
  176.         statusLabel.setText(res.getString("PLEASE_CHOOSE_A"));
  177.         name.requestFocus();
  178.         name.selectAll();
  179.         loggingOn = false;
  180.         return ;
  181.       }
  182.       if (pass == null  || pass.indexOf('[') != -1 ) {
  183.         password.requestFocus();
  184.         statusLabel.setText(res.getString("INEED_A_PASSWORD"));
  185.         pass = "";
  186.         loggingOn = false;
  187.         return ;
  188.       }
  189.       if (pass.length() < 2)   {
  190.         statusLabel.setText(res.getString("PLEASE_CHOOSE_PASSWORD"));
  191.         password.requestFocus();
  192.         password.selectAll();
  193.         loggingOn = false;
  194.         return;
  195.       }
  196.       dlgParent.statusLine.setText(res.getString("LOGGING_ON_"));
  197.       dlgParent.sendMsg("Name",login + "[" + pass) ;
  198.       password.requestFocus();
  199.     }
  200.     catch (Exception e) {
  201.       String message = e.toString() ;
  202.       //System.out.println("logonDlg err " + e + String.valueOf(i));
  203.       e.printStackTrace();
  204.     }
  205.     }
  206.   }
  207.  
  208.   /**CancelButtonListener invokes this OkCancelDialog interface method
  209.   */
  210.   public void cancel(ActionEvent evt) {
  211.     try {
  212.       dispose();
  213.       dlgParent.setModal(false);
  214.       dlgParent.statusLine.setText(res.getString("FEEL_FREE_TO_USE_THE"));
  215.       dlgParent.pDialog = null;
  216.     }
  217.     catch (Exception e) {
  218.       String message = e.toString() ;
  219.       //System.out.println("logonDlg err " + e + String.valueOf(i));
  220.       e.printStackTrace();
  221.     }
  222.   }
  223.  
  224.   public void keyTyped(KeyEvent parm1) {
  225.     //TODO: implement this  java.awt.event.KeyListener method;
  226.   }
  227.  
  228.   public void keyPressed(KeyEvent parm1) {
  229.     //TODO: implement this  java.awt.event.KeyListener method;
  230.   }
  231.  
  232.   public void keyReleased(KeyEvent e) {
  233.     if (e.getKeyCode() == KeyEvent.VK_ENTER)
  234.        if (e.getSource() == cancelButton)
  235.          cancel(null);
  236.        else
  237.          ok(null);
  238.      else
  239.      if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
  240.         cancel(null);
  241.   }
  242. }
  243.  
  244.