home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / CustomerLookupDialog.java < prev    next >
Text File  |  1998-05-08  |  10KB  |  265 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.intl.gui;
  21.  
  22. import java.awt.*;
  23. import java.awt.event.*;
  24. import java.text.*;
  25. import java.util.*;
  26. import borland.jbcl.layout.*;
  27. import borland.jbcl.control.*;
  28. import borland.jbcl.dataset.*;
  29. import borland.jbcl.view.*;
  30. import borland.jbcl.model.*;
  31.  
  32. import borland.samples.intl.application.*;
  33. import borland.samples.intl.beans.*;
  34. import borland.samples.intl.beans.event.*;
  35.  
  36. public class CustomerLookupDialog extends Dialog {
  37.   private AppDataModule appDataModule = AppDataModule.getDataModule();
  38.   private boolean validCustomer = false;
  39.   ResourceBundle textRes = java.util.ResourceBundle.getBundle("borland.samples.intl.gui.resources.TextRes",
  40.                                                               LocaleChangeManager.getLocale());
  41.  
  42.   private int captionMargin = 10;
  43.   MessageFormat formattedMessage;
  44.   Object [] messageArgs;
  45.   String messageString;
  46.   Dimension screenSize = null;
  47.  
  48.   BevelPanel mainDialogPanel = new BevelPanel();
  49.   LabelControl searchNameLabel = new LabelControl();
  50.   GridControl gridControl1 = new GridControl();
  51.   LocatorControl locatorControl1 = new LocatorControl();
  52.   BevelPanel buttonPanel = new BevelPanel();
  53.   ButtonControl okButton = new ButtonControl();
  54.   ButtonControl cancelButton = new ButtonControl();
  55.   GridLayout gridLayout1 = new GridLayout();
  56.   GridBagLayout gridBagLayout1 = new GridBagLayout();
  57.  
  58.   public CustomerLookupDialog() {
  59.     this(new Frame(), true);
  60.   }
  61.  
  62.   public CustomerLookupDialog(Frame frame, boolean modal) {
  63.     super(frame, modal);
  64.     try {
  65.       jbInit();
  66.  
  67.       formattedMessage = new MessageFormat(textRes.getString("Search_by_fieldName"));
  68.       messageArgs = new Object [] { gridControl1.getColumnView(0).getCaption() };
  69.       messageString = formattedMessage.format(messageArgs);
  70.       searchNameLabel.setText(messageString);
  71.  
  72.       screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  73.  
  74.     }
  75.     catch (Exception e) {
  76.       borland.jbcl.util.Diagnostic.printStackTrace(e);
  77.     }
  78.     add(mainDialogPanel);
  79.  
  80.     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  81.     mainDialogPanel.setSize(screenSize.width * 2 / 3, screenSize.height / 2);
  82.   }
  83.  
  84.   public void jbInit() throws Exception{
  85.     mainDialogPanel.setLayout(gridBagLayout1);
  86.     searchNameLabel.setAlignment(Label.LEFT);
  87.     locatorControl1.setDataSet(appDataModule.getCustomerDataSetView());
  88.     gridControl1.setDataSet(appDataModule.getCustomerDataSetView());
  89.     gridControl1.setShowPopup(false);
  90.     gridControl1.addMouseListener(new CustomerLookupDialog_gridControl1_mouseAdapter(this));
  91.     gridControl1.addSubfocusListener(new CustomerLookupDialog_gridControl1_subfocusAdapter(this));
  92.     gridControl1.setReadOnly(true);
  93.     okButton.setLabel(textRes.getString("OK"));
  94.     okButton.addActionListener(new CustomerLookupDialog_okButton_actionAdapter(this));
  95.     cancelButton.setLabel(textRes.getString("Cancel"));
  96.     cancelButton.addActionListener(new CustomerLookupDialog_cancelButton_actionAdapter(this));
  97.  
  98.     gridLayout1.setRows(1);
  99.     gridLayout1.setColumns(2);
  100.     gridLayout1.setHgap(10);
  101.     buttonPanel.setLayout(gridLayout1);
  102.     buttonPanel.setBevelInner(BevelPanel.FLAT);
  103.     buttonPanel.add(okButton, null);
  104.     buttonPanel.add(cancelButton, null);
  105.  
  106.     this.setTitle(textRes.getString("Find_customer"));
  107.  
  108.     mainDialogPanel.add(searchNameLabel, new GridBagConstraints2(0, 0, 5, 1, 100.0, 0.0
  109.             ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(10, 10, 5, 10), 0, 0));
  110.     mainDialogPanel.add(locatorControl1, new GridBagConstraints2(0, 1, 5, 1, 100.0, 0.0
  111.             ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 10, 5, 10), 0, 0));
  112.     mainDialogPanel.add(gridControl1, new GridBagConstraints2(0, 2, 5, 4, 100.0, 100.0
  113.             ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 10, 5, 10), 0, 0));
  114.     mainDialogPanel.add(buttonPanel, new GridBagConstraints2(0, 6, 5, 1, 0.0, 0.0
  115.             ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 10, 10, 10), 0, 0));
  116.     this.addWindowListener(new CustomerLookupDialog_this_windowAdapter(this));
  117.   }
  118.  
  119.   // if a customer was selected and the password was valid, returns true
  120.   // otherwise, returns false
  121.   public boolean isValidCustomer() {
  122.     return validCustomer;
  123.   }
  124.  
  125.   //OK
  126.   void okButton_actionPerformed(ActionEvent e) {
  127.     try {
  128.       Component component = this;
  129.       Frame frame = null;
  130.  
  131.       while ((component = component.getParent()) != null) {
  132.         if (component instanceof Frame) {
  133.           frame = (Frame) component;
  134.           break;
  135.         }
  136.       }
  137.  
  138.       if (frame == null) {
  139.         frame = new Frame();
  140.       }
  141.       PasswordDialog passwordDialog = new PasswordDialog(frame, textRes.getString("Password"));
  142.       passwordDialog.show();
  143.       String password;
  144.       if ((password = passwordDialog.getPassword()) != null) {
  145.         if (!appDataModule.isValidCustomerDataViewPassword(password)) {
  146.           Message message = new Message();
  147.           message.setFrame(frame);
  148.           message.setLabels(new String [] { textRes.getString("OK") });
  149.           message.setMessage(textRes.getString("Invalid_password"));
  150.           message.setVisible(true);
  151.           return;
  152.         }
  153.         validCustomer = true;
  154.       } else {
  155.         return;
  156.       }
  157.     } catch (Exception ex) {
  158.       borland.jbcl.util.Diagnostic.printStackTrace(ex);
  159.     }
  160.     dispose();
  161.   }
  162.  
  163.   //Cancel
  164.   void cancelButton_actionPerformed(ActionEvent e) {
  165.     dispose();
  166.   }
  167.  
  168.   // In order to center the dialog, we override its addNotify()
  169.   // method and set its location immediately after the peer is created.
  170.   public void addNotify() {
  171.     super.addNotify();
  172.  
  173.     gridControl1.setPreferredSize(new Dimension((gridControl1.getPreferredSize().width >= screenSize.width) ? (screenSize.width / 2) :
  174.                                    gridControl1.getPreferredSize().width,
  175.                                   (gridControl1.getPreferredSize().height >= screenSize.height) ? (screenSize.height / 2) :
  176.                                    gridControl1.getPreferredSize().height));
  177.     //Center the window
  178.     this.pack();
  179.     Dimension frameSize = this.getPreferredSize();
  180.     if (frameSize.height > screenSize.height)
  181.       frameSize.height = screenSize.height;
  182.     if (frameSize.width > screenSize.width)
  183.       frameSize.width = screenSize.width;
  184.     this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
  185.   }
  186.  
  187.   void this_windowClosing(WindowEvent e) {
  188.     System.out.println("CustomerLookupDialog() window closing...");
  189.     dispose();
  190.   }
  191.  
  192.   void gridControl1_subfocusChanged(MatrixSubfocusEvent e) {
  193. //    messageArgs = new Object [] { textRes.getString(gridControl1.getColumnView(e.getLocation().column).getName()) };
  194.     messageArgs = new Object [] { gridControl1.getColumnView(e.getLocation().column).getCaption() };
  195.     messageString = formattedMessage.format(messageArgs);
  196.     searchNameLabel.setText(messageString);
  197.   }
  198.  
  199.   void gridControl1_mouseClicked(MouseEvent e) {
  200.     if (e.getClickCount() >= 2) {
  201.        okButton_actionPerformed(new ActionEvent(gridControl1, ActionEvent.ACTION_PERFORMED, ""));
  202.     }
  203.   }
  204. }
  205.  
  206. class CustomerLookupDialog_okButton_actionAdapter implements ActionListener{
  207.   CustomerLookupDialog adaptee;
  208.  
  209.   CustomerLookupDialog_okButton_actionAdapter(CustomerLookupDialog adaptee) {
  210.     this.adaptee = adaptee;
  211.   }
  212.  
  213.   public void actionPerformed(ActionEvent e) {
  214.     adaptee.okButton_actionPerformed(e);
  215.   }
  216. }
  217.  
  218. class CustomerLookupDialog_cancelButton_actionAdapter implements ActionListener{
  219.   CustomerLookupDialog adaptee;
  220.  
  221.   CustomerLookupDialog_cancelButton_actionAdapter(CustomerLookupDialog adaptee) {
  222.     this.adaptee = adaptee;
  223.   }
  224.  
  225.   public void actionPerformed(ActionEvent e) {
  226.     adaptee.cancelButton_actionPerformed(e);
  227.   }
  228. }
  229.  
  230. class CustomerLookupDialog_this_windowAdapter extends WindowAdapter {
  231.   CustomerLookupDialog adaptee;
  232.  
  233.   CustomerLookupDialog_this_windowAdapter(CustomerLookupDialog adaptee) {
  234.     this.adaptee = adaptee;
  235.   }
  236.  
  237.   public void windowClosing(WindowEvent e) {
  238.     adaptee.this_windowClosing(e);
  239.   }
  240. }
  241.  
  242. class CustomerLookupDialog_gridControl1_subfocusAdapter extends borland.jbcl.model.MatrixSubfocusAdapter {
  243.   CustomerLookupDialog adaptee;
  244.  
  245.   CustomerLookupDialog_gridControl1_subfocusAdapter(CustomerLookupDialog adaptee) {
  246.     this.adaptee = adaptee;
  247.   }
  248.  
  249.   public void subfocusChanged(MatrixSubfocusEvent e) {
  250.     adaptee.gridControl1_subfocusChanged(e);
  251.   }
  252. }
  253.  
  254. class CustomerLookupDialog_gridControl1_mouseAdapter extends java.awt.event.MouseAdapter {
  255.   CustomerLookupDialog adaptee;
  256.  
  257.   CustomerLookupDialog_gridControl1_mouseAdapter(CustomerLookupDialog adaptee) {
  258.     this.adaptee = adaptee;
  259.   }
  260.  
  261.   public void mouseClicked(MouseEvent e) {
  262.     adaptee.gridControl1_mouseClicked(e);
  263.   }
  264. }
  265.