SqlWizard.java
上传用户:xiekaiwei
上传日期:2015-07-04
资源大小:620k
文件大小:5k
源码类别:

Telnet客户端

开发平台:

Java

  1. /**
  2.  * Title: SqlWizard.java
  3.  * Copyright:   Copyright (c) 2001
  4.  * Company:
  5.  * @author  Kenneth J. Pouncey
  6.  * @version 0.5
  7.  *
  8.  * Description:
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License as published by
  12.  * the Free Software Foundation; either version 2, or (at your option)
  13.  * any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful,
  16.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  * GNU General Public License for more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License
  21.  * along with this software; see the file COPYING.  If not, write to
  22.  * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  23.  * Boston, MA 02111-1307 USA
  24.  *
  25.  */
  26. package org.tn5250j.sql;
  27. import java.awt.*;
  28. import java.awt.event.*;
  29. import javax.swing.*;
  30. import com.ibm.as400.vaccess.*;
  31. import com.ibm.as400.access.*;
  32. import java.sql.*;
  33. import org.tn5250j.tools.LangTool;
  34. import org.tn5250j.tools.GUIGraphicsUtils;
  35. import org.tn5250j.tools.system.OperatingSystem;
  36. /**
  37.  *
  38.  */
  39. public class SqlWizard extends JFrame {
  40.    private SQLConnection connection;
  41.    private AS400 system;
  42.    private SQLQueryBuilderPane queryBuilder;
  43.    private SQLResultSetTablePane tablePane;
  44.    private String name;
  45.    private String password;
  46.    private String host;
  47.    private String queryText;
  48.    private JTextArea queryTextArea;
  49.    public SqlWizard(String host, String name, String password ) {
  50.       this.host = host;
  51.       this.name = name;
  52.       this.password = password;
  53.       enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  54.       try {
  55.          jbInit();
  56.       }
  57.       catch(Exception e) {
  58.          e.printStackTrace();
  59.       }
  60.    }
  61.    private void jbInit() throws Exception {
  62.       try {
  63.          setIconImage(GUIGraphicsUtils.getApplicationIcon().getImage());
  64.          // set title
  65.          setTitle(LangTool.getString("xtfr.wizardTitle"));
  66.          // Load the JDBC driver.
  67.          Driver driver2 = (Driver)Class.forName("com.ibm.as400.access.AS400JDBCDriver").newInstance();
  68.          DriverManager.registerDriver(driver2);
  69.          // Get a connection to the database.  Since we do not
  70.          // provide a user id or password, a prompt will appear.
  71.          connection = new SQLConnection("jdbc:as400://" + host, name, password);
  72.          // Create an SQLQueryBuilderPane
  73.          // object. Assume that "connection"
  74.          // is an SQLConnection object that is
  75.          // created and initialized elsewhere.
  76.          queryBuilder = new SQLQueryBuilderPane(connection);
  77.          queryBuilder.setTableSchemas(new String[] {"*USRLIBL"});
  78.          // Load the data needed for the query
  79.          // builder.
  80.          queryBuilder.load();
  81.          JButton done = new JButton(LangTool.getString("xtfr.tableDone"));
  82.          done.addActionListener(new java.awt.event.ActionListener() {
  83.             public void actionPerformed(ActionEvent e) {
  84.                fillQueryTextArea();
  85.             }
  86.          });
  87.          JPanel panel = new JPanel();
  88.          panel.add(done);
  89.          getContentPane().add(queryBuilder, BorderLayout.CENTER);
  90.          getContentPane().add(panel, BorderLayout.SOUTH);
  91.          Dimension max = new Dimension(OperatingSystem.getScreenBounds().width,
  92.                                        OperatingSystem.getScreenBounds().height);
  93.          pack();
  94.          if (getSize().width > max.width)
  95.             setSize(max.width,getSize().height);
  96.          if (getSize().height > max.height)
  97.             setSize(getSize().width,max.height);
  98.          //Center the window
  99.          Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  100.          Dimension frameSize = getSize();
  101.          if (frameSize.height > screenSize.height)
  102.             frameSize.height = screenSize.height;
  103.          if (frameSize.width > screenSize.width)
  104.             frameSize.width = screenSize.width;
  105.          setLocation((screenSize.width - frameSize.width) / 2,
  106.                         (screenSize.height - frameSize.height) / 2);
  107.          setVisible(true);
  108.       }
  109.       catch (ClassNotFoundException cnfe) {
  110.          JOptionPane.showMessageDialog(null,"Error loading AS400 JDBC Driver",
  111.                                              "Error",
  112.                                              JOptionPane.ERROR_MESSAGE);
  113.       }
  114.    }
  115.    private void fillQueryTextArea() {
  116.       queryTextArea.append(queryBuilder.getQuery());
  117.       this.setVisible(false);
  118.       this.dispose();
  119.    }
  120.    public void setQueryTextArea(JTextArea qta) {
  121.       queryTextArea = qta;
  122.    }
  123. }