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

📄 operatorproperty.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		//				"parameter_3", "value_3" }, {
		//				"parameter_4", "value_4" }, {
		//				"parameter_5", "value_5" }, {
		//				"parameter_6", "value_6" }, {
		//				"parameter_7", "value_7" }, {
		//				"parameter_8", "value_8" }, {
		//				"parameter_9", "value_9" }, {
		//				"parameter_10", "value_10" }
		//		};
		//		//if (m_TableContent==null)
		//		// m_TableContent = tableContent;
		//
		//		if (m_TableContent == null
		//			&& node.getOperatorNodeType() == OperatorNode.SAS_TREE) {
		//			Object[][] content =
		//				{ { "Splitting criterion", "Chi-squre test" }, {
		//					"Significance level", "0.200" }, {
		//					"Minimum number of observations in a leaf", "1" }, {
		//					"Observations required for a split search", "16" }, {
		//					"Maximum number of branches from a node", "2" }, {
		//					"Maximum depth of tree", "6" }, {
		//					"Splitting rules saved in each node", "5" }, {
		//					"Surrogate rules saved in each node", "0" }, {
		//					"Treat missing as an acceptable value", "No" }, {
		//					"Model assessment measure", "Automatic" }, {
		//					"Sub-tree", "Best assessment value" }, {
		//					"Observations sufficient for split search", "1600" }, {
		//					"Maximum tries in an exhaustive split search", "5000" }, };
		//			m_TableContent = content;
		//		}
		//		01/03/2005 Li : Read parameter from xml file>>
	}

	/**
	 * Sets the property content of the Operator.
	 * @throws SysException
	 */
	private void setContent() throws SysException {
		
		IOperatorNode node = m_CaseHandler.getOperatorNode(m_CaseID, m_NodeID);
		//(OperatorNode) selectedCase.getNode(	NodeFactory.OPERATOR, m_NodeID);
		if (node == null) {
			//return;
		}

		TableModel model = (TableModel) jTable1.getModel();
		for (int i = 0; i < model.getRowCount(); i++) {
			node.setParameterValue(model.getValueAt(i)[0],
					model.getValueAt(i)[1]);
			System.out.println(model.getValueAt(i)[0] + " "
					+ model.getValueAt(i)[1]);
		}
		try {
			m_CaseHandler.updateOperatorNode(node);
		} catch (BaseException be) {
			System.out.println(be.getMessage());
		}
		m_ParameterChanged = true;
		setPropertiesModified();
	}

	/*
	 * Trigger parent nodes execution. If the operator property needs the
	 * parents nodes to be executed in order to get the parameters, call this at
	 * before initContent()
	 */
	protected void triggerParentNodesExecution() throws SysException {
		if (m_ParentOperators == null || m_ParentOperators.size() == 0) {
			// Do Nothing if no parent node
			return;
		}
		
		// Execute parent nodes one by one
		int size = m_ParentOperators.size();
		if(size==0) {
			return;
		}
		Vector<String> nodeIDs = new Vector<String>(size);
		for (int i = 0; i < size; i++) {
			Operator parentOp = (Operator)m_ParentOperators.elementAt(i);
			// Execute if the parent node has no result
			if (!parentOp.hasResult()) {
				nodeIDs.add(parentOp.getNodeID());
			}
		}
		
		try {
			m_CaseHandler.executeNode(m_CaseID,
					nodeIDs);
		} catch (AppException e) {
			throw new SysException(e);
		}
	}

	/**
	 * Creates the OperatorProperty internal window.
	 * @throws SysException
	 * @throws MiningException
	 */
	protected void createOperatorProperty() throws SysException
	{
		jScrollPane1 = new JScrollPane();
		jTable1 = new JTable();
		
		
		this.setIconifiable(false);
		this
				.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
		this.getContentPane().setLayout(new BorderLayout());
		m_ButtonReset.setText(Resource.srcStr("m_ButtonReset"));
		m_ButtonSave.setText(Resource.srcStr("m_ButtonApply"));
		m_ButtonCancel.setSelected(false);
		m_ButtonCancel.setText(Resource.srcStr("m_ButtonCancel"));
				
		this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
		this.getContentPane().add(jPanel1, BorderLayout.SOUTH);
		jPanel1.add(m_ButtonSave, null);
		jPanel1.add(m_ButtonReset, null);
		jPanel1.add(m_ButtonCancel, null);
		jScrollPane1.getViewport().setBackground(Color.white);
		jScrollPane1.getViewport().add(jTable1, null);
		m_ButtonReset.addActionListener(this);
		m_ButtonSave.addActionListener(this);
		m_ButtonCancel.addActionListener(this);

		JTableHeader tableHeader = jTable1.getTableHeader();
		tableHeader.setReorderingAllowed(false);

		getContent();
		jTable1.setModel(new TableModel(m_TableContent, m_TableHeader));
		//		<<09/03/2005 Mark Li: Modify panel size
		TableColumn column = jTable1.getColumnModel().getColumn(0);
		column.setMinWidth(ColumnSize);
		column.setPreferredWidth(ColumnSize);
		column.setCellRenderer(new TextAreaCellRenderer());
		//		this.setSize(350, 230);
		this.setSize(470, 280);
		TableColumn column1 = jTable1.getColumnModel().getColumn(1);
		column1.setCellRenderer(new TextAreaCellRenderer());
		//		09/03/2005 Mark Li: Modify panel size>>
		this.addInternalFrameListener(this);

	}

	/* (non-Javadoc)
	 * @see eti.bi.alphaminer.core.observer.ObserveSubject#registerInterest(eti.bi.alphaminer.core.observer.Observer)
	 */
	@SuppressWarnings("unchecked")
	public void registerInterest(Observer a_Observer) {
		m_Observers.add(a_Observer);
	}
	
	protected void setPropertiesModified()
	{
		sendNotifyAll(ObserveMessage.MSG_VALUE_MODIFIED);
	}
	
	protected void clearOperatorTempResult()
	{
		m_Operator.clearResult();
	}
	
	/**
	 * Notifies the current Observer that a change has been taken place.
	 * @param a_Message the message to be received.
	 */
	public void sendNotify(String a_Message) {
		if(a_Message.equals(Resource.CHANGE_LOCALE)) {
			resetLocale();
		}
	}

	/**
	 * Notifies the current Observer that a change has been taken place.
	 * @param a_Message the message to be received.
	 */
	public void sendNotify(int a_Message) {}

	/**
	 * Notifies the current Observer that a change has been taken place.
	 * @param a_Message the message to be received.
	 */
	public void sendNotify(int a_Message, Object a_Object) {}
	
	// <<22/07/2005 Kenneth Lai: Added for JHelp
	/**
	 * Notifies the current Observer that a change in help state has been taken place.
	 * @param a_HelpState the help state to be received.
	 */
	public void sendNotify(boolean a_HelpState) {}
	// 22/07/2005 Kenneth Lai: Added for JHelp>>
	
	// 15/08/2006 Xiaojun Chen:Add for multi-language
	/**
	 * Handler the change locale event
	 * */
	public void resetLocale() {
		m_ButtonReset.setText(Resource.srcStr("m_ButtonReset"));
		m_ButtonSave.setText(Resource.srcStr("m_ButtonApply"));
		m_ButtonCancel.setText(Resource.srcStr("m_ButtonCancel"));
	}	

}

/**
 * TableModel is a special kind of TableModel for showing Operator property.
 */

class TableModel extends DefaultTableModel implements TableModelListener {

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

	Class[] types = new Class[] { String.class, String.class };

	boolean[] canEdit = new boolean[] { false, true };

	Object[][] m_TableContent;

	/**
	 * Constructs a TableMode.
	 * 
	 * @param a_TableContent
	 *            an Object array storing table content.
	 * @param a_TableHeader
	 *            an Object array storing header names.
	 */
	public TableModel(Object[][] a_TableContent, Object[] a_TableHeader) {
		super(a_TableContent, a_TableHeader);
		m_TableContent = a_TableContent;
		addTableModelListener(this);
	}

	/**
	 * Gets content of a row.
	 * 
	 * @param rowIndex
	 *            index of the row.
	 * @return String[] a String array of size 2 with the first element stores
	 *         text of (rowIndex, 0) cell the table content; the second element
	 *         stores text of (rowIndex, 1) cell in the table content.
	 */
	public String[] getValueAt(int rowIndex) {
		String[] value = new String[2];
		value[0] = (String) super.getValueAt(rowIndex, 0);
		value[1] = (String) super.getValueAt(rowIndex, 1);
		return value;
	}

	/**
	 * @see javax.swing.event.TableModelListener#tableChanged(TableModelEvent)
	 */
	public void tableChanged(TableModelEvent e) {
		int row = e.getFirstRow();
		TableModel model = (TableModel) e.getSource();
		String[] data = model.getValueAt(row);
		m_TableContent[row][1] = data[1];
	}

	/**
	 * @see javax.swing.table.TableModel#getColumnClass(int)
	 */
	@SuppressWarnings("unchecked")
	public Class getColumnClass(int columnIndex) {
		return types[columnIndex];
	}

	/**
	 * @see javax.swing.table.TableModel#isCellEditable(int, int)
	 */
	public boolean isCellEditable(int rowIndex, int columnIndex) {
		return canEdit[columnIndex];
	}
}
//<<09/03/2005 Mark Li Wrap text in Table

class TextAreaCellRenderer extends JTextArea implements TableCellRenderer {

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

	public TextAreaCellRenderer() {
		setLineWrap(true);
		setWrapStyleWord(true);
	}

	public Component getTableCellRendererComponent(JTable jTable, Object obj,
			boolean isSelected, boolean hasFocus, int row, int column) {
		// set color & border here
		setFont(new java.awt.Font("Dialog", 5, 12));
		setText((obj == null) ? "" : obj.toString());
		setSize(jTable.getColumnModel().getColumn(column).getWidth(),
				getPreferredSize().height);
		if (jTable.getRowHeight(row) != getPreferredSize().height) {
			jTable.setRowHeight(row, getPreferredSize().height);
		}
		return this;
	}
}
//09/03/2005 Mark Li Wrap text in Table>>

⌨️ 快捷键说明

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