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

📄 selectoperatorproperty.java

📁 为了下东西 随便发了个 datamining 的源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		 */

		if (m_MetaData == null || m_Node == null)
			return;
		int m_Column = m_MetaData.getAttributesNumber();
		if (m_Column == 0)
			return;

		MiningAttribute[] miningAttributes = m_MetaData.getAttributesArray();
		MiningAttribute attribute = null;
		String name = null;
		int index = 0;
		int attrIndex = 0;
		MiningAttribute mAtt = null;

		value = (String) m_Node.getParameterValue("target");

		m_AttributeJCB.removeAllItems();
		m_AttributeJCB.addItem(DEFAULT);
		for (int i = 0; i < m_Column; i++) {
			attribute = miningAttributes[i];
			name = attribute.getName();

			m_AttributeJCB.addItem(name);
			index++;
			if (value != null && value.equalsIgnoreCase(name)) {
				attrIndex = index;
				mAtt = attribute;
			}
		}
		m_AttributeJCB.setSelectedIndex(attrIndex);

		//if (!m_RadioByValue.isSelected())
		//   return;

		if (mAtt != null) {

			if (mAtt instanceof NumericAttribute) {
				setEnabledNumericAttribute(true);
				//				<< Added by Joyce 08/03/2005 reset information
				//set value get form the node
				value = (String) m_Node.getParameterValue("mode");
				if (value != null) {
					mode = Integer.parseInt(value);
				}
				if (mode == SelectOperator.BY_RANGE) {
					setEnabledByRange(true);
					m_RadioByRange.setSelected(true);

				} else if (mode == SelectOperator.BY_VALUE) {

					setEnabledByRange(false);
					m_RadioByValue.setSelected(true);
				}
				//>>
				return;

			} else {
				setEnabledNumericAttribute(false);
				m_SmallerThanTF.setEnabled(false);

				SelectTableModel model = (SelectTableModel) m_TableModel
						.get(mAtt.getName());
				Boolean[] selection = null;

				value = (String) m_Node.getParameterValue("selection");
				if (value != null) {
					selection = parseSelected(value);
					if (selection.length == ((CategoricalAttribute) mAtt)
							.getCategoriesNumber()) {
						for (int i = 0; i < selection.length; i++) {
							model.setValueAt(selection[i], i);
						}

						m_Table.setModel(model);

						//<< Added by Joyce 08/03/2005 reset information
						//set value get form the node
						//						value = m_Node.getParameterValue("mode");
						//						if (value != null) {
						//							mode = Integer.parseInt(value);
						//						}
						//						if (mode == SelectOperator.BY_RANGE) {
						//							setEnabledByRange(true);
						//							m_RadioByRange.setSelected(true);
						//
						//						} else if (mode == SelectOperator.BY_VALUE) {
						//							
						//							setEnabledByRange(false);
						//							m_RadioByValue.setSelected(true);
						//						}
						//>>
						return;
					}
				}
			}
		}

		m_AttributeJCB.setSelectedIndex(0);
		//		m_RadioRangeKeep.setSelected(true);
		//		setEnabledByRange(true);
		//		m_FromTF.setText("");
		//		m_ToTF.setText("");
		//		m_RadioRangeKeep.setSelected(true);
		//		m_SmallerThanTF.setText("");
		//		m_MissingValCBox.setSelected(false);
		//		m_RadioValueKeep.setSelected(true);
		m_Table.setModel(new SelectTableModel());
		//		setEnabledNumericAttribute(true);

	}

	private boolean setContent() {
		if (!validateProperty())
			return false;

		//<< added by Joyce 2005/03/17 to clear result
//		Operator op = m_ParentPanel.getOperator(m_NodeID);
		//((SelectOperator) op).clearResult();
		clearOperatorTempResult();
		//>>

		m_Node.getParameters().remove("mode");
		m_Node.getParameters().remove("from");
		m_Node.getParameters().remove("to");
		m_Node.getParameters().remove("keep");
		//		m_Node.getParameters().remove("valKeep");
		m_Node.getParameters().remove("target");
		m_Node.getParameters().remove("targetType");
		m_Node.getParameters().remove("selection");
		m_Node.getParameters().remove("missingValue");
		m_Node.getParameters().remove("smallerThan");

		if (m_RadioByRange.isSelected())
			m_Node.setParameterValue("mode", Integer
					.toString(SelectOperator.BY_RANGE));
		else
			m_Node.setParameterValue("mode", Integer
					.toString(SelectOperator.BY_VALUE));

		m_Node.setParameterValue("from", m_FromTF.getText().trim());
		m_Node.setParameterValue("to", m_ToTF.getText().trim());

		if (m_RadioKeep.isSelected())
			m_Node.setParameterValue("keep", "true");
		else
			m_Node.setParameterValue("keep", "false");

		String attrName = (String) m_AttributeJCB.getSelectedItem();
		m_Node.setParameterValue("target", attrName);
		MiningAttribute mAtt = m_MetaData.getMiningAttribute(attrName);
		if (mAtt instanceof CategoricalAttribute)
			m_Node.setParameterValue("targetType", CATEG);
		else
			m_Node.setParameterValue("targetType", NUM);

		SelectTableModel model = (SelectTableModel) m_Table.getModel();
		Boolean[] selection = new Boolean[model.getRowCount()];
		for (int i = 0; i < selection.length; i++) {
			selection[i] = model.getValueAt(i);
		}
		m_Node.setParameterValue("selection", parseSelected(selection));

		m_Node.setParameterValue("smallerThan", m_SmallerThanTF.getText()
				.trim());

		if (m_MissingValCBox.isSelected())
			m_Node.setParameterValue("missingValue", "true");
		else
			m_Node.setParameterValue("missingValue", "false");

		//		if (m_RadioValueKeep.isSelected())
		//			m_Node.setParameterValue("valKeep", "true");
		//		else
		//			m_Node.setParameterValue("valKeep", "false");

		setPropertiesModified();
		return true;
	}

	class PopupListener extends MouseAdapter {
		JPopupMenu menu;

		PopupListener(JPopupMenu popup) {
			menu = popup;
		}

		public void mousePressed(MouseEvent me) {
			showMenu(me);
		}

		public void mouseReleased(MouseEvent me) {
			showMenu(me);
		}

		private void showMenu(MouseEvent me) {
			if (me.isPopupTrigger() && m_RadioByValue.isSelected()) {

				menu.show(me.getComponent(), me.getX(), me.getY());
			}
		}
	}

	private void initMappingTable() {

		if (m_MetaData == null || m_Node == null)
			return;
		int numAttr = m_MetaData.getAttributesNumber();
		if (numAttr == 0)
			return;

		MiningAttribute[] miningAttributes = m_MetaData.getAttributesArray();
		m_TableModel = new Hashtable<Object, SelectTableModel>();

		for (int i = 0; i < numAttr; i++) {
			if (miningAttributes[i] instanceof CategoricalAttribute) {
				CategoricalAttribute attr = (CategoricalAttribute) miningAttributes[i];
				String attrName = miningAttributes[i].getName();
				int numCat = attr.getCategoriesNumber();

				Object[][] content = new Object[numCat][m_MetaDataTableHeader.length];
				Object[] row = null;

				ArrayList catValues = attr.getValues();
				for (int j = 0; j < catValues.size(); j++) {
					row = new Object[2];
					row[0] = ((Category) catValues.get(j)).getValue()
							.toString();
					row[1] = new Boolean(false);
					content[j] = row;
				}

				SelectTableModel model = new SelectTableModel(content,
						m_MetaDataTableHeader, i);

				m_TableModel.put(attrName, model);
			}
		}

	}

	private void setEnabledByRange(boolean a_Flag) {
		m_FromTF.setEnabled(a_Flag);
		m_ToTF.setEnabled(a_Flag);
		//	m_RadioKeep.setEnabled(a_Flag);
		//	m_RadioRemove.setEnabled(a_Flag);

		m_AttributeJCB.setEnabled(!a_Flag);
		m_SmallerThanTF.setEnabled(!a_Flag);
		m_MissingValCBox.setEnabled(!a_Flag);
		setEnabledTable(!a_Flag);
		//		m_RadioValueKeep.setEnabled(!a_Flag);
		//		m_RadioValueRemove.setEnabled(!a_Flag);
	}

	private void setEnabledTable(boolean a_Flag) {
		if (!a_Flag) {
			m_Table.setEnabled(false);
			m_Table.setBackground(DISABLED_COLOR);
			m_Table.setForeground(Color.GRAY);
		} else {
			m_Table.setEnabled(true);
			m_Table.setBackground(ENABLED_COLOR);
			m_Table.setForeground(Color.BLACK);
		}
	}

	private void setEnabledNumericAttribute(boolean a_Flag) {
		setEnabledTable(!a_Flag);
		m_SmallerThanTF.setEnabled(a_Flag);
	}

	private String parseSelected(Boolean[] a_Selection) {
		String parsed = "";
		for (int i = 0; i < a_Selection.length; i++) {
			if (a_Selection[i].booleanValue()) {
				parsed += "1";
			} else {
				parsed += "0";
			}
		}
		return parsed;
	}

	private Boolean[] parseSelected(String a_Selection) {
		Boolean[] selection = new Boolean[a_Selection.length()];
		for (int i = 0; i < a_Selection.length(); i++) {
			if (a_Selection.charAt(i) == '0') {
				selection[i] = Boolean.FALSE;
			} else {
				selection[i] = Boolean.TRUE;
			}
		}
		return selection;
	}

}

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

class SelectTableModel extends DefaultTableModel implements TableModelListener {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	Class[] types;

	boolean[] canEdit;

	Object[][] m_TableContent;

	int m_Target = -1;

	boolean m_Modified = false;

	public SelectTableModel() {
		super();
	}

	/**
	 * Constructs a TableMode.
	 * 
	 * @param a_TableContent
	 *            an Object array storing table content.
	 * @param a_TableHeader
	 *            an Object array storing header names.
	 */
	public SelectTableModel(Object[][] a_TableContent, Object[] a_TableHeader,
			int a_Target) {
		super(a_TableContent, a_TableHeader);
		m_Target = a_Target;
		types = new Class[a_TableHeader.length];
		canEdit = new boolean[a_TableHeader.length];
		types[0] = String.class;
		types[1] = Boolean.class;
		canEdit[0] = false;
		canEdit[1] = true;

		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 Boolean getValueAt(int rowIndex) {
		return (Boolean) super.getValueAt(rowIndex, 1);
	}

	public void setValueAt(Boolean value, int rowIndex) {
		super.setValueAt(value, rowIndex, 1);
		m_Modified = true;
	}

	public void setValue(Boolean value) {
		for (int i = 0; i < getRowCount(); i++) {
			setValueAt(value, i, 1);
		}
	}

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

	/**
	 * @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];
	}

	public boolean isModified() {
		return m_Modified;
	}
}

⌨️ 快捷键说明

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