⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputdatadboperatorproperty.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

/*
 * $Author$ $Date$ 2005/1/7 $Revision$ 1.1
 */

package eti.bi.alphaminer.patch.standard.operation.property;
 

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;


import com.prudsys.pdm.Core.MiningException;
import com.prudsys.pdm.Input.Relational.MiningSqlSource;
import com.prudsys.pdm.Input.Relational.MiningSqlStream;
import com.prudsys.pdm.Input.Relational.TableInfo;
import com.svcon.odbcj.DataSource;
import com.svcon.odbcj.ODBCDriver;
import com.svcon.odbcj.ODBCj;

import eti.bi.alphaminer.core.handler.ICaseHandler;
import eti.bi.alphaminer.operation.operator.INodeInfo;
import eti.bi.alphaminer.operation.property.OperatorProperty;
import eti.bi.alphaminer.patch.standard.operation.operator.InputDataDBOperator;
import eti.bi.alphaminer.vo.BIData;
import eti.bi.exception.SysException;
import eti.bi.util.ValueValidator;
import eti.bi.common.Locale.Resource;

public class InputDataDBOperatorProperty extends OperatorProperty implements
		ChangeListener {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private final String ODBC_DRVNAME_MYSQL = "MySQL ODBC"; // for driver

	private final String ODBC_DRVNAME_ACCESS = "(*.mdb)"; // for driver

	private final String SOURCE_TYPE_ParameterValue = "Source Type";

	private final String ODBC_ParameterValue = "ODBC";

	private final String DB2_ParameterValue = "DB2";

	private final String MYSQL_ParameterValue = "MYSQL";

	private final String ORACLE_ParameterValue = "ORACLE";

	private final String MSSQL_ParameterValue = "MSSQL";

	private final String POSTGRE_ParameterValue = "POSTGRE";

	private final String HOST_ParameterValue = "HOST";

	private final String PORT_ParameterValue = "PORT";

	private final String DSN_ParameterValue = "DSN";

	private final String DBName_ParameterValue = "DB Name";

	private final String url_ParameterValue = "DB url";

	private final String DBUser_ParameterValue = "DB User";

	private final String pwd_ParameterValue = "DB Password";

	private final String dbDriver_ParameterValue = "DB Driver";

	private final String table_ParameterValue = "DB Table";

	private final String query_ParameterValue = "DB Query";

	private final String option_ParameterValue = "OPTION";

	// JComponents for arff source
	/*
	 * private String m_Filename; private JTextField m_FilePath; private JButton
	 * m_ButtonSelect = new JButton(); private JRadioButton m_RadioFile = new
	 * JRadioButton(); // JComponents for database source private JTextField
	 * m_DBDriver; private JTextField m_DBName; private JTextField m_DBUser;
	 * private JPasswordField m_DBPassword; private JTextField m_DBTableName;
	 * private JRadioButton m_RadioDB = new JRadioButton();
	 * 
	 * private ButtonGroup m_ButtonGroup = new ButtonGroup(); private JButton
	 * m_ButtonReset = new JButton(); private JButton m_ButtonSave = new
	 * JButton(); private JButton m_ButtonCancel = new JButton();
	 */

	private JButton m_ButtonApply = new JButton();

	private JButton m_ButtonReset = new JButton();

	private JButton m_ButtonClose = new JButton();

	private JButton m_connectButton = new JButton(Resource.srcStr("m_connectButton"));

	private JComboBox m_DBDriver;

	private JLabel m_hostLabel = new JLabel(Resource.srcStr("m_hostLabel"));

	private JLabel m_portLabel = new JLabel(Resource.srcStr("m_portLabel"));

	private JLabel m_DSNLabel = new JLabel(Resource.srcStr("m_DSNLabel"));

	private JComboBox m_DSNComboBox = new JComboBox();

	private JTextField m_host = new JTextField(30);

	private JTextField m_Port = new JTextField(5);

	private JTextField m_DBUser = new JTextField(30);

	private JPasswordField m_DBPassword = new JPasswordField(30);

	private JComboBox m_selectedDBComboBox = new JComboBox();

	private JComboBox m_SelectedTableComboBox = new JComboBox();

	private JEditorPane editorPane = new JEditorPane();

	private ButtonGroup m_ButtonGroup = new ButtonGroup();

	private JRadioButton m_RadioTable = new JRadioButton(Resource.srcStr("m_RadioTable"));

	private JRadioButton m_RadioSQL = new JRadioButton(Resource.srcStr("m_RadioSQL"));

	private TitledBorder m_border1;
	private JPanel dbSeverPanel;
	private JPanel m_dbPanel;
	private JLabel driverLabel;
	private JLabel UsernameLabel;
	private JLabel PasswordLabel;
	private JLabel database;
	private JLabel source;
	
	private final Dimension m_defaultButtonSize = new Dimension(65, 25);

	//	private final Dimension m_defaultLabelSize = new Dimension(100,20);
	/*
	 * private final String[] driverStrings = { "Please select...", "JDBC-ODBC
	 * Bridge", "DB2", MYSQL_ParameterValue, "Oracle", "MsSQL", "Postgre" };
	 * remarked for phrase one
	 */
	private final String[] driverStrings = { Resource.srcStr("SelectItem"),
			"JDBC-ODBC Bridge" };

	private JPanel m_cards_1 = new JPanel(new CardLayout());

	private JPanel m_cards_2 = new JPanel(new CardLayout());

	private JPanel m_cards_3 = new JPanel(new CardLayout());

	private JPanel m_cards_4 = new JPanel(new CardLayout());

	private final int JDBC_ODBC_Driver = 1;

	private final int DB2_Driver = 2;

	private final int MYSQL_Driver = 3;

	private final int ORACLE_Driver = 4;

	private final int MSSQL_Driver = 5;

	private final int POSTGRE_Driver = 6;

	public InputDataDBOperatorProperty(String a_CaseID, String a_NodeID, String a_Name,  INodeInfo a_NodeInfo, ICaseHandler a_CaseHandler) throws SysException {
		super(a_CaseID, a_NodeID, a_Name,  a_NodeInfo, a_CaseHandler);
		
		try{
			createInputDataOperatorProperty();
		}
		catch(Exception e) {
			e.printStackTrace();
			throw new SysException(e);
		}
		String ls_name = "";
		if (m_Node.getName() != null) {
			ls_name = m_Node.getName() + "_" + m_Node.getNodeID();
			this.setTitle(Resource.srcStr("InputDatabaseTitle1") + ls_name + "]");
		} else {
			ls_name = "";
			this.setTitle(Resource.srcStr("InputDatabaseTitle"));
		}

	}

	public void stateChanged(ChangeEvent e) {
		setEnabledTable(m_RadioTable.isSelected());
		setEnabledSQL(m_RadioSQL.isSelected());
	}

	private void createInputDataOperatorProperty() throws Exception{

		JPanel propertyDBPanel = new JPanel(new BorderLayout(10, 10));
		JPanel buttonPanel = new JPanel();

		dbSeverPanel = new JPanel(new BorderLayout(10, 10));

		Border margin = new EmptyBorder(5, 5, 10, 5);

		m_border1 = new TitledBorder(new EtchedBorder(),
				Resource.srcStr("m_border1"));
		dbSeverPanel.setBorder(new CompoundBorder(m_border1, margin));
		//dbSeverPanel.setBorder(BorderFactory.createTitledBorder("Database
		// Server"));

		JPanel dbSeverLabelPanel = new JPanel(new GridLayout(4, 1, 2, 5));
		dbSeverLabelPanel.setBorder(BorderFactory
				.createEmptyBorder(0, 10, 3, 0));

		JPanel dbSeverFieldPanel1 = new JPanel(new GridLayout(4, 1, 2, 5));
		dbSeverFieldPanel1.setBorder(BorderFactory.createEmptyBorder(0, 10, 3,
				0));

		JPanel dbSeverFieldPanel2 = new JPanel(new GridLayout(4, 1, 2, 5));
		dbSeverFieldPanel2.setBorder(BorderFactory.createEmptyBorder(0, 10, 3,
				10));

		dbSeverPanel.add(dbSeverLabelPanel, BorderLayout.WEST);
		dbSeverPanel.add(dbSeverFieldPanel1, BorderLayout.CENTER);
		dbSeverPanel.add(dbSeverFieldPanel2, BorderLayout.EAST);

		// Drawing DB Sever Panel
		driverLabel = new JLabel(Resource.srcStr("driver"));
		dbSeverLabelPanel.add(driverLabel);

		
		m_DBDriver = new JComboBox(driverStrings);
		m_DBDriver.addActionListener(this);

		dbSeverFieldPanel1.add(m_DBDriver);
		dbSeverFieldPanel2.add(new JLabel());

		m_cards_1.add(m_hostLabel, "HOST_LABEL");
		m_cards_1.add(m_DSNLabel, "DSN_LABEL");
		CardLayout cl = (CardLayout) (m_cards_1.getLayout());
		cl.show(m_cards_1, "HOST_LABEL");

		dbSeverLabelPanel.add(m_cards_1);

		m_cards_2.add(m_host, "HOST_INPUT");
		m_cards_2.add(m_DSNComboBox, "DSN_INPUT");
		CardLayout c2 = (CardLayout) (m_cards_2.getLayout());
		c2.show(m_cards_2, "HOST_INPUT");
		dbSeverFieldPanel1.add(m_cards_2);

		JPanel m_PortPanel = new JPanel(new BorderLayout(10, 10));

		m_cards_3.add(m_portLabel, "PORT_LABEL");
		m_cards_3.add(new JLabel(), "NULL_LABEL");
		CardLayout c3 = (CardLayout) (m_cards_3.getLayout());
		c3.show(m_cards_3, "PORT_LABEL");
		m_PortPanel.add(m_cards_3, BorderLayout.WEST);

		m_cards_4.setBorder(new EmptyBorder(0, 0, 0, 25));
		//m_cards_4.setMaximumSize(new Dimension(10,25));
		m_cards_4.add(m_Port, "PORT_INPUT");
		m_cards_4.add(new JLabel(), "NULL_INPUT");
		CardLayout c4 = (CardLayout) (m_cards_4.getLayout());
		c4.show(m_cards_4, "PORT_INPUT");
		m_PortPanel.add(m_cards_4, BorderLayout.CENTER);
		dbSeverFieldPanel2.add(m_PortPanel);

		UsernameLabel = new JLabel(Resource.srcStr("m_LabelUsername"));
		dbSeverLabelPanel.add(UsernameLabel);
		dbSeverFieldPanel1.add(m_DBUser);
		dbSeverFieldPanel2.add(new JLabel(" "));

		PasswordLabel = new JLabel(Resource.srcStr("m_LabelPassword"));
		dbSeverLabelPanel.add(PasswordLabel);
		dbSeverFieldPanel1.add(m_DBPassword);

		dbSeverFieldPanel2.add(m_connectButton);
		m_connectButton.addActionListener(this);

		//Drawing Database panel
		m_dbPanel = new JPanel(new BorderLayout(10, 10));

		m_dbPanel.setBorder(new CompoundBorder(new TitledBorder(
				new EtchedBorder(), Resource.srcStr("database")), new EmptyBorder(5, 5, 10, 5)));
		//		Border margin = new EmptyBorder(5,10,10,10);
		//
		//		TitledBorder m_border1 = new TitledBorder(new EtchedBorder(),
		// "Database");
		//dbSeverPanel.setBorder(new CompoundBorder(m_border1 , margin));

		//m_dbPanel.setBorder(BorderFactory.createTitledBorder("Database"));
		JPanel dbLabelPanel = new JPanel(new GridLayout(4, 1, 2, 5));
		dbLabelPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 3, 7));
		JPanel dbFieldPanel = new JPanel(new BorderLayout(10, 10));
		dbFieldPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 3, 10));

		m_dbPanel.add(dbLabelPanel, BorderLayout.WEST);
		m_dbPanel.add(dbFieldPanel, BorderLayout.CENTER);

		database = new JLabel(Resource.srcStr("database"));
		dbLabelPanel.add(database);
		source = new JLabel(Resource.srcStr("source"));
		dbLabelPanel.add(source);
		dbLabelPanel.add(new JLabel(""));

		JPanel m_DBPanelTemp1 = new JPanel(new BorderLayout());
		m_DBPanelTemp1.add(m_RadioTable, BorderLayout.WEST);
		m_DBPanelTemp1.add(m_SelectedTableComboBox, BorderLayout.CENTER);

		JPanel m_DBPanelTemp2 = new JPanel(new BorderLayout());
		m_DBPanelTemp2.add(m_RadioSQL, BorderLayout.WEST);

		m_ButtonGroup.add(m_RadioTable);
		m_ButtonGroup.add(m_RadioSQL);
		m_RadioTable.addChangeListener(this);
		m_RadioTable.setSelected(true);
		m_RadioSQL.addChangeListener(this);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -