📄 sampleoperatorproperty.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.
*/
/*
* Created on Sep 2, 2004
*
* $Author$
* $Date$
* $Revision$
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package eti.bi.alphaminer.operation.property;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import com.prudsys.pdm.Transform.Filter.MiningFileFilter;
import eti.bi.alphaminer.core.handler.ICaseHandler;
import eti.bi.alphaminer.operation.operator.INodeInfo;
import eti.bi.exception.SysException;
/**
* @author kjor
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class SampleOperatorProperty extends OperatorProperty implements
ChangeListener {
/**
*
*/
private static final long serialVersionUID = 1L;
// 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();
public SampleOperatorProperty(String a_CaseID, String a_NodeID, String a_Name, INodeInfo a_OperatorInfo, ICaseHandler a_CaseHandler) throws SysException {
super(a_CaseID, a_NodeID, a_Name, a_OperatorInfo, a_CaseHandler);
/* Invoke the UI component creation method */
createInputDataOperatorProperty();
}
public void stateChanged(ChangeEvent e) {
setEnabledFile(m_RadioFile.isSelected());
setEnabledDB(m_RadioDB.isSelected());
}
/*
* To construct, initialize and arrange the UI components Invoke
* getContent() at the end to retrieve the node parameters.
*/
private void createInputDataOperatorProperty() {
JPanel propertyFilePanel = new JPanel(new BorderLayout());
JPanel propertyDBPanel = new JPanel(new BorderLayout());
JPanel buttonPanel = new JPanel();
m_ButtonGroup.add(m_RadioFile);
m_ButtonGroup.add(m_RadioDB);
m_RadioFile.addChangeListener(this);
m_RadioDB.addChangeListener(this);
JPanel tempPanel = null;
JPanel filePanel = new JPanel(new BorderLayout());
filePanel.setBorder(BorderFactory.createTitledBorder("Arff file"));
JLabel fileLabel = new JLabel("File Location:");
fileLabel.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 8));
filePanel.add(fileLabel, BorderLayout.WEST);
m_FilePath = new JTextField(30);
filePanel.add(m_FilePath, BorderLayout.CENTER);
tempPanel = new JPanel();
tempPanel.add(m_ButtonSelect);
filePanel.add(tempPanel, BorderLayout.SOUTH);
m_ButtonSelect.setText("Browse");
m_ButtonSelect.setSelected(true);
tempPanel = new JPanel();
tempPanel.add(m_RadioFile);
m_RadioFile.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0));
propertyFilePanel.add(tempPanel, BorderLayout.WEST);
propertyFilePanel.add(filePanel, BorderLayout.CENTER);
JPanel dbPanel = new JPanel(new BorderLayout());
dbPanel.setBorder(BorderFactory.createTitledBorder("Database"));
JPanel dbLabelPanel = new JPanel(new GridLayout(5, 1));
dbLabelPanel.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 8));
JPanel dbFieldPanel = new JPanel(new GridLayout(5, 1));
dbPanel.add(dbLabelPanel, BorderLayout.WEST);
dbPanel.add(dbFieldPanel, BorderLayout.CENTER);
dbLabelPanel.add(new JLabel("Driver:"));
m_DBDriver = new JTextField(30);
m_DBDriver.setText("sun.jdbc.odbc.JdbcOdbcDriver");
dbFieldPanel.add(m_DBDriver);
dbLabelPanel.add(new JLabel("Database Name:"));
m_DBName = new JTextField(30);
m_DBName.setText("jdbc:odbc:[db_name]");
dbFieldPanel.add(m_DBName);
dbLabelPanel.add(new JLabel("User:"));
m_DBUser = new JTextField(30);
dbFieldPanel.add(m_DBUser);
dbLabelPanel.add(new JLabel("Password:"));
m_DBPassword = new JPasswordField(30);
dbFieldPanel.add(m_DBPassword);
dbLabelPanel.add(new JLabel("Table Name:"));
m_DBTableName = new JTextField(30);
dbFieldPanel.add(m_DBTableName);
tempPanel = new JPanel();
tempPanel.add(m_RadioDB);
m_RadioDB.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0));
propertyDBPanel.add(tempPanel, BorderLayout.WEST);
propertyDBPanel.add(dbPanel, BorderLayout.CENTER);
m_ButtonReset.setText("Reset");
m_ButtonSave.setText("Apply");
m_ButtonCancel.setSelected(false);
m_ButtonCancel.setText("Close");
buttonPanel.add(m_ButtonSave);
buttonPanel.add(m_ButtonReset);
buttonPanel.add(m_ButtonCancel);
m_ButtonSelect.addActionListener(this);
m_ButtonReset.addActionListener(this);
m_ButtonSave.addActionListener(this);
m_ButtonCancel.addActionListener(this);
this.getContentPane().add(propertyFilePanel, BorderLayout.NORTH);
this.getContentPane().add(propertyDBPanel, BorderLayout.CENTER);
this.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
this.setSize(350, 280);
getContent();
}
public void openFileChooser() {
File directory = new File(System.getProperty("user.dir"));
if (m_Filename != null) {
File f = new File(m_Filename);
if (f.exists())
directory = f;
}
JFileChooser chooser = new JFileChooser(directory);
MiningFileFilter filter = new MiningFileFilter();
filter.addExtension("arff");
filter.addExtension("csv");
filter.addExtension("txt");
filter.setDescription("Mining input stream files");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
setFilePath(chooser.getSelectedFile().getPath());
m_ButtonSave.setSelected(true);
}
}
/**
* @see java.awt.event.ActionListener#actionPerformed(ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
if (e.getSource() == m_ButtonSelect)
openFileChooser();
else if (e.getSource() == m_ButtonSave) {
if (setContent()) {
m_ParameterChanged = true;
//m_ParentPanel.getCaseWindow().setModified(true);
setPropertiesModified();
}
} else if (e.getSource() == m_ButtonReset) {
getContent();
} else if (e.getSource() == m_ButtonCancel)
close();
}
/**
* To update the node parameters - Update node parameters to the node object -
* Update the corresponding Operator object - Invoke
* "m_ParentPanel.getCaseWindow().setModified(true)" at the end to indicate
* the local copy was modified
*
*/
public boolean setContent() {
//<< added by Joyce 2005/03/17 to clear result
clearOperatorTempResult();
setPropertiesModified();
//>>
return true;
}
/* To update the node parameters from the node object */
public void getContent() {
String sourceType = (String) m_Node.getParameterValue("Source Type");
if (sourceType == null) {
setEnabledFile(true);
setEnabledDB(false);
} else if (sourceType.equals("ARFF")) {
setFilePath((String)m_Node.getParameterValue("Source location"));
setEnabledFile(true);
setEnabledDB(false);
} else if (sourceType.equals("ODBC")) {
String name = (String) m_Node.getParameterValue("DB Name");
String user = (String) m_Node.getParameterValue("DB User");
String password = (String) m_Node.getParameterValue("DB Password");
String driver = (String) m_Node.getParameterValue("DB Driver");
String table = (String) m_Node.getParameterValue("DB Table");
setDBSource(name, user, password, driver, table);
setEnabledFile(false);
setEnabledDB(true);
}
}
private void setEnabledFile(boolean flag) {
m_RadioFile.setSelected(flag);
m_FilePath.setEnabled(flag);
m_ButtonSelect.setEnabled(flag);
}
private void setEnabledDB(boolean flag) {
m_RadioDB.setSelected(flag);
m_DBDriver.setEnabled(flag);
m_DBName.setEnabled(flag);
m_DBUser.setEnabled(flag);
m_DBPassword.setEnabled(flag);
m_DBTableName.setEnabled(flag);
}
public void setFilePath(String a_FilePath) {
m_Filename = a_FilePath;
m_FilePath.setText(m_Filename);
m_FilePath.setCaretPosition(0);
m_ButtonSelect.setSelected(true);
}
public void setDBSource(String name, String user, String password,
String driver, String table) {
m_DBName.setText(name);
m_DBUser.setText(user);
m_DBPassword.setText(password);
m_DBDriver.setText(driver);
m_DBTableName.setText(table);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -