home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / VisualEvents_Frame.java < prev    next >
Text File  |  1998-05-08  |  5KB  |  116 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.tutorial.dataset.visualevents;
  21.  
  22. import java.awt.*;
  23. import java.awt.event.*;
  24. import borland.jbcl.control.*;
  25. import borland.jbcl.layout.*;
  26. import borland.sql.dataset.*;
  27. import borland.jbcl.dataset.*;
  28. import borland.jbcl.util.*;
  29.  
  30. public class VisualEvents_Frame extends DecoratedFrame {
  31.   private BorderLayout     borderLayout1     = new BorderLayout();
  32.   private BevelPanel       bevelPanel1       = new BevelPanel();
  33.           Database         database1         = new Database();
  34.           QueryDataSet     queryDataSet1     = new QueryDataSet();
  35.           QueryDataSet     queryDataSet2     = new QueryDataSet();
  36.           GridControl      gridControl1      = new GridControl();
  37.           GridControl      gridControl2      = new GridControl();
  38.           StatusBar        statusBar1        = new StatusBar();
  39.           NavigatorControl navigatorControl1 = new NavigatorControl();
  40.   GridBagLayout gridBagLayout1 = new GridBagLayout();
  41.  
  42.    //Construct the frame
  43.   public VisualEvents_Frame() {
  44.     try {
  45.       jbInit();
  46.     }
  47.     catch (Exception e) {
  48.       e.printStackTrace();
  49.     }
  50.   }
  51.  
  52.   //Component initialization
  53.   private void jbInit() throws Exception{
  54.     this.setLayout(borderLayout1);
  55.     this.setSize(new Dimension(559, 482));
  56.     this.setTitle("Share NavigatorControl and StatusBar, Show/Hide Buttons");
  57.     bevelPanel1.setLayout(gridBagLayout1);
  58.  
  59.     //add a Database component and set its connection property
  60.     database1.setConnection(new borland.sql.dataset.ConnectionDescriptor(
  61.       "jdbc:odbc:DataSet Tutorial", "SYSDBA", "masterkey", false, Database.DEFAULT_DRIVERS));
  62.  
  63.     //add a QueryDataSet and set its query property
  64.     queryDataSet1.setQuery(new QueryDescriptor(database1,
  65.       "select * from department", null));
  66.  
  67.     //add a second QueryDataSet and set its query property
  68.     //  and its masterDetail property
  69.     queryDataSet2.setQuery(new QueryDescriptor(database1,
  70.       "select * from employee", null));
  71.     queryDataSet2.setMasterLink(new MasterLinkDescriptor(queryDataSet1,
  72.       new String[] {"DEPT_NO"}, new String[] {"DEPT_NO"}, false));
  73.  
  74.     //add two gridControls and bind each to a data set
  75.     gridControl1.setDataSet(queryDataSet1);
  76.     gridControl2.setDataSet(queryDataSet2);
  77.     statusBar1.setBevelOuter(0);
  78.  
  79.     //add a NavigatorControl
  80.     navigatorControl1.setDataSet(queryDataSet1);
  81.     this.add(bevelPanel1, BorderLayout.CENTER);
  82.     bevelPanel1.add(gridControl1, new GridBagConstraints2(0, 1, 1, 1, 1.0, 1.0
  83.             ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(7, 11, 0, 11), -496, -290));
  84.     bevelPanel1.add(gridControl2, new GridBagConstraints2(0, 2, 1, 1, 1.0, 1.0
  85.             ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 11, 0, 11), -944, 146));
  86.     bevelPanel1.add(statusBar1, new GridBagConstraints2(0, 3, 1, 1, 1.0, 0.0
  87.             ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 11, 8, 11), 326, -2));
  88.     bevelPanel1.add(navigatorControl1, new GridBagConstraints2(0, 0, 1, 1, 0.0, 0.0
  89.             ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(8, 0, 0, 0), 0, 0));
  90.  
  91.     //define which navigator buttons to show for each data set
  92.     int[] grid1EnabledFlags = { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };
  93.     int[] grid2EnabledFlags = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
  94.  
  95.     //instantiate a listener for each data set
  96.     FocusListener grid1Focus = new VisualEvents_Focus(this, queryDataSet1,
  97.       grid1EnabledFlags);
  98.     FocusListener grid2Focus = new VisualEvents_Focus(this, queryDataSet2,
  99.       grid2EnabledFlags);
  100.  
  101.     //tie each listener to its grid
  102.     gridControl1.addFocusListener(grid1Focus);
  103.     gridControl2.addFocusListener(grid2Focus);
  104.   }
  105.  
  106.   // set navigator and statusBar properties for the grid that got focus
  107.   public void gridFocusGained(QueryDataSet qds, int[] navEnabledFlags) {
  108.     navigatorControl1.setDataSet(qds);
  109.     for (int i = 0; i < navEnabledFlags.length; ++i)
  110.       navigatorControl1.setButtonEnabled(i, navEnabledFlags[i] == 1);
  111.     statusBar1.setDataSet(qds);
  112.   }
  113.   
  114. }
  115.  
  116.