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

📄 searchingcriteria.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.ui;


import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import eti.bi.alphaminer.core.handler.CaseInfoListHandler;
import eti.bi.alphaminer.vo.SearchCriteria;
import eti.bi.exception.SysException;
import eti.bi.common.Locale.Resource;

/**
 * SearchingCriteria is a Dialog which prompts for user input in order to perform
 * a query to find about those Cases which matches users' specification.
 */
public class SearchingCriteria
	extends JDialog
	implements ActionListener, KeyListener {

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

	/* Parent ApplicationWindow for the modal SearchingCriteria Dialog */
	private ApplicationWindow m_Container;

	private JPanel m_PanelSearch;
	private JPanel m_PanelContent;
	private JPanel m_PanelButton;

	private JPanel m_PanelKeywords;
	private JPanel m_PanelKeywordsContent;
	private JPanel m_PanelKeywordsInput;
	private JPanel m_PanelKeywordsScore;
	private JLabel m_LabelKeywords;
	private JPanel m_PanelKeywordsButton;
	private JTextField m_TextFieldKeywords;
	private JLabel m_LabelScoreKey;
	private JTextField m_TextScoreKey;
	private JSlider m_SliderKey;
	private JButton m_ButtonAdvanced;

	private JPanel m_PanelAdvanced;
	private JPanel m_PanelAdvancedContent;
	private JPanel m_PanelAdvancedInput;
	private JPanel m_PanelAdvancedScore;
	private JLabel m_LabelIndustry;
	private JTextField m_TextFieldIndustry;
	private JLabel m_LabelProblem;
	private JTextField m_TextFieldProblem;
	private JLabel m_LabelObjective;
	private JTextField m_TextFieldObjective;
	private JLabel m_LabelGoal;
	private JTextField m_TextFieldGoal;
	private JLabel m_LabelCompany;
	private JLabel m_LabelDepartment;
	private JTextField m_TextFieldDepartment;
	private JTextField m_TextFieldCompany;
	
	private JPanel m_PanelAdvancedButton;
	private JButton m_ButtonKeywords;
	private JLabel m_LabelScoreAdvanced;
	private JTextField m_TextScoreAdvanced;
	private JSlider m_SliderAdvanced;
	private JButton m_ButtonOK;
	private JButton m_ButtonReset;
	private JButton m_ButtonCancel;

	private boolean m_KeywordSearch;
	private double m_Threshold;

	/**
	 * Constructs the SearchingCriteria Dialog.
	 * @param a_Frame the parent frame (i.e. ApplicationWindow) holding this 
	 * SearchingCrieria Dialog.
	 */
	public SearchingCriteria(Frame a_Frame) {
		super(a_Frame, null, true);
		m_Container = (ApplicationWindow) a_Frame;
		m_KeywordSearch = true;
		createSearchingCriteria();
		pack();
	}

	/**
	 * Gets the threshold value.
	 * @return the threshold value.
	 */
	public double getThreshold() {
		return m_Threshold;
	}

	/**
	 * Sets the threshold value used to measure similarity of Cases to the query.
	 * @param a_Threshold the threshold value.
	 */
	public void setThreshold(double a_Threshold) {
		m_Threshold = a_Threshold;
	}

	/**
	 * @see java.awt.event.ActionListener#actionPerformed(ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {
		Object source = e.getSource();
		if (source == m_ButtonOK)
            try {
                okActionPerformed();
            } catch (SysException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        else if (source == m_ButtonCancel)
			cancelActionPerformed();
		else if (source == m_ButtonKeywords)
			keywordsActionPerformed();
		else if (source == m_ButtonAdvanced)
			advancedActionPerformed();
		else if (source == m_ButtonReset)
			resetActionPerformed();
	}

	/**
	 * @see java.awt.event.KeyListener#keyPressed(KeyEvent)
	 */
	public void keyPressed(KeyEvent e) {
		if (e.getKeyCode() == KeyEvent.VK_ENTER) {
			if (e.getSource() == m_TextFieldKeywords
				|| e.getSource() == m_TextFieldDepartment)
				m_ButtonOK.requestFocus();
			else
				getFocusTraversalPolicy()
					.getComponentAfter(this, (JComponent) e.getSource())
					.requestFocus();
		}
	}

	/**
	 * @see java.awt.event.KeyListener#keyReleased(KeyEvent)
	 */
	public void keyReleased(KeyEvent e) {
	}

	/**
	 * @see java.awt.event.KeyListener#keyTyped(KeyEvent)
	 */
	public void keyTyped(KeyEvent e) {
	}

	/**
	 * Creates SearchingCriteria Dialog.
	 */
	private void createSearchingCriteria() {
		m_PanelSearch = new JPanel(new BorderLayout());
		m_PanelContent = new JPanel(new CardLayout());
		m_PanelButton = new JPanel();

		m_PanelKeywords = new JPanel(new BorderLayout());
		m_PanelKeywordsContent = new JPanel(new BorderLayout());
		m_PanelKeywordsScore = new JPanel(new GridLayout(1,2));
		m_PanelKeywordsInput = new JPanel(new GridLayout(1, 2));
		m_LabelKeywords = new JLabel(Resource.srcStr("m_LabelKeywords"));
		m_PanelKeywordsButton = new JPanel();
		m_TextFieldKeywords = new JTextField();
				
		m_ButtonAdvanced = new JButton(Resource.srcStr("m_ButtonAdvanced"));

		m_PanelAdvanced = new JPanel(new BorderLayout());
		m_PanelAdvancedContent = new JPanel(new BorderLayout());
		m_PanelAdvancedInput = new JPanel(new GridLayout(6, 2));
		m_LabelIndustry = new JLabel(Resource.srcStr("m_LabelIndustry"));
		m_TextFieldIndustry = new JTextField();
		m_LabelProblem = new JLabel(Resource.srcStr("m_LabelProblem"));
		m_TextFieldProblem = new JTextField();
		m_LabelObjective = new JLabel(Resource.srcStr("m_LabelObjective"));
		m_TextFieldObjective = new JTextField();
		m_LabelGoal = new JLabel(Resource.srcStr("m_LabelGoal"));
		m_TextFieldGoal = new JTextField();
		m_LabelCompany = new JLabel(Resource.srcStr("m_LabelCompany"));
		m_LabelDepartment = new JLabel(Resource.srcStr("m_LabelDepartment"));
		m_TextFieldDepartment = new JTextField();
		m_TextFieldCompany = new JTextField();
		m_PanelAdvancedButton = new JPanel();
		m_ButtonKeywords = new JButton(Resource.srcStr("m_ButtonKeywords"));

		m_ButtonOK = new JButton(Resource.srcStr("m_ButtonOK"));
		m_ButtonReset = new JButton(Resource.srcStr("m_ButtonReset"));
		m_ButtonCancel = new JButton(Resource.srcStr("m_ButtonCancel"));

		m_PanelSearch.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
		m_PanelSearch.setPreferredSize(new Dimension(350, 180));
		m_PanelContent.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
		m_PanelContent.setPreferredSize(new Dimension(280, 180));

		m_PanelKeywordsContent.setBorder(
				BorderFactory.createCompoundBorder(
						BorderFactory.createEtchedBorder(
							Color.white,
							new Color(148, 145, 140)),
						BorderFactory.createEmptyBorder(2, 3, 2, 3)));
		m_PanelKeywordsInput.setPreferredSize(new Dimension(320, 23));
		m_TextFieldKeywords.setPreferredSize(new Dimension(240, 20));

		m_PanelAdvancedInput.setBorder(
			BorderFactory.createEmptyBorder(5, 10, 5, 10));
		m_PanelAdvancedContent.setBorder(
				BorderFactory.createCompoundBorder(
						BorderFactory.createEtchedBorder(
							Color.white,
							new Color(148, 145, 140)),
						BorderFactory.createEmptyBorder(2, 3, 2, 3)));

		getContentPane().add(m_PanelSearch, BorderLayout.CENTER);
		m_PanelSearch.add(m_PanelContent, BorderLayout.CENTER);
		m_PanelSearch.add(m_PanelButton, BorderLayout.SOUTH);

		m_PanelContent.add(m_PanelKeywords, "m_PanelKeywords");
		m_PanelContent.add(m_PanelAdvanced, "m_PanelAdvanced");
		
		createKeyScore();
		m_PanelKeywordsInput.add(m_LabelKeywords);
		m_PanelKeywordsInput.add(m_TextFieldKeywords);
		m_PanelKeywordsContent.add(m_PanelKeywordsInput, BorderLayout.NORTH);
		m_PanelKeywordsContent.add(m_PanelKeywordsScore,BorderLayout.CENTER);
		m_PanelKeywords.add(m_PanelKeywordsContent, BorderLayout.NORTH);
		m_PanelKeywords.add(m_PanelKeywordsButton, BorderLayout.SOUTH);
		m_PanelKeywordsButton.add(m_ButtonAdvanced);
		
		createAdvancedScore();
		m_PanelAdvanced.add(m_PanelAdvancedButton, BorderLayout.SOUTH);
		m_PanelAdvancedButton.add(m_ButtonKeywords);
		m_PanelAdvanced.add(m_PanelAdvancedContent, BorderLayout.NORTH);
		m_PanelAdvancedContent.add(m_PanelAdvancedInput, BorderLayout.NORTH);
		m_PanelAdvancedContent.add(m_PanelAdvancedScore,BorderLayout.CENTER);
		m_PanelAdvancedInput.add(m_LabelIndustry);
		m_PanelAdvancedInput.add(m_TextFieldIndustry);
		m_PanelAdvancedInput.add(m_LabelProblem);
		m_PanelAdvancedInput.add(m_TextFieldProblem);
		m_PanelAdvancedInput.add(m_LabelObjective);
		m_PanelAdvancedInput.add(m_TextFieldObjective);
		m_PanelAdvancedInput.add(m_LabelGoal);
		m_PanelAdvancedInput.add(m_TextFieldGoal);
		m_PanelAdvancedInput.add(m_LabelCompany);
		m_PanelAdvancedInput.add(m_TextFieldCompany);
		m_PanelAdvancedInput.add(m_LabelDepartment);
		m_PanelAdvancedInput.add(m_TextFieldDepartment);

		m_PanelButton.add(m_ButtonOK);
		m_PanelButton.add(m_ButtonReset);
		m_PanelButton.add(m_ButtonCancel);

		m_ButtonReset.setActionCommand("keywords");
		m_ButtonOK.addActionListener(this);

⌨️ 快捷键说明

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