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

📄 sampleoperatorproperty.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 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 + -