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

  1. package borland.samples.intl.beans;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import java.text.*;
  6. import java.util.*;
  7. import borland.jbcl.layout.*;
  8. import borland.jbcl.control.*;
  9. import borland.jbcl.dataset.*;
  10.  
  11. /**
  12.  * A data-aware button bar bean which allows only navigation through a dataset.
  13.  */
  14. public class ViewOnlyNavigationBar extends BevelPanel implements NavigationListener, AccessListener {
  15.  
  16.   private GridLayout gridLayout1 = new GridLayout();
  17.   private ButtonBar buttonBar1 = new ButtonBar();
  18.   private DataSet dataSet = null;
  19.  
  20.   public ViewOnlyNavigationBar() {
  21.     try {
  22.       jbInit();
  23.     }
  24.     catch (Exception e) {
  25.       e.printStackTrace();
  26.     }
  27.   }
  28.  
  29.   public void jbInit() throws Exception{
  30.  
  31.     this.setLayout(gridLayout1);
  32.     gridLayout1.setRows(1);
  33.     gridLayout1.setColumns(4);
  34.     buttonBar1.setLayout(gridLayout1);
  35.     buttonBar1.setButtonType(ButtonBar.IMAGE_ONLY);
  36.     buttonBar1.setLabels(new String[] {"First", "Prior", "Next", "Last"});
  37.     buttonBar1.setImageNames(new String[] { this.getClass().getResource("resources/first.gif").toString(),
  38.                         this.getClass().getResource("resources/prior.gif").toString(), 
  39.                         this.getClass().getResource("resources/next.gif").toString(), 
  40.                         this.getClass().getResource("resources/last.gif").toString(), });
  41.     buttonBar1.addActionListener(new ViewOnlyNavigationBar_buttonBar1_actionAdapter(this));
  42.     buttonBar1.doLayout();
  43.  
  44.     this.add(buttonBar1, null);
  45.   }
  46.  
  47.   public void setDataSet(DataSet dataSet) {
  48.     if (dataSet != null) {
  49.       dataSet.removeAccessListener(this);
  50.       dataSet.removeNavigationListener(this);
  51.     }
  52.  
  53.     this.dataSet = dataSet;
  54.  
  55.     try {
  56.       dataSet.addAccessListener(this);
  57.       dataSet.addNavigationListener(this);
  58.     } catch (DataSetException e) {
  59.       DataSetException.handleException(dataSet, null, e, true);
  60.       return;
  61.     }
  62.     updateButtonEnabledState();
  63.   }
  64.  
  65.   public DataSet getDataSet() {
  66.     return dataSet;
  67.   }
  68.  
  69.   public void accessChange(AccessEvent e) {
  70.     updateButtonEnabledState();
  71.   }
  72.  
  73.   public void navigated(NavigationEvent e) {
  74.     updateButtonEnabledState();
  75.   }
  76.  
  77.   void buttonBar1_actionPerformed(java.awt.event.ActionEvent e) {
  78.     try {
  79.       if (dataSet != null) {
  80.     String command = e.getActionCommand();
  81.  
  82.     if (command.equals("First")) {
  83.       dataSet.first();
  84.     } else if (command.equals("Prior")) {
  85.       dataSet.prior();
  86.     } else if (command.equals("Next")) {
  87.       dataSet.next();
  88.     } else if (command.equals("Last")) {
  89.       dataSet.last();
  90.     }
  91.       }
  92.       updateButtonEnabledState();
  93.     } catch (Exception ex) {
  94.       DataSetException.handleException(dataSet, null, ex, true);
  95.     }
  96.   }
  97.  
  98.   private void updateButtonEnabledState() {
  99.     try {
  100.       if ((dataSet != null) && (dataSet.isOpen() == true)) {
  101.         buttonBar1.setButtonEnabled("First", !dataSet.atFirst());
  102.         buttonBar1.setButtonEnabled("Prior", !dataSet.atFirst());
  103.         buttonBar1.setButtonEnabled("Last", !dataSet.atLast());
  104.         buttonBar1.setButtonEnabled("Next", !dataSet.atLast());
  105.       } else {
  106.         buttonBar1.setButtonEnabled("First", false);
  107.         buttonBar1.setButtonEnabled("Prior", false);
  108.         buttonBar1.setButtonEnabled("Last", false);
  109.         buttonBar1.setButtonEnabled("Next", false);
  110.       }
  111.     } catch (DataSetException e) {
  112.       DataSetException.handleException(dataSet, null, e, true);
  113.     }
  114.  
  115.   }
  116.  
  117. }
  118.  
  119. class ViewOnlyNavigationBar_buttonBar1_actionAdapter implements java.awt.event.ActionListener {
  120.   ViewOnlyNavigationBar adaptee;
  121.  
  122.   ViewOnlyNavigationBar_buttonBar1_actionAdapter(ViewOnlyNavigationBar adaptee) {
  123.     this.adaptee = adaptee;
  124.   }
  125.  
  126.   public void actionPerformed(java.awt.event.ActionEvent e) {
  127.     adaptee.buttonBar1_actionPerformed(e);
  128.   }
  129. }
  130.