home *** CD-ROM | disk | FTP | other *** search
/ BUG 15 / BUGCD1998_06.ISO / aplic / jbuilder / jsamples.z / dbSampleFrame.java < prev    next >
Text File  |  1997-07-03  |  16KB  |  444 lines

  1. package borland.samples.tutorial.dataset.dbsample;
  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 java.math.*;
  9.  
  10. public class dbSampleFrame extends DecoratedFrame {
  11.   BorderLayout borderLayout1 = new BorderLayout();
  12.   BorderLayout borderLayout2 = new BorderLayout();
  13.   MenuBar menuBar1 = new MenuBar();
  14.   Menu menuFile = new Menu();
  15.   MenuItem menuFileExit = new MenuItem();
  16.   Menu menuHelp = new Menu();
  17.   MenuItem menuHelpAbout = new MenuItem();
  18.   StatusBar statusBar = new StatusBar();
  19.   Database db = new Database();
  20.   QueryDataSet qDataSet = new QueryDataSet();
  21.   BevelPanel topPanel = new BevelPanel();
  22.   CheckboxPanel checkboxPanel1 = new CheckboxPanel();
  23.   GridBagLayout gridBagLayout1 = new GridBagLayout();
  24.   BevelPanel middlePanel = new BevelPanel();
  25.   BevelPanel functionPanel = new BevelPanel();
  26.   Panel locatePanel = new Panel();
  27.   LocatorControl locateControl = new LocatorControl();
  28.   GridBagLayout gridBagLayout2 = new GridBagLayout();
  29.   Label locateLabel = new Label();
  30.   NavigatorControl navigatorControl1 = new NavigatorControl();
  31.   CardLayout cardLayout1 = new CardLayout();
  32.   GridControl gridControl1 = new GridControl();
  33.   BorderLayout borderLayout3 = new BorderLayout();
  34.   Column column1 = new Column();
  35.   Column column2 = new Column();
  36.   Column column3 = new Column();
  37.   Column column4 = new Column();
  38.   Column column5 = new Column();
  39.   Column column6 = new Column();
  40.   Column column7 = new Column();
  41.   Column column8 = new Column();
  42.   Column column9 = new Column();
  43.   Column column10 = new Column();
  44.   Column column11 = new Column();  
  45.   protected BigDecimal bdTot = new BigDecimal(0);
  46.  
  47.  
  48.   MenuItem navigateMenuItem = new MenuItem();
  49.   Panel calcResultsPanel = new Panel();
  50.   BorderLayout borderLayout4 = new BorderLayout();
  51.   FlowLayout flowLayout1 = new FlowLayout();
  52.   Panel bottomPanel = new Panel();
  53.   BorderLayout borderLayout5 = new BorderLayout();
  54.  
  55.   XYLayout xYLayout1 = new XYLayout();
  56.   Label label4 = new Label();
  57.   Label label5 = new Label();
  58.   Label label6 = new Label();
  59.   MenuItem findMenuItem = new MenuItem();
  60.   FieldControl orgTotal = new FieldControl();
  61.   FieldControl newTotal = new FieldControl();
  62.   FieldControl difference = new FieldControl();
  63.  
  64.  
  65.  
  66.  
  67.   //Construct the frame
  68.   public dbSampleFrame() {
  69.     try {
  70.       jbInit();
  71.     }
  72.     catch (Exception e) {
  73.       e.printStackTrace();
  74.     }
  75.   }
  76.  
  77.   //Component initialization
  78.   public void jbInit() throws Exception{
  79.     this.setLayout(borderLayout1);
  80.     this.setTitle("dbSample");
  81.     menuFile.setLabel("File");
  82.     menuFileExit.setLabel("Exit");
  83.     menuFileExit.addActionListener(new dbSampleFrame_menuFileExit_ActionAdapter(this));
  84.     menuHelp.setLabel("Help");
  85.     menuHelpAbout.setLabel("About");
  86.     statusBar.setAlignment(Label.CENTER);
  87.     statusBar.setDataSet(qDataSet);
  88.     statusBar.setForeground(Color.blue);
  89.     statusBar.setFont(new Font("Helvetica", 1, 12));
  90.     menuHelpAbout.addActionListener(new dbSampleFrame_menuHelpAbout_ActionAdapter(this));
  91.     topPanel.setLayout(borderLayout2);
  92.     checkboxPanel1.setFont(new Font("Dialog", 1, 12));
  93.     checkboxPanel1.setGrouped(true);
  94.     checkboxPanel1.setLabels(new String[] {"Navigate", "Find"});
  95.     checkboxPanel1.setSelectedIndex(0);
  96.     middlePanel.setBevelOuter(BevelPanel.LOWERED);
  97.     middlePanel.setLayout(borderLayout3);
  98.     checkboxPanel1.addItemListener(new dbSampleFrame_checkboxPanel1_itemAdapter(this));
  99.     checkboxPanel1.setOrientation(borland.jbcl.util.Orientation.HORIZONTAL);
  100.     functionPanel.setBevelOuter(BevelPanel.LOWERED);
  101.     locateControl.setDataSet(qDataSet);
  102.     locateLabel.setFont(new Font("Dialog", 1, 12));
  103.     locateLabel.setText(" Find");
  104.     navigatorControl1.setDataSet(qDataSet);           
  105.     gridControl1.setDataSet(qDataSet);
  106.  
  107.     // Set column Properties
  108.     column1.setColumnName("EMP_NO");
  109.     column1.setDataType(borland.jbcl.util.Variant.SHORT);
  110.     column1.setWidth(60);
  111.  
  112.     column2.setColumnName("FULL_NAME");
  113.     column2.setDataType(borland.jbcl.util.Variant.STRING);
  114.     column2.setWidth(135);
  115.  
  116. // sets the display mask for the date column
  117.     column3.setColumnName("HIRE_DATE");
  118.     column3.setDisplayMask("MMM-dd-yy");
  119.     column3.setDataType(borland.jbcl.util.Variant.TIMESTAMP);
  120.  
  121. // sets the edit mask for the date column
  122.     column3.setEditMask("MM-dd-yy");
  123.     column4.setColumnName("DEPT_NO");
  124.     column4.setDataType(borland.jbcl.util.Variant.STRING);
  125.     column4.setWidth(60);
  126.  
  127.     column5.setCaption("COUNTRY");
  128.     column5.setColumnName("JOB_COUNTRY");
  129.     column5.setDataType(borland.jbcl.util.Variant.STRING);
  130.     column5.setWidth(80);
  131.  
  132.     column6.setCaption("SALARY");
  133.     column6.setColumnName("SALARY");
  134.     column6.setDataType(borland.jbcl.util.Variant.BIGDECIMAL);
  135.     column6.setScale(2);
  136.     column6.setWidth(80);
  137.  
  138.     column7.setCalcType(borland.jbcl.dataset.CalcType.CALC);
  139.     column7.setColumnName("NEW_SALARY");
  140.     column7.setDataType(borland.jbcl.util.Variant.BIGDECIMAL);
  141.     column7.setVisible(borland.jbcl.util.TriState.NO);
  142.  
  143.     // Aggregator on a dataColumn..
  144.     column8.setCalcType(borland.jbcl.dataset.CalcType.AGGREGATE);
  145.     column8.setAgg(new AggDescriptor(null,"Salary",new SumAggOperator()));
  146.     column8.setColumnName("ORG_TOTAL");
  147.     column8.setDataType(borland.jbcl.util.Variant.BIGDECIMAL);
  148.     column8.setScale(2);
  149.  
  150.     // Aggregator on a calcColumn..
  151.     column9.setCalcType(borland.jbcl.dataset.CalcType.AGGREGATE);
  152.     column9.setColumnName("NEW_TOTAL");
  153.     column9.setAgg(new AggDescriptor(null,"NEW_SALARY",new SumAggOperator()));
  154.     column9.setDataType(borland.jbcl.util.Variant.BIGDECIMAL);
  155.     column9.setScale(2);
  156.  
  157.     // Calc on Aggregated Column..
  158.     column10.setCalcType(borland.jbcl.dataset.CalcType.CALC);
  159.     column10.setColumnName("DIFF_SALARY");
  160.     column10.setDataType(borland.jbcl.util.Variant.BIGDECIMAL);
  161.     column10.setScale(2);
  162.     column10.setVisible(borland.jbcl.util.TriState.NO);
  163.  
  164.     // Aggregator on calcColumn..
  165.     column11.setCalcType(borland.jbcl.dataset.CalcType.AGGREGATE);
  166.     column11.setColumnName("DIFF_TOTAL");
  167.     column11.setAgg(new AggDescriptor(null,"DIFF_SALARY",new SumAggOperator()));
  168.     column11.setDataType(borland.jbcl.util.Variant.BIGDECIMAL);
  169.     column11.setPrecision(2);
  170.  
  171.  
  172.     navigateMenuItem.setLabel("Navigate");
  173.     findMenuItem.setLabel("Find");
  174.     orgTotal.setColumnName("ORG_TOTAL");
  175.     orgTotal.setDataSet(qDataSet);
  176.     newTotal.setColumnName("NEW_TOTAL");
  177.     newTotal.setDataSet(qDataSet);
  178.     difference.setColumnName("DIFF_TOTAL");
  179.     difference.setDataSet(qDataSet);
  180.     findMenuItem.addActionListener(new dbSampleFrame_findMenuItem_actionAdapter(this));
  181.     calcResultsPanel.setLayout(xYLayout1);
  182.  
  183.  
  184.     navigateMenuItem.addActionListener(new dbSampleFrame_navigateMenuItem_actionAdapter(this));
  185.  
  186.     functionPanel.setLayout(cardLayout1);
  187.     locatePanel.setLayout(gridBagLayout2);
  188.     menuFile.add(navigateMenuItem);
  189.     menuFile.add(findMenuItem);
  190.     menuFile.add(menuFileExit);
  191.     menuHelp.add(menuHelpAbout);
  192.     menuBar1.add(menuFile);
  193.     menuBar1.add(menuHelp);
  194.     db.setConnection(new borland.jbcl.dataset.ConnectionDescriptor("jdbc:odbc:dataset tutorial", "sysdba", "masterkey", false, "sun.jdbc.odbc.JdbcOdbcDriver"));
  195.     qDataSet.setQuery(new borland.jbcl.dataset.QueryDescriptor(db, "select Emp_no,Full_name,Hire_date,Dept_No,Job_Country,Salary  from employee", null, true, false));
  196.     qDataSet.addCalcFieldsListener(new dbSampleFrame_qDataSet_calcFieldsAdapter(this));
  197.  
  198.     label4.setText("Original Total");
  199.     label5.setText("New Total");
  200.     label6.setText("Difference");
  201.  
  202.     bottomPanel.setLayout(borderLayout5);
  203.     this.setMenuBar(menuBar1);
  204.     this.setSize(new Dimension(722, 439));
  205.     this.add(topPanel, BorderLayout.NORTH);
  206.     this.add(middlePanel, BorderLayout.CENTER);
  207.     this.add(bottomPanel, BorderLayout.SOUTH);
  208.  
  209.  
  210.  
  211.     // Set the top Pannel
  212.     functionPanel.add(navigatorControl1, "navigatorControl1");
  213.     locatePanel.add(locateControl, new GridBagConstraints2(1, 0, 1, 2, 1.0, 0.0
  214.             ,GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 214, 0));
  215.     locatePanel.add(locateLabel, new GridBagConstraints2(0, 1, 1, 1, 0.0, 0.0
  216.             ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), -4, 0));
  217.     functionPanel.add(locatePanel, "locatePanel");
  218.     topPanel.add(functionPanel, BorderLayout.WEST);
  219.  
  220.     topPanel.add(checkboxPanel1, BorderLayout.CENTER);
  221.     // Set the middlePannel
  222.     middlePanel.add(gridControl1, BorderLayout.NORTH);
  223.  
  224.     // Set the bottomPannel
  225.     bottomPanel.add(calcResultsPanel, BorderLayout.NORTH);
  226.     calcResultsPanel.add(label4, new XYConstraints(7, 14, -1, -1));
  227.     calcResultsPanel.add(label5, new XYConstraints(229, 14, 95, -1));
  228.     calcResultsPanel.add(label6, new XYConstraints(459, 14, -1, -1));
  229.     calcResultsPanel.add(orgTotal, new XYConstraints(89, 14, -1, -1));
  230.     calcResultsPanel.add(newTotal, new XYConstraints(325, 14, -1, -1));
  231.     calcResultsPanel.add(difference, new XYConstraints(538, 14, -1, -1));
  232.     bottomPanel.add(statusBar, BorderLayout.SOUTH);
  233.     qDataSet.setColumns(new Column[] {column1, column2, column3, column4, column5, column6, column7, column8, column9, column10, column11});
  234.   }
  235.  
  236.   //File | Exit action performed
  237.   public void fileExit_actionPerformed(ActionEvent e) {
  238.     System.exit(0);
  239.   }
  240.  
  241.   //Help | About action performed
  242.   public void helpAbout_actionPerformed(ActionEvent e) {
  243.     dbSampleFrame_AboutBox dlg = new dbSampleFrame_AboutBox(this);
  244.     Dimension dlgSize = dlg.getPreferredSize();
  245.     Dimension frmSize = getSize();
  246.     Point loc = getLocation();
  247.     dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
  248.     dlg.setModal(true);
  249.     dlg.show();
  250.   }
  251.  
  252.  
  253.  
  254.   void checkboxPanel1_itemStateChanged(ItemEvent e) {
  255.      switch(checkboxPanel1.getSelectedIndex()){
  256.         case 0  : cardLayout1.show(functionPanel,"navigatorControl1"); break;
  257.         case 1  : cardLayout1.show(functionPanel,"locatePanel");break;
  258.         case 2  : break;
  259.         default : break;
  260.      }
  261.   }
  262.  
  263.  
  264.   void qDataSet_calcFields(ReadRow readRow, DataRow dataRow, boolean boolean1) throws DataSetException{
  265.         BigDecimal bDin  = readRow.getBigDecimal("Salary");
  266.         BigDecimal bDout = bDin.add(new BigDecimal(bDin.doubleValue()*10.0/100));
  267.         dataRow.setBigDecimal("NEW_SALARY",bDout);
  268.         dataRow.setBigDecimal("DIFF_SALARY",bDout.subtract(bDin));
  269.   }
  270.  
  271.  
  272.   void findMenuItem_actionPerformed(ActionEvent e) {
  273.     checkboxPanel1.setSelectedIndex(1);
  274.     cardLayout1.show(functionPanel,"locatePanel");
  275.   }
  276.   void navigateMenuItem_actionPerformed(ActionEvent e) {
  277.     checkboxPanel1.setSelectedIndex(0);
  278.     cardLayout1.show(functionPanel,"navigatorControl1");
  279.   }
  280.  
  281.  
  282. }
  283. class dbSampleFrame_menuFileExit_ActionAdapter implements ActionListener{
  284.   dbSampleFrame adaptee;
  285.  
  286.   dbSampleFrame_menuFileExit_ActionAdapter(dbSampleFrame adaptee) {
  287.     this.adaptee = adaptee;
  288.   }
  289.  
  290.   public void actionPerformed(ActionEvent e) {
  291.     adaptee.fileExit_actionPerformed(e);
  292.   }
  293. }
  294.  
  295. class dbSampleFrame_menuHelpAbout_ActionAdapter implements ActionListener{
  296.   dbSampleFrame adaptee;
  297.  
  298.   dbSampleFrame_menuHelpAbout_ActionAdapter(dbSampleFrame adaptee) {
  299.     this.adaptee = adaptee;
  300.   }
  301.  
  302.   public void actionPerformed(ActionEvent e) {
  303.     adaptee.helpAbout_actionPerformed(e);
  304.   }
  305. }
  306.  
  307. class dbSampleFrame_AboutBox extends Dialog implements ActionListener {
  308.   Panel panel1 = new Panel();
  309.   BevelPanel bevelPanel1 = new BevelPanel();
  310.   dbSampleFrame_InsetsPanel insetsPanel1 = new dbSampleFrame_InsetsPanel();
  311.   dbSampleFrame_InsetsPanel insetsPanel2 = new dbSampleFrame_InsetsPanel();
  312.   dbSampleFrame_InsetsPanel insetsPanel3 = new dbSampleFrame_InsetsPanel();
  313.   Button button1 = new Button();
  314.   ImageControl imageControl1 = new ImageControl();
  315.   Label label1 = new Label();
  316.   Label label2 = new Label();
  317.   Label label3 = new Label();
  318.   Label label4 = new Label();
  319.   BorderLayout borderLayout1 = new BorderLayout();
  320.   BorderLayout borderLayout2 = new BorderLayout();
  321.   FlowLayout flowLayout1 = new FlowLayout();
  322.   GridLayout gridLayout1 = new GridLayout();
  323.   String product = "DataBase Sample";
  324.   String version = "";
  325.   String copyright = "Copyright (c) 1997";
  326.   String comments = "DataBase Sample";
  327.  
  328.   public dbSampleFrame_AboutBox(Frame parent) {
  329.     super(parent);
  330.     try {
  331.       jbInit();
  332.     }
  333.     catch (Exception e) {
  334.       e.printStackTrace();
  335.     }
  336.     pack();
  337.   }
  338.  
  339.   void jbInit() throws Exception{
  340.     this.setTitle("About");
  341.     setResizable(false);
  342.     panel1.setLayout(borderLayout1);
  343.     bevelPanel1.setLayout(borderLayout2);
  344.     insetsPanel2.setLayout(flowLayout1);
  345.     insetsPanel2.setInsets(new Insets(10, 10, 10, 10));
  346.     gridLayout1.setRows(4);
  347.     gridLayout1.setColumns(1);
  348.     label1.setText(product);
  349.     label2.setText(version);
  350.     label3.setText(copyright);
  351.     label4.setText(comments);
  352.     insetsPanel3.setLayout(gridLayout1);
  353.     insetsPanel3.setInsets(new Insets(10, 60, 10, 10));
  354.     button1.setLabel("OK");
  355.     button1.addActionListener(this);
  356.     imageControl1.setImageName("");
  357.     insetsPanel2.add(imageControl1, null);
  358.     bevelPanel1.add(insetsPanel2, BorderLayout.WEST);
  359.     this.add(panel1, null);
  360.     insetsPanel3.add(label1, null);
  361.     insetsPanel3.add(label2, null);
  362.     insetsPanel3.add(label3, null);
  363.     insetsPanel3.add(label4, null);
  364.     bevelPanel1.add(insetsPanel3, BorderLayout.CENTER);
  365.     insetsPanel1.add(button1, null);
  366.     panel1.add(insetsPanel1, BorderLayout.SOUTH);
  367.     panel1.add(bevelPanel1, BorderLayout.NORTH);
  368.     pack();
  369.   }
  370.  
  371.   public void actionPerformed(ActionEvent e) {
  372.     if (e.getSource() == button1) {
  373.     setVisible(false);
  374.     dispose();
  375.     }
  376.   }
  377. }
  378.  
  379. class dbSampleFrame_InsetsPanel extends Panel {
  380.   protected Insets insets;
  381.  
  382.   public Insets getInsets() {
  383.     return insets == null ? super.getInsets() : insets;
  384.   }
  385.  
  386.   public void setInsets(Insets insets) {
  387.     this.insets = insets;
  388.   }
  389. }
  390.  
  391.  
  392. class dbSampleFrame_checkboxPanel1_itemAdapter implements java.awt.event.ItemListener{
  393.   dbSampleFrame adaptee;
  394.  
  395.   dbSampleFrame_checkboxPanel1_itemAdapter(dbSampleFrame adaptee) {
  396.     this.adaptee = adaptee;
  397.   }
  398.  
  399.   public void itemStateChanged(ItemEvent e) {
  400.     adaptee.checkboxPanel1_itemStateChanged(e);
  401.   }
  402. }
  403.  
  404. class dbSampleFrame_navigateMenuItem_actionAdapter implements java.awt.event.ActionListener{
  405.   dbSampleFrame adaptee;
  406.  
  407.   dbSampleFrame_navigateMenuItem_actionAdapter(dbSampleFrame adaptee) {
  408.     this.adaptee = adaptee;
  409.   }
  410.  
  411.   public void actionPerformed(ActionEvent e) {
  412.     adaptee.navigateMenuItem_actionPerformed(e);
  413.   }
  414. }
  415.  
  416. class dbSampleFrame_qDataSet_calcFieldsAdapter implements borland.jbcl.dataset.CalcFieldsListener {
  417.   dbSampleFrame adaptee;
  418.  
  419.   dbSampleFrame_qDataSet_calcFieldsAdapter(dbSampleFrame adaptee) {
  420.     this.adaptee = adaptee;
  421.   }
  422.  
  423.   public void calcFields(ReadRow readRow, DataRow dataRow, boolean boolean1) throws DataSetException{
  424.     adaptee.qDataSet_calcFields(readRow, dataRow, boolean1);
  425.   }
  426. }
  427.  
  428.  
  429. class dbSampleFrame_findMenuItem_actionAdapter implements java.awt.event.ActionListener {
  430.   dbSampleFrame adaptee;
  431.  
  432.   dbSampleFrame_findMenuItem_actionAdapter(dbSampleFrame adaptee) {
  433.     this.adaptee = adaptee;
  434.   }
  435.  
  436.   public void actionPerformed(ActionEvent e) {
  437.     adaptee.findMenuItem_actionPerformed(e);
  438.   }
  439. }
  440.  
  441.  
  442.  
  443.  
  444.