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

  1. // Change package name to match actual directory where created
  2. package borland.samples.apps.SchemaEditor;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import borland.jbcl.layout.*;
  6. import borland.jbcl.control.*;
  7. import borland.jbcl.dataset.*;
  8.  
  9. public class TestSchema {
  10.   // !!! These variables must be hand edited to make sample work
  11.   boolean useTableDataSet = true; //false->use a query DataSet
  12.   // If you are using a local data file, set the following
  13.   String tableDataSetName="C:\\JBuilder\\samples\\borland\\samples\\apps\\schemaeditor\\TestSchema.dat";
  14.   // If you are using a local or remote SQL server, set the following
  15.   String sqlDataBaseName="TestSchema";
  16.   String sqlTableName="TestSchema";
  17.   String sqlUserName="SYSDBA";
  18.   String sqlPassword="masterkey";
  19.  
  20.   StorageDataSet dataSet;
  21.   Database database1 = new Database();
  22.   TextDataFile textDataFile1 = new TextDataFile();
  23.  
  24.   BorderLayout borderLayout1 = new BorderLayout();
  25.   DecoratedFrame frame = new DecoratedFrame();
  26.   TestPanel panel = new TestPanel();
  27.   NavigatorControl navigatorControl1 = new NavigatorControl();
  28.   StatusBar statusBar1 = new StatusBar();
  29.  
  30.   //Construct the application
  31.   public TestSchema() {
  32.     try {
  33.       jbInit();
  34.     }
  35.     catch (Exception e) {
  36.       e.printStackTrace();
  37.     }
  38.     frame.pack();
  39.     //Center the window
  40.     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  41.     Dimension frameSize = frame.getPreferredSize();
  42.     if (frameSize.height > screenSize.height)
  43.       frameSize.height = screenSize.height;
  44.     if (frameSize.width > screenSize.width)
  45.       frameSize.width = screenSize.width;
  46.     frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
  47.     frame.setVisible(true);
  48.   }
  49.  
  50.   void jbInit() throws Exception{
  51.     frame.setExitOnClose(false); //Allows us to grab the window closing event
  52.     frame.addWindowListener(new TestSchema_frame_windowAdapter(this));
  53.     frame.setLayout(borderLayout1);
  54.     frame.add(navigatorControl1, BorderLayout.NORTH);
  55.     frame.add(panel,BorderLayout.CENTER);
  56.     frame.add(statusBar1, BorderLayout.SOUTH);
  57.     frame.setTitle("Schema Editor");
  58.     if (useTableDataSet) {
  59.       textDataFile1.setFileName(tableDataSetName);
  60.       dataSet=new TableDataSet();
  61.       dataSet.setDataFile(textDataFile1);
  62.     } else {
  63.       database1.setConnection(new borland.jbcl.dataset.ConnectionDescriptor("jdbc:odbc:" + sqlDataBaseName, sqlUserName, sqlPassword, false, "sun.jdbc.odbc.JdbcOdbcDriver"));
  64.       QueryDataSet qds = new QueryDataSet();
  65.       qds.setQuery(new borland.jbcl.dataset.QueryDescriptor(database1, "select * from "+sqlTableName, null, true, false));
  66.       dataSet=qds;
  67.     }
  68.     panel.setDataSet(dataSet);
  69.     navigatorControl1.setDataSet(dataSet);
  70.     statusBar1.setDataSet(dataSet);
  71.    }
  72.  
  73.    void frame_windowClosing(WindowEvent e) {
  74.      try {
  75.        //Save any changes
  76.        if (useTableDataSet) {
  77.          textDataFile1.save(dataSet);
  78.        } else {
  79.          dataSet.saveChanges(); //Save query data set
  80.        }
  81.      } catch (Exception x) {x.printStackTrace();}
  82.      System.exit(0);
  83.    }
  84.  
  85.   //Main method
  86.   static public void main(String[] args) {
  87.     TestSchema ts = new TestSchema();
  88.     System.out.println(ts.getCreateTableSQL());
  89.   }
  90.  
  91.   //Returns a SQL string that can be used to create this table
  92.   //in Local Interbase
  93.   String getCreateTableSQL() {
  94.     String sql;
  95.     sql="create table "+sqlTableName+" (FirstName VARCHAR (30) NOT NULL PRIMARY KEY,LastName VARCHAR (30),Address VARCHAR (40),City VARCHAR (25),State VARCHAR (2),Zip INTEGER,Salary FLOAT (2))";
  96.     return sql;
  97.   }
  98. }
  99.  
  100. // This panel can be reused in other applications
  101. // Note the use of a split panel to allow resizable panes
  102. // You will get a warning when you compile this until you extract it to a separate file
  103. public class TestPanel extends SplitPanel {
  104.   BevelPanel panel1=new BevelPanel();
  105.   BevelPanel panel2=new BevelPanel();
  106.   GridLayout gridLayout1 = new GridLayout();
  107.   DataSet dataSet;
  108.  
  109.   LabelControl label0 = new LabelControl();
  110.   FieldControl field0 = new FieldControl(); //FirstName
  111.   LabelControl label1 = new LabelControl();
  112.   FieldControl field1 = new FieldControl(); //LastName
  113.   LabelControl label2 = new LabelControl();
  114.   FieldControl field2 = new FieldControl(); //Address
  115.   LabelControl label3 = new LabelControl();
  116.   FieldControl field3 = new FieldControl(); //City
  117.   LabelControl label4 = new LabelControl();
  118.   FieldControl field4 = new FieldControl(); //State
  119.   LabelControl label5 = new LabelControl();
  120.   FieldControl field5 = new FieldControl(); //Zip
  121.   LabelControl label6 = new LabelControl();
  122.   FieldControl field6 = new FieldControl(); //Salary
  123.  
  124.   public TestPanel() {
  125.     try {
  126.       jbInit();
  127.     }
  128.     catch (Exception e) {
  129.       e.printStackTrace();
  130.     }
  131.   }
  132.  
  133.   public void setDataSet (StorageDataSet s) {
  134.     dataSet=s;
  135.     field0.setDataSet(dataSet);
  136.     field1.setDataSet(dataSet);
  137.     field2.setDataSet(dataSet);
  138.     field3.setDataSet(dataSet);
  139.     field4.setDataSet(dataSet);
  140.     field5.setDataSet(dataSet);
  141.     field6.setDataSet(dataSet);
  142.   }
  143.  
  144.   void jbInit() throws Exception{
  145.     gridLayout1.setRows(-1);
  146.     gridLayout1.setColumns(1);
  147.     panel1.setLayout(gridLayout1);
  148.     panel2.setLayout(gridLayout1);
  149.     label0.setText("FirstName");
  150.     field0.setColumnName("FirstName");
  151.     panel1.add(label0,null);
  152.     panel2.add(field0,null);
  153.     label1.setText("LastName");
  154.     field1.setColumnName("LastName");
  155.     panel1.add(label1,null);
  156.     panel2.add(field1,null);
  157.     label2.setText("Address");
  158.     field2.setColumnName("Address");
  159.     panel1.add(label2,null);
  160.     panel2.add(field2,null);
  161.     label3.setText("City");
  162.     field3.setColumnName("City");
  163.     panel1.add(label3,null);
  164.     panel2.add(field3,null);
  165.     label4.setText("State");
  166.     field4.setColumnName("State");
  167.     panel1.add(label4,null);
  168.     panel2.add(field4,null);
  169.     label5.setText("Zip");
  170.     field5.setColumnName("Zip");
  171.     panel1.add(label5,null);
  172.     panel2.add(field5,null);
  173.     label6.setText("Salary");
  174.     field6.setColumnName("Salary");
  175.     panel1.add(label6,null);
  176.     panel2.add(field6,null);
  177.     //Create the split panels
  178.     this.add(panel1,new PaneConstraints("panel1", "panel1", PaneConstraints.ROOT, 1.0f));
  179.     this.add(panel2,new PaneConstraints("panel2", "panel2", PaneConstraints.RIGHT, 0.70f));
  180.   }
  181. }
  182.  
  183. class TestSchema_frame_windowAdapter extends java.awt.event.WindowAdapter {
  184.   TestSchema adaptee;
  185.   TestSchema_frame_windowAdapter(TestSchema adaptee) {
  186.     this.adaptee = adaptee;
  187.   }
  188.  
  189.   public void windowClosing(WindowEvent e) {
  190.     adaptee.frame_windowClosing(e);
  191.   }
  192. }
  193.  
  194.