📄 searchingcriteria.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.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 + -