📄 inputdatadboperatorproperty.java
字号:
/*
* 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 + -