home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / ViewOnlyNavigationBar.java < prev    next >
Text File  |  1998-05-08  |  5KB  |  145 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.beans;
  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.  
  30. /**
  31.  * A data-aware button bar bean which allows only navigation through a dataset.
  32.  */
  33. public class ViewOnlyNavigationBar extends BevelPanel implements NavigationListener, AccessListener {
  34.  
  35.   private GridLayout gridLayout1 = new GridLayout();
  36.   private ButtonBar buttonBar1 = new ButtonBar();
  37.   private DataSet dataSet = null;
  38.  
  39.   public ViewOnlyNavigationBar() {
  40.     try {
  41.       jbInit();
  42.     }
  43.     catch (Exception e) {
  44.       e.printStackTrace();
  45.     }
  46.   }
  47.  
  48.   public void jbInit() throws Exception{
  49.  
  50.     this.setLayout(gridLayout1);
  51.     gridLayout1.setRows(1);
  52.     gridLayout1.setColumns(4);
  53.     buttonBar1.setLayout(gridLayout1);
  54.     buttonBar1.setButtonType(ButtonBar.IMAGE_ONLY);
  55.     buttonBar1.setLabels(new String[] {"First", "Prior", "Next", "Last"});
  56.     buttonBar1.setImageNames(new String[] { this.getClass().getResource("resources/first.gif").toString(),
  57.                                             this.getClass().getResource("resources/prior.gif").toString(), 
  58.                                             this.getClass().getResource("resources/next.gif").toString(), 
  59.                                             this.getClass().getResource("resources/last.gif").toString(), });
  60.     buttonBar1.addActionListener(new ViewOnlyNavigationBar_buttonBar1_actionAdapter(this));
  61.     buttonBar1.doLayout();
  62.  
  63.     this.add(buttonBar1, null);
  64.   }
  65.  
  66.   public void setDataSet(DataSet dataSet) {
  67.     if (dataSet != null) {
  68.       dataSet.removeAccessListener(this);
  69.       dataSet.removeNavigationListener(this);
  70.     }
  71.  
  72.     this.dataSet = dataSet;
  73.  
  74.     dataSet.addAccessListener(this);
  75.     dataSet.addNavigationListener(this);
  76.  
  77.     updateButtonEnabledState();
  78.   }
  79.  
  80.   public DataSet getDataSet() {
  81.     return dataSet;
  82.   }
  83.  
  84.   public void accessChange(AccessEvent e) {
  85.     updateButtonEnabledState();
  86.   }
  87.  
  88.   public void navigated(NavigationEvent e) {
  89.     updateButtonEnabledState();
  90.   }
  91.  
  92.   void buttonBar1_actionPerformed(java.awt.event.ActionEvent e) {
  93.     try {
  94.       if (dataSet != null) {
  95.         String command = e.getActionCommand();
  96.  
  97.         if (command.equals("First")) {
  98.           dataSet.first();
  99.         } else if (command.equals("Prior")) {
  100.           dataSet.prior();
  101.         } else if (command.equals("Next")) {
  102.           dataSet.next();
  103.         } else if (command.equals("Last")) {
  104.           dataSet.last();
  105.         }
  106.       }
  107.       updateButtonEnabledState();
  108.     } catch (Exception ex) {
  109.       DataSetException.handleException(dataSet, null, ex, true);
  110.     }
  111.   }
  112.  
  113.   private void updateButtonEnabledState() {
  114.     try {
  115.       if ((dataSet != null) && (dataSet.isOpen() == true)) {
  116.         buttonBar1.setButtonEnabled("First", !dataSet.atFirst());
  117.         buttonBar1.setButtonEnabled("Prior", !dataSet.atFirst());
  118.         buttonBar1.setButtonEnabled("Last", !dataSet.atLast());
  119.         buttonBar1.setButtonEnabled("Next", !dataSet.atLast());
  120.       } else {
  121.         buttonBar1.setButtonEnabled("First", false);
  122.         buttonBar1.setButtonEnabled("Prior", false);
  123.         buttonBar1.setButtonEnabled("Last", false);
  124.         buttonBar1.setButtonEnabled("Next", false);
  125.       }
  126.     } catch (DataSetException e) {
  127.       DataSetException.handleException(dataSet, null, e, true);
  128.     }
  129.  
  130.   }
  131.  
  132. }
  133.  
  134. class ViewOnlyNavigationBar_buttonBar1_actionAdapter implements java.awt.event.ActionListener {
  135.   ViewOnlyNavigationBar adaptee;
  136.  
  137.   ViewOnlyNavigationBar_buttonBar1_actionAdapter(ViewOnlyNavigationBar adaptee) {
  138.     this.adaptee = adaptee;
  139.   }
  140.  
  141.   public void actionPerformed(java.awt.event.ActionEvent e) {
  142.     adaptee.buttonBar1_actionPerformed(e);
  143.   }
  144. }
  145.