📄 operatorproperty.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.
*/
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 + -