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

📄 selectoperatorproperty.java

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

		// create Popup menu
		m_MenuItemClear = new JMenuItem(Resource.srcStr("m_MenuItemClear"));

		//<<added by Joyce 08/03/2005
		m_MenuItemClear.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				if (m_Table.getRowCount() > 0) {
					for (int i = 0; i < m_Table.getRowCount(); i++) {
						m_Table.getModel().setValueAt(new Boolean(false), i, 1);
					}
				}
			}
		});
		//m_MenuItem.addActionListener(this); remarked by Joyce 08/03/2005
		m_Menu.add(m_MenuItemClear);
		m_MenuItemSelect = new JMenuItem(Resource.srcStr("m_MenuItemSelect"));

		//<<added by Joyce 08/03/2005
		m_MenuItemSelect.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				if (m_Table.getRowCount() > 0) {
					for (int i = 0; i < m_Table.getRowCount(); i++) {
						m_Table.getModel().setValueAt(new Boolean(true), i, 1);
					}
				}
			}
		});
		//>>>
		//m_MenuItemSelect.addActionListener(this);remarked by Joyce 08/03/2005
		m_Menu.add(m_MenuItemSelect);
		m_Menu.setFont(m_AttributeJCB.getFont());
		m_Menu.setPopupSize(new Dimension(95, 40));
		MouseListener popupListener = new PopupListener(m_Menu);
		m_Table.addMouseListener(popupListener);
		//>>

		JScrollPane m_mappingScrollPane = new JScrollPane(m_Table,
				JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
				JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		//tempValueCenterPanel.setBorder( new EmptyBorder(0, 0, 7, 0));
		tempValueCenterPanel.add(m_mappingScrollPane);
		tempValueCenterPanel.setBorder(new EmptyBorder(0, 3, 0, 0));

		// put to one panel
		tempValuePanel.add(tempValueNorthPanel, BorderLayout.NORTH);
		tempValuePanel.add(tempValueCenterPanel, BorderLayout.CENTER);
		//	tempValuePanel.add(tempValueSouthPanel, BorderLayout.SOUTH);

		// 
		propertyByValuePanel.setBorder(new EmptyBorder(4, 0, 7, 0));
		propertyByValuePanel.add(new JLabel("     "), BorderLayout.WEST);
		propertyByValuePanel.add(tempValuePanel, BorderLayout.CENTER);

		//===
		m_ButtonReset.setText(Resource.srcStr("m_ButtonReset"));
		m_ButtonApply.setText(Resource.srcStr("m_ButtonApply"));
		m_ButtonClose.setSelected(false);
		m_ButtonClose.setText(Resource.srcStr("m_ButtonClose"));
		buttonPanel.add(m_ButtonApply);
		buttonPanel.add(m_ButtonReset);
		buttonPanel.add(m_ButtonClose);

		//m_ButtonSelect.addActionListener(this);
		m_ButtonReset.addActionListener(this);
		m_ButtonApply.addActionListener(this);
		m_ButtonClose.addActionListener(this);

		m_RadioByRange.addActionListener(this);
		m_RadioByValue.addActionListener(this);

		// Keep and Remove panel
		JPanel keepAndRemovePanel = new JPanel();
		keepAndRemovePanel.setBorder(new EmptyBorder(0, 5, 0, 0));
		keepAndRemovePanel.setLayout(new BoxLayout(keepAndRemovePanel,
				BoxLayout.LINE_AXIS));
		keepAndRemovePanel.add(Box.createRigidArea(new Dimension(12, 0)));
		keepAndRemovePanel.add(m_RadioKeep);
		keepAndRemovePanel.add(Box.createRigidArea(new Dimension(12, 0)));
		keepAndRemovePanel.add(m_RadioRemove);

		m_KeepGroup.add(m_RadioKeep);
		m_KeepGroup.add(m_RadioRemove);

		//		m_RadioRangeKeep.addActionListener(this);
		//		m_RadioRangeRemove.addActionListener(this);
		//		
		//		m_RadioValueKeep.addActionListener(this);
		//		m_RadioValueRemove.addActionListener(this);
		//		m_MissingValCBox.addActionListener(this);

		m_AttributeJCB.addActionListener(this);

		//-- default enabled setting
		m_RadioKeep.setSelected(true);
		//	m_RadioValueKeep.setSelected(true);
		m_RadioByRange.setSelected(true);
		//--
		JPanel tempPanel = new JPanel(new BorderLayout());
		this.getContentPane().add(propertyByRangePanel, BorderLayout.NORTH);
		this.getContentPane().add(propertyByValuePanel, BorderLayout.CENTER);
		tempPanel.add(keepAndRemovePanel, BorderLayout.NORTH);
		tempPanel.add(buttonPanel, BorderLayout.CENTER);
		this.getContentPane().add(tempPanel, BorderLayout.SOUTH);
		this.setSize(300, 420);

		try {
			initContent();
		} catch (MiningException e) {
			throw new SysException(e);
		}
		getContent();

	}

	/**
	 * @see java.awt.event.ActionListener#actionPerformed(ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == m_ButtonApply) {
			if (setContent()) {
				m_ParameterChanged = true;
//				m_ParentPanel.getCaseWindow().setModified(true);
				setPropertiesModified();
			}
		} else if (e.getSource() == m_ButtonReset) {
			getContent();
		} else if (e.getSource() == m_ButtonClose) {
			close();
		} else if (e.getSource() == m_RadioByRange) {
			setEnabledByRange(m_RadioByRange.isSelected());
		} else if (e.getSource() == m_RadioByValue) {
			setEnabledByRange(m_RadioByRange.isSelected());
		} else if (e.getSource() == m_AttributeJCB) {
			int attr = m_AttributeJCB.getSelectedIndex();
			String attrName = (String) m_AttributeJCB.getSelectedItem();
			if (attr > 0) {
				MiningAttribute[] miningAttributes = m_MetaData
						.getAttributesArray();
				if (miningAttributes[attr - 1] instanceof CategoricalAttribute) {
					setEnabledNumericAttribute(false);
					m_Table.setModel((SelectTableModel) m_TableModel
							.get(attrName));
				} else {
					setEnabledNumericAttribute(true);
					m_Table.setModel(new SelectTableModel());
				}
			}
		}
	}

	private boolean validateProperty() {
		String message = "";
		boolean setFocus = false;

		// by range
		if (m_RadioByRange.isSelected()) {

			String from = m_FromTF.getText().trim();
			String to = m_ToTF.getText().trim();

			// << case for null value
			if (m_MetaData == null || m_Node == null) {
				if (from.length() > 0) {
					if (!ValueValidator.isInteger(from)) {
						m_FromTF.requestFocus();
						setFocus = true;
						m_FromTF.setText(null);
						message += Resource.srcStr("LowerRangeMessage")+" 0\n";
						m_MessageDialog.showWarning(message,
								Resource.srcStr("InvalidValueMessage"));
						return false;
					}
					//					if (!ValueValidator.isInteger(from) ){
					//						m_FromTF.requestFocus();
					//						setFocus = true;
					//						m_FromTF.setText(null);
					//						message += "The lower range value out of range\n";
					//						MessageDialog.showWarning(message, "Invalid input
					// value");
					//						return false;
					//					}
					if (!ValueValidator.largerThan(from, 1, true)) {
						m_FromTF.requestFocus();
						setFocus = true;
						m_FromTF.setText(null);
						message += Resource.srcStr("LowerRangeMessage")+" 1\n";
						m_MessageDialog.showWarning(message,
								Resource.srcStr("InvalidValueMessage"));
						return false;
					}
				}
				if (to.length() > 0) {
					if (!ValueValidator.isInteger(to)) {
						m_ToTF.requestFocus();
						setFocus = true;
						m_ToTF.setText(null);
						message += Resource.srcStr("UpperRangeMessage")
								+ (from.length() > 0 ? from : "0") + "\n";
						m_MessageDialog.showWarning(message,
								Resource.srcStr("InvalidValueMessage"));
						return false;
					}
					//				    if (!ValueValidator.isInteger(to)){
					//						m_ToTF.requestFocus();
					//						setFocus = true;
					//						m_ToTF.setText(null);
					//						message += "The upper range value out of range";
					//						MessageDialog.showWarning(message, "Invalid input
					// value");
					//						return false;
					//					}
					if (!ValueValidator.largerThan(to, new Integer(from)
							.intValue(), true)) {
						m_ToTF.requestFocus();
						setFocus = true;
						m_ToTF.setText(null);
						message += Resource.srcStr("UpperRangeMessage")
								+ (from.length() > 0 ? from : "0") + "\n";
						m_MessageDialog.showWarning(message,
								Resource.srcStr("InvalidValueMessage"));
						return false;
					}
					if (to.length() > 0 && from.length() > 0) {

					}
				}
				return true;
			}

			if (m_msd.getVectorsNumber() <= 0) {
				m_FromTF.requestFocus();
				setFocus = true;
				m_FromTF.setText(null);
				m_ToTF.setText(null);
				message += Resource.srcStr("DataSetMessage");
				m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));

				return false;
			}

			if (!ValueValidator.isInteger(to)
					|| !ValueValidator.largerThan(to, 1, true)
					|| !ValueValidator.smallerThan(to,
							m_msd.getVectorsNumber(), true)) {
				m_ToTF.requestFocus();
				setFocus = true;
				m_ToTF.setText(null);
				message += Resource.srcStr("UpperRangeMessage1")
						+ m_msd.getVectorsNumber() + "\n";
				m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
				return false;
			}

			if (!ValueValidator.isInteger(from)
					|| !ValueValidator.largerThan(from, 1, true)
					|| !ValueValidator.isInteger(to)
					|| !ValueValidator.smallerThan(from, Integer.parseInt(to),
							true)) {
				m_FromTF.requestFocus();
				setFocus = true;
				m_FromTF.setText(null);
				if (ValueValidator.isNumeric(to)) {
					message += Resource.srcStr("LowerRangeMessage1")
							+ to + "\n";
				} else {
					message += Resource.srcStr("LowerRangeMessage1")
							+ m_msd.getVectorsNumber() + "\n";
				}
				m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
				return false;
			}

		} else {
			// by value
			if (m_AttributeJCB.getSelectedIndex() <= 0) {
				if (!setFocus) {
					m_AttributeJCB.requestFocus();
					setFocus = true;
				}
				message += Resource.srcStr("SelectAttribute");
				m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
				return false;
			}

			String attrName = ((String) m_AttributeJCB.getSelectedItem())
					.trim();
			MiningAttribute mAtt = m_MetaData.getMiningAttribute(attrName);

			if (mAtt instanceof NumericAttribute) {
				//Numeric attribute
				if (m_SmallerThanTF.isEnabled()) {
					String smallerThan = m_SmallerThanTF.getText().trim();

					if (!ValueValidator.isDouble(smallerThan)) {
						m_SmallerThanTF.requestFocus();
						setFocus = true;
						m_SmallerThanTF.setText(null);
						message += Resource.srcStr("SmallerThanMessage");
						m_MessageDialog.showWarning(message,
								Resource.srcStr("InvalidValueMessage"));
						return false;
					}
				}
			}
		}

		//        if(message.equals(""))
		return true;
		//        else {
		//            MessageDialog.showWarning(message, "Invalid input values");
		//            return false;
		//        }

	}

	protected void initContent() throws MiningException
	{
		if (m_ParentOperators.size()>0)
		{
			Operator parentOp = (Operator)m_ParentOperators.elementAt(0);
	
			if (parentOp.getOutputBIObject() != null
					&& parentOp.getOutputBIObject().getBIData() != null) {
				m_MetaData = parentOp.getOutputBIObject().getBIData().getMetaData();
				m_msd = parentOp.getOutputBIObject().getBIData()
						.getMiningStoredData();
			}
	
			if (m_MetaData == null) {
				throw new MiningException("Meta data of the node is null");
			}
			if (m_msd == null) {
				throw new MiningException("Mining stored data of the node is null");
			}
		}
		initMappingTable();
	}

	private void getContent() {
		/*
		 * Set values independent of parent
		 */
		String value = null;
		int mode = SelectOperator.BY_RANGE;

		//set value get form the node
		value = (String) m_Node.getParameterValue("mode");
		if (value != null) {
			mode = Integer.parseInt(value);
		}
		if (mode == SelectOperator.BY_RANGE) {
			m_RadioByRange.setSelected(true);
			setEnabledByRange(true);

		} else if (mode == SelectOperator.BY_VALUE) {
			m_RadioByValue.setSelected(true);
			setEnabledByRange(false);
		}

		value = (String) m_Node.getParameterValue("from");
		if (value != null)
			m_FromTF.setText(value);
		else
			m_FromTF.setText("");

		value = (String) m_Node.getParameterValue("to");
		if (value != null)
			m_ToTF.setText(value);
		else
			m_ToTF.setText("");

		value = (String) m_Node.getParameterValue("keep");
		if (value != null && value.equalsIgnoreCase("false"))
			m_RadioRemove.setSelected(true);
		else
			m_RadioKeep.setSelected(true);

		value = (String) m_Node.getParameterValue("smallerThan");
		if (value != null)
			m_SmallerThanTF.setText(value);
		else
			m_SmallerThanTF.setText("");

		value = (String) m_Node.getParameterValue("missingValue");
		if (value != null && value.equalsIgnoreCase("true"))
			m_MissingValCBox.setSelected(true);
		else
			m_MissingValCBox.setSelected(false);

		//	value = m_Node.getParameterValue("valKeep");
		//		if (value != null && value.equalsIgnoreCase("false"))
		//			m_RadioValueRemove.setSelected(true);
		//		else
		//			m_RadioValueKeep.setSelected(true);

		m_Table.setModel(new SelectTableModel());

		/*
		 * Set values dependent on parent

⌨️ 快捷键说明

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