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

📄 operatorproperty.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 *    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.
 */

package eti.bi.alphaminer.operation.property;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;



import com.prudsys.pdm.Core.MiningException;

import eti.bi.alphaminer.core.handler.ICaseHandler;
import eti.bi.alphaminer.core.help.AlphaminerHelpHandler;
import eti.bi.alphaminer.core.observer.ObserveMessage;
import eti.bi.alphaminer.core.observer.Observer;
import eti.bi.alphaminer.operation.operator.INodeInfo;
import eti.bi.alphaminer.operation.operator.Operator;
import eti.bi.alphaminer.ui.IMessageDialog;
import eti.bi.alphaminer.ui.ISystemMessageHandler;
import eti.bi.alphaminer.vo.IOperatorNode;
import eti.bi.exception.AppException;
import eti.bi.exception.BaseException;
import eti.bi.exception.SysException;
import eti.bi.util.ResourceLoader;

import eti.bi.common.ImageLocation;
import eti.bi.common.Locale.Resource;
/**
 * OperatorProperty is an internal window belongs to a CaseWindow. It is a frame
 * showing properties of an Operator.
 */
public class OperatorProperty extends JInternalFrame implements ActionListener,
		InternalFrameListener, Observer{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	protected String m_CaseID;

	protected String m_NodeID;

	protected int m_NodeType;
	
	protected Operator m_Operator;
	protected IOperatorNode m_Node;
	
	protected Vector m_ParentOperators;

	// boolean flag to indicate if the parameters get changed
	protected boolean m_ParameterChanged = false;

	private String[] m_TableHeader = { "Parameters", "Values" };

	private Object[][] m_TableContent;

	private JScrollPane jScrollPane1;

	private JTable jTable1;

	private JPanel jPanel1 = new JPanel();

	private JButton m_ButtonReset = new JButton();

	private JButton m_ButtonSave = new JButton();

	private JButton m_ButtonCancel = new JButton();

	//<<09/03/2005 Mark Li: Modify panel size
	private static final int ColumnSize = 90;

	protected Vector m_Observers = new Vector();
	//09/03/2005 Mark Li: Modify panel size>>

	protected boolean m_RequireParentExecute = false; 
	
	protected ICaseHandler m_CaseHandler;
	
	protected INodeInfo m_NodeInfo;
	
	protected ISystemMessageHandler m_SystemMessageHandler;
	
	protected IMessageDialog m_MessageDialog;
	
	
	//TODO
	/***************************************************************************
	 * To be removed Depricated, replace by OperatorProperty operation stated
	 * below
	 * @throws SysException
	 */
	public OperatorProperty(String a_CaseID, String a_NodeID, String a_Name, INodeInfo a_OperatorInfo, ICaseHandler a_CaseHandler) throws SysException {
		//super(a_Name + " properties", false);
		this.setResizable(false);
		
		m_CaseID = a_CaseID;
		m_NodeID = a_NodeID;
		m_CaseHandler = a_CaseHandler;
		m_NodeInfo = a_OperatorInfo;
		m_SystemMessageHandler = m_CaseHandler.getSystemMessageHandler(m_CaseID);
		m_MessageDialog = m_CaseHandler.getMessageDialog();
		m_RequireParentExecute = m_NodeInfo.isRequireParentExecute();
		try {
			m_Operator = m_CaseHandler.getOperator(m_CaseID, m_NodeID);
			m_ParentOperators = new Vector();
			m_ParentOperators = m_CaseHandler.getParentOperators(m_CaseID,m_NodeID);
			m_Node = m_CaseHandler.getOperatorNode(m_CaseID, m_NodeID);
		} catch (SysException e) {
			// do nothing
		}
//		setTitle(Resource.srcStr(m_OperatorInfo.getDisplayName(),m_OperatorInfo.getDisplayName())+" [" + a_NodeID + "]");

		JComponent c = (JComponent) this.getContentPane();
		c.setBorder(new EmptyBorder(7, 10, 7, 10));
		m_ParameterChanged = false;
		
		if (m_RequireParentExecute)
		{
			triggerParentNodesExecution();
		}		
//		<<19/07/05: Mark Li: Add for JHelp
		try
		{
            // <<17/08/2005: Kenneth Lai: Modified for helpHandler singleton
            AlphaminerHelpHandler HelpHandler = AlphaminerHelpHandler.getInstance();
//          new AlphaminerHelpHandler();
            // 17/08/2005: Kenneth Lai: Modified for helpHandler singleton>>
            HelpHandler.setHelpKey(this.getContentPane(),a_OperatorInfo.getDefinitionID()+"_Property");
		}catch (Exception e)
		{
		    m_SystemMessageHandler.appendMessage("Cannot initiate on-help files.");
		}
  	//19/07/05: Mark Li: Add for JHelp>>
		
		//set icon
		this.setFrameIcon(ResourceLoader.getImageIcon(ImageLocation.APP_ICON));
	}

	/**
	 * Closes the OperatorProperty internal window.
	 */
	public void close() {
		if (m_ParameterChanged) 
		{
			sendNotifyAll(ObserveMessage.MSG_CLOSE_CHANGED, m_Operator);
		}else
		{
			sendNotifyAll(ObserveMessage.MSG_CLOSE_UNCHANGED, m_Operator);
		}
		dispose();
	}

	private void sendNotifyAll(int aMessage)
	{
		for (int i=0;i<m_Observers.size();i++)
		{
			((Observer)m_Observers.elementAt(i)).sendNotify(aMessage);
		}
	}
	
	private void sendNotifyAll(int aMessage, Object aObject)
	{
		for (int i=0;i<m_Observers.size();i++)
		{
			((Observer)m_Observers.elementAt(i)).sendNotify(aMessage, aObject);
		}
	}

	/**
	 * Sets OperatorProperty to edit/non-edit layout.
	 * 
	 * @param a_IsEdit
	 *            true to set it to edit layout; false to set it to non-edit
	 *            layout.
	 */
	public void setEditLayout(boolean a_IsEdit) {
		m_ButtonSave.setVisible(a_IsEdit);
	}

	/**
	 * @see java.awt.event.ActionListener#actionPerformed(ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {

		if (jTable1.isEditing() && e.getSource() == m_ButtonSave)
			jTable1.editCellAt(-1, -1);
		if (e.getSource() == m_ButtonSave) {
			try {
				setContent();
//			m_ParentPanel.getCaseWindow().setModified(true);
			} catch (SysException e1) {
				m_MessageDialog.showError(e1.getMessage(),"System Error");
			}
		} else if (e.getSource() == m_ButtonReset) {
			try {
				getContent();
			} catch (SysException e1) {
				m_MessageDialog.showError(e1.getMessage(),"System Error");
			}
			jTable1.setModel(new TableModel(m_TableContent, m_TableHeader));

		} else if (e.getSource() == m_ButtonCancel)
			close();
	}

	/**
	 * @see javax.swing.event.InternalFrameListener#internalFrameClosing(InternalFrameEvent)
	 */
	public void internalFrameClosing(InternalFrameEvent e) {
	}

	/**
	 * @see javax.swing.event.InternalFrameListener#internalFrameClosed(InternalFrameEvent)
	 */
	public void internalFrameClosed(InternalFrameEvent e) {
	}

	/**
	 * @see javax.swing.event.InternalFrameListener#internalFrameOpened(InternalFrameEvent)
	 */
	public void internalFrameOpened(InternalFrameEvent e) {

	}

	/**
	 * @see javax.swing.event.InternalFrameListener#internalFrameActivated(InternalFrameEvent)
	 */
	public void internalFrameActivated(InternalFrameEvent e) {
		sendNotifyAll(ObserveMessage.MSG_ACTIVATED);
	}

	/**
	 * @see javax.swing.event.InternalFrameListener#internalFrameDeactivated(InternalFrameEvent)
	 */
	public void internalFrameDeactivated(InternalFrameEvent e) {
	}

	/**
	 * @see javax.swing.event.InternalFrameListener#internalFrameIconified(InternalFrameEvent)
	 */
	public void internalFrameIconified(InternalFrameEvent e) {
	}

	/**
	 * @see javax.swing.event.InternalFrameListener#internalFrameDeiconified(InternalFrameEvent)
	 */
	public void internalFrameDeiconified(InternalFrameEvent e) {
	}

	protected void initContent() throws MiningException, Exception 
	{
	
	}

	/**
	 * Gets the property content of the Operator.
	 * @throws SysException
	 */
	private void getContent() throws SysException {
		
		IOperatorNode node = m_CaseHandler.getOperatorNode(m_CaseID, m_NodeID);
		if (node == null) {
			System.out.println("node null " + m_NodeID);
			//return;
		}
		m_TableContent = node.getParametersArray();

		//<<01/03/2005 Li : Read parameter from xml file
		//		Object[][] tableContent = { { "parameter_1", "value_1" }, {
		//				"parameter_2", "value_2" }, {

⌨️ 快捷键说明

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