home *** CD-ROM | disk | FTP | other *** search
/ BUG 15 / BUGCD1998_06.ISO / aplic / jbuilder / jsamples.z / VisualEvents_Frame.java < prev    next >
Encoding:
Java Source  |  1997-07-24  |  4.0 KB  |  96 lines

  1. package borland.samples.tutorial.dataset.visualevents;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import borland.jbcl.control.*;
  6. import borland.jbcl.layout.*;
  7. import borland.jbcl.dataset.*;
  8. import borland.jbcl.util.*;
  9.  
  10. public class VisualEvents_Frame extends DecoratedFrame {
  11.   private BorderLayout     borderLayout1     = new BorderLayout();
  12.   private BevelPanel       bevelPanel1       = new BevelPanel();
  13.           Database         database1         = new Database();
  14.           QueryDataSet     queryDataSet1     = new QueryDataSet();
  15.           QueryDataSet     queryDataSet2     = new QueryDataSet();
  16.           GridControl      gridControl1      = new GridControl();
  17.           GridControl      gridControl2      = new GridControl();
  18.           StatusBar        statusBar1        = new StatusBar();
  19.           NavigatorControl navigatorControl1 = new NavigatorControl();
  20.   GridBagLayout gridBagLayout1 = new GridBagLayout();
  21.  
  22.    //Construct the frame
  23.   public VisualEvents_Frame() {
  24.     try {
  25.       jbInit();
  26.     }
  27.     catch (Exception e) {
  28.       e.printStackTrace();
  29.     }
  30.   }
  31.  
  32.   //Component initialization
  33.   public void jbInit() throws Exception{
  34.     this.setLayout(borderLayout1);
  35.     this.setSize(new Dimension(559, 482));
  36.     this.setTitle("Share NavigatorControl and StatusBar, Show/Hide Buttons");
  37.     bevelPanel1.setLayout(gridBagLayout1);
  38.  
  39.     //add a Database component and set its connection property
  40.     database1.setConnection(new borland.jbcl.dataset.ConnectionDescriptor(
  41.       "jdbc:odbc:DataSet Tutorial", "SYSDBA", "masterkey", false, Database.DEFAULT_DRIVERS));
  42.  
  43.     //add a QueryDataSet and set its query property
  44.     queryDataSet1.setQuery(new QueryDescriptor(database1,
  45.       "select * from department", null));
  46.  
  47.     //add a second QueryDataSet and set its query property
  48.     //  and its masterDetail property
  49.     queryDataSet2.setQuery(new QueryDescriptor(database1,
  50.       "select * from employee", null));
  51.     queryDataSet2.setMasterLink(new MasterLinkDescriptor(queryDataSet1,
  52.       new String[] {"DEPT_NO"}, new String[] {"DEPT_NO"}, false));
  53.  
  54.     //add two gridControls and bind each to a data set
  55.     gridControl1.setDataSet(queryDataSet1);
  56.     gridControl2.setDataSet(queryDataSet2);
  57.     statusBar1.setBevelOuter(0);
  58.  
  59.     //add a NavigatorControl
  60.     navigatorControl1.setDataSet(queryDataSet1);
  61.     this.add(bevelPanel1, BorderLayout.CENTER);
  62.     bevelPanel1.add(gridControl1, new GridBagConstraints2(0, 1, 1, 1, 1.0, 1.0
  63.             ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(7, 11, 0, 11), -496, -290));
  64.     bevelPanel1.add(gridControl2, new GridBagConstraints2(0, 2, 1, 1, 1.0, 1.0
  65.             ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 11, 0, 11), -944, 146));
  66.     bevelPanel1.add(statusBar1, new GridBagConstraints2(0, 3, 1, 1, 1.0, 0.0
  67.             ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 11, 8, 11), 326, -2));
  68.     bevelPanel1.add(navigatorControl1, new GridBagConstraints2(0, 0, 1, 1, 0.0, 0.0
  69.             ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(8, 0, 0, 0), 0, 0));
  70.  
  71.     //define which navigator buttons to show for each data set
  72.     int[] grid1EnabledFlags = { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };
  73.     int[] grid2EnabledFlags = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
  74.  
  75.     //instantiate a listener for each data set
  76.     FocusListener grid1Focus = new VisualEvents_Focus(this, queryDataSet1,
  77.       grid1EnabledFlags);
  78.     FocusListener grid2Focus = new VisualEvents_Focus(this, queryDataSet2,
  79.       grid2EnabledFlags);
  80.  
  81.     //tie each listener to its grid
  82.     gridControl1.addFocusListener(grid1Focus);
  83.     gridControl2.addFocusListener(grid2Focus);
  84.   }
  85.  
  86.   // set navigator and statusBar properties for the grid that got focus
  87.   public void gridFocusGained(QueryDataSet qds, int[] navEnabledFlags) {
  88.     navigatorControl1.setDataSet(qds);
  89.     for (int i = 0; i < navEnabledFlags.length; ++i)
  90.       navigatorControl1.setButtonEnabled(i, navEnabledFlags[i] == 1);
  91.     statusBar1.setDataSet(qds);
  92.   }
  93.   
  94. }
  95.  
  96.