home *** CD-ROM | disk | FTP | other *** search
/ Australian PC Authority 1999 May / may1999.iso / May / JBUILDER / JSAMPLES.Z / TableExample2.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-30  |  6.1 KB  |  155 lines

  1. import com.sun.java.swing.BoxLayout;
  2. import com.sun.java.swing.Icon;
  3. import com.sun.java.swing.JButton;
  4. import com.sun.java.swing.JComponent;
  5. import com.sun.java.swing.JFrame;
  6. import com.sun.java.swing.JLabel;
  7. import com.sun.java.swing.JOptionPane;
  8. import com.sun.java.swing.JPanel;
  9. import com.sun.java.swing.JScrollPane;
  10. import com.sun.java.swing.JTable;
  11. import com.sun.java.swing.JTextArea;
  12. import com.sun.java.swing.JTextField;
  13. import com.sun.java.swing.border.BevelBorder;
  14. import java.awt.Color;
  15. import java.awt.Component;
  16. import java.awt.Container;
  17. import java.awt.Dimension;
  18. import java.awt.GridLayout;
  19. import java.awt.LayoutManager;
  20. import java.awt.Rectangle;
  21.  
  22. public class TableExample2 implements LayoutManager {
  23.    static String[] ConnectOptionNames = new String[]{"Connect"};
  24.    static String ConnectTitle = "Connection Information";
  25.    Dimension origin = new Dimension(0, 0);
  26.    JButton fetchButton;
  27.    JButton showConnectionInfoButton;
  28.    JPanel connectionPanel;
  29.    JFrame frame;
  30.    JLabel userNameLabel;
  31.    JTextField userNameField;
  32.    JLabel passwordLabel;
  33.    JTextField passwordField;
  34.    JTextArea queryTextArea;
  35.    JComponent queryAggregate;
  36.    JLabel serverLabel;
  37.    JTextField serverField;
  38.    JLabel driverLabel;
  39.    JTextField driverField;
  40.    JPanel mainPanel = new JPanel();
  41.    TableSorter sorter;
  42.    JDBCAdapter dataBase;
  43.    JScrollPane tableAggregate;
  44.  
  45.    void activateConnectionDialog() {
  46.       if (JOptionPane.showOptionDialog(this.tableAggregate, this.connectionPanel, ConnectTitle, -1, 1, (Icon)null, ConnectOptionNames, ConnectOptionNames[0]) == 0) {
  47.          this.connect();
  48.          this.frame.setVisible(true);
  49.       } else {
  50.          if (!this.frame.isVisible()) {
  51.             System.exit(0);
  52.          }
  53.  
  54.       }
  55.    }
  56.  
  57.    public void createConnectionDialog() {
  58.       this.userNameLabel = new JLabel("User name: ", 4);
  59.       this.userNameField = new JTextField("guest");
  60.       this.passwordLabel = new JLabel("Password: ", 4);
  61.       this.passwordField = new JTextField("trustworthy");
  62.       this.serverLabel = new JLabel("Database URL: ", 4);
  63.       this.serverField = new JTextField("jdbc:sybase://dbtest:1455/pubs2");
  64.       this.driverLabel = new JLabel("Driver: ", 4);
  65.       this.driverField = new JTextField("connect.sybase.SybaseDriver");
  66.       this.connectionPanel = new JPanel(false);
  67.       this.connectionPanel.setLayout(new BoxLayout(this.connectionPanel, 0));
  68.       JPanel var1 = new JPanel(false);
  69.       ((Container)var1).setLayout(new GridLayout(0, 1));
  70.       ((Container)var1).add(this.userNameLabel);
  71.       ((Container)var1).add(this.passwordLabel);
  72.       ((Container)var1).add(this.serverLabel);
  73.       ((Container)var1).add(this.driverLabel);
  74.       JPanel var2 = new JPanel(false);
  75.       ((Container)var2).setLayout(new GridLayout(0, 1));
  76.       ((Container)var2).add(this.userNameField);
  77.       ((Container)var2).add(this.passwordField);
  78.       ((Container)var2).add(this.serverField);
  79.       ((Container)var2).add(this.driverField);
  80.       this.connectionPanel.add(var1);
  81.       this.connectionPanel.add(var2);
  82.    }
  83.  
  84.    public TableExample2() {
  85.       this.createConnectionDialog();
  86.       this.showConnectionInfoButton = new JButton("Configuration");
  87.       this.fetchButton = new JButton("Fetch");
  88.       this.fetchButton.addActionListener(new TableExample2$QueryChangeListener(this));
  89.       this.showConnectionInfoButton.addActionListener(new TableExample2$ShowConnectionInfoListener(this));
  90.       this.queryTextArea = new JTextArea("SELECT * FROM titles", 25, 25);
  91.       this.queryAggregate = new JScrollPane(this.queryTextArea);
  92.       this.queryAggregate.setBorder(new BevelBorder(1));
  93.       this.tableAggregate = this.createTable();
  94.       this.tableAggregate.setBorder(new BevelBorder(1));
  95.       this.mainPanel.add(this.fetchButton);
  96.       this.mainPanel.add(this.showConnectionInfoButton);
  97.       this.mainPanel.add(this.queryAggregate);
  98.       this.mainPanel.add(this.tableAggregate);
  99.       this.mainPanel.setLayout(this);
  100.       this.frame = new JFrame("TableExample2");
  101.       this.frame.addWindowListener(new TableExample2$1());
  102.       this.frame.setBackground(Color.lightGray);
  103.       this.frame.getContentPane().add(this.mainPanel);
  104.       this.frame.pack();
  105.       this.frame.setVisible(false);
  106.       this.frame.setBounds(200, 200, 640, 480);
  107.       this.activateConnectionDialog();
  108.    }
  109.  
  110.    public void connect() {
  111.       this.dataBase = new JDBCAdapter(this.serverField.getText(), this.driverField.getText(), this.userNameField.getText(), this.passwordField.getText());
  112.       this.sorter.setModel(this.dataBase);
  113.    }
  114.  
  115.    public void fetch() {
  116.       this.dataBase.executeQuery(this.queryTextArea.getText());
  117.    }
  118.  
  119.    public JScrollPane createTable() {
  120.       this.sorter = new TableSorter();
  121.       JTable var1 = new JTable(this.sorter);
  122.       this.sorter.addMouseListenerToHeaderInTable(var1);
  123.       JScrollPane var2 = JTable.createScrollPaneForTable(var1);
  124.       return var2;
  125.    }
  126.  
  127.    public static void main(String[] var0) {
  128.       new TableExample2();
  129.    }
  130.  
  131.    public Dimension preferredLayoutSize(Container var1) {
  132.       return this.origin;
  133.    }
  134.  
  135.    public Dimension minimumLayoutSize(Container var1) {
  136.       return this.origin;
  137.    }
  138.  
  139.    public void addLayoutComponent(String var1, Component var2) {
  140.    }
  141.  
  142.    public void removeLayoutComponent(Component var1) {
  143.    }
  144.  
  145.    public void layoutContainer(Container var1) {
  146.       Rectangle var2 = ((Component)var1).getBounds();
  147.       byte var3 = 90;
  148.       byte var4 = 4;
  149.       this.showConnectionInfoButton.setBounds(var2.width - 2 * var4 - 120, var4, 120, 25);
  150.       this.fetchButton.setBounds(var2.width - 2 * var4 - 120, 60, 120, 25);
  151.       this.queryAggregate.setBounds(var4, var4, var2.width - 2 * var4 - 150, 80);
  152.       this.tableAggregate.setBounds(new Rectangle(var4, var4 + var3, var2.width - 2 * var4, var2.height - 2 * var4 - var3));
  153.    }
  154. }
  155.