📄 smooperatorproperty.java
字号:
//// @author XiaoguangXu HITSZ-ICE
package eti.bi.alphaminer.patch.standard.operation.property;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import eti.bi.alphaminer.core.handler.ICaseHandler;
import eti.bi.alphaminer.operation.operator.INodeInfo;
import eti.bi.alphaminer.operation.property.OperatorProperty;
import eti.bi.alphaminer.patch.standard.operation.operator.SMOOperator;
import eti.bi.common.Locale.Resource;
import eti.bi.exception.SysException;
public class SMOOperatorProperty extends OperatorProperty {
private static final long serialVersionUID = -285656442630953L;
/* UI controls */
private JButton m_ButtonReset = new JButton();
private JButton m_ButtonSave = new JButton();
private JButton m_ButtonCancel = new JButton();
private String[] v_buildLogisticModels = { "True", "False" };
private String[] v_debug = { "True", "False" };
private String[] v_featureSpaceNormalization = { "True", "False" };
private String[] v_filterType = { "Normalize training data", "Standardize training data", "Neither" };
private String[] v_lowerOrderTerms = { "True", "False" };
private String[] v_useRBF = { "True", "False" };
private JComboBox m_buildLogModels = new JComboBox(v_buildLogisticModels);
private JTextField m_c = new JTextField();
private JTextField m_cacheSize = new JTextField();
private JComboBox m_debug = new JComboBox(v_debug);
private JTextField m_epsilon = new JTextField();
private JTextField m_exponent = new JTextField();
private JComboBox m_featureSpaceNormalization = new JComboBox(v_featureSpaceNormalization);
private JComboBox m_filterType = new JComboBox(v_filterType);
private JTextField m_gamma = new JTextField();
private JComboBox m_lowerOrderTerms = new JComboBox(v_lowerOrderTerms);
private JTextField m_numFolds = new JTextField();
private JTextField m_randomSeed = new JTextField();
private JTextField m_toleranceParameters = new JTextField();
private JComboBox m_useRBF = new JComboBox(v_useRBF);
public SMOOperatorProperty(String a_CaseID, String a_NodeID, String a_Name, INodeInfo a_NodeInfo,
ICaseHandler a_CaseHandler) throws SysException {
super(a_CaseID, a_NodeID, "SMO [" + a_NodeID + "]", a_NodeInfo, a_CaseHandler);
createSMOOperatorProperty();
this.setTitle(Resource.srcStr("SMO") + " [" + a_NodeID + "]");
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == m_ButtonSave) {
if (applyContent()) {
m_ParameterChanged = true;
}
} else if (e.getSource() == m_ButtonReset) {
getContent();
} else if (e.getSource() == m_ButtonCancel)
close();
}
private boolean applyContent() {
if (validateProperty()) {
return setContent();
} else {
return false;
}
}
private void createSMOOperatorProperty() {
JPanel propertyPanel = new JPanel();
JPanel buttonPanel = new JPanel();
/* propertyPanel */
propertyPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(Resource
.srcStr("SMO")), BorderFactory.createEmptyBorder(2, 40, 0, 6)));
JLabel buildLogisticModels = new JLabel(Resource.srcStr("buildLogisticModels"));
JLabel c = new JLabel(Resource.srcStr("c"));
JLabel cacheSize = new JLabel(Resource.srcStr("cacheSize"));
JLabel debug = new JLabel(Resource.srcStr("debug"));
JLabel epsilon = new JLabel(Resource.srcStr("epsilon"));
JLabel exponent = new JLabel(Resource.srcStr("exponent"));
JLabel featureSpaceNormalization = new JLabel(Resource.srcStr("featureSpaceNormalization"));
JLabel filterType = new JLabel(Resource.srcStr("filterType"));
JLabel gamma = new JLabel(Resource.srcStr("gamma"));
JLabel lowerOrderTerms = new JLabel(Resource.srcStr("LowerOrderTerms"));
JLabel numFolds = new JLabel(Resource.srcStr("numFolds"));
JLabel randomSeed = new JLabel(Resource.srcStr("randomSeed"));
JLabel toleranceParameters = new JLabel(Resource.srcStr("toleranceParameter"));
JLabel useRBF = new JLabel(Resource.srcStr("useRBF"));
int leftMargin = 4;
buildLogisticModels.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
c.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
cacheSize.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
debug.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
epsilon.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
exponent.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
featureSpaceNormalization.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
filterType.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
gamma.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
lowerOrderTerms.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
numFolds.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
randomSeed.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
toleranceParameters.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
useRBF.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
propertyPanel.setLayout(new GridLayout(14, 2, 0, 5));
propertyPanel.add(buildLogisticModels);
propertyPanel.add(m_buildLogModels);
propertyPanel.add(c);
//propertyPanel.a
propertyPanel.add(m_c);
propertyPanel.add(cacheSize);
propertyPanel.add(m_cacheSize);
propertyPanel.add(debug);
propertyPanel.add(m_debug);
propertyPanel.add(epsilon);
propertyPanel.add(m_epsilon);
propertyPanel.add(exponent);
propertyPanel.add(m_exponent);
propertyPanel.add(featureSpaceNormalization);
propertyPanel.add(m_featureSpaceNormalization);
propertyPanel.add(filterType);
propertyPanel.add(m_filterType);
propertyPanel.add(gamma);
propertyPanel.add(m_gamma);
propertyPanel.add(lowerOrderTerms);
propertyPanel.add(m_lowerOrderTerms);
propertyPanel.add(numFolds);
propertyPanel.add(m_numFolds);
propertyPanel.add(randomSeed);
propertyPanel.add(m_randomSeed);
propertyPanel.add(toleranceParameters);
propertyPanel.add(m_toleranceParameters);
propertyPanel.add(useRBF);
propertyPanel.add(m_useRBF);
/* button panel */
m_ButtonReset.setText(Resource.srcStr("m_ButtonReset"));
m_ButtonSave.setText(Resource.srcStr("m_ButtonApply"));
m_ButtonCancel.setSelected(false);
m_ButtonCancel.setText(Resource.srcStr("m_ButtonClose"));
buttonPanel.add(m_ButtonSave);
buttonPanel.add(m_ButtonReset);
buttonPanel.add(m_ButtonCancel);
m_ButtonReset.addActionListener(this);
m_ButtonSave.addActionListener(this);
m_ButtonCancel.addActionListener(this);
this.getContentPane().add(propertyPanel, BorderLayout.CENTER);
this.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
this.setSize(300, 560);
getContent();
}
/**
* Set values input in this NavieBayesOperatorProperty to the Operator Node.
*/
public boolean setContent() {
if (m_Node == null) {
return false;
}
String mm_buildLogModels = null;
if (m_buildLogModels.getSelectedIndex() == 0) {
mm_buildLogModels = "-M ";
} else if (m_buildLogModels.getSelectedIndex() == 1) {
mm_buildLogModels = " ";
}
m_Node.setParameterValue(SMOOperator.BUILD_LOG_MODELS, mm_buildLogModels);
m_Node.setParameterValue(SMOOperator.C, String.valueOf(m_c.getText().trim()));
m_Node.setParameterValue(SMOOperator.CACHE_SIZE, String.valueOf(m_cacheSize.getText()));
m_Node.setParameterValue(SMOOperator.EPSILON, String.valueOf(m_epsilon.getText()));
m_Node.setParameterValue(SMOOperator.EXPONENT, String.valueOf(m_exponent.getText()));
String mm_featureSpaceNormalization = null;
if (m_featureSpaceNormalization.getSelectedIndex() == 0) {
mm_featureSpaceNormalization = "-F ";
} else if (m_featureSpaceNormalization.getSelectedIndex() == 1) {
mm_featureSpaceNormalization = " ";
}
m_Node.setParameterValue(SMOOperator.FEATRUE_SPACE_NORMOLIZATION, mm_featureSpaceNormalization);
m_Node.setParameterValue(SMOOperator.FILTER_TYPE, String.valueOf(m_filterType.getSelectedIndex()));
m_Node.setParameterValue(SMOOperator.GAMMA, String.valueOf(m_gamma.getText()));
String mm_lower_order_terms = null;
if (m_lowerOrderTerms.getSelectedIndex() == 0) {
mm_lower_order_terms = "-O ";
} else if (m_lowerOrderTerms.getSelectedIndex() == 1) {
mm_lower_order_terms = " ";
}
m_Node.setParameterValue(SMOOperator.LOWER_ORDER_TERMS, mm_lower_order_terms);
m_Node.setParameterValue(SMOOperator.NUM_FOLDERS, String.valueOf(m_numFolds.getText()));
m_Node.setParameterValue(SMOOperator.RANDOM_SEED, String.valueOf(m_randomSeed.getText()));
m_Node.setParameterValue(SMOOperator.TOLERANCE_PARAMETER, String.valueOf(m_toleranceParameters.getText()));
String mm_use_RBF = null;
if (m_useRBF.getSelectedIndex() == 0) {
mm_use_RBF = "-R ";
} else if (m_useRBF.getSelectedIndex() == 1) {
mm_use_RBF = " ";
}
m_Node.setParameterValue(SMOOperator.USE_RBF, mm_use_RBF);
clearOperatorTempResult();
setPropertiesModified();
return true;
}
/**
* Retrieve information from Operator Node and display those values in this
* NavieBayesOperatorProperty.
*/
private void getContent() {
if (m_Node == null)
return;
String blm = (String) m_Node.getParameterValue(SMOOperator.BUILD_LOG_MODELS);
if (blm == null) {
blm = SMOOperator.DEFAULT_BUILD_LOG_MODELS;
}
if (blm == "-M")
m_buildLogModels.setSelectedIndex(0);
else
m_buildLogModels.setSelectedIndex(1);
String cParameter = (String) m_Node.getParameterValue(SMOOperator.C);
if (cParameter == null) {
cParameter = SMOOperator.DEFAULT_C;
}
m_c.setText(cParameter);
String cs = (String) m_Node.getParameterValue(SMOOperator.CACHE_SIZE);
if (cs == null) {
cs = SMOOperator.DEFAULT_CACHE_SIZE;
}
m_cacheSize.setText(cs);
String db = (String) m_Node.getParameterValue(SMOOperator.DEBUG);
if (db == null) {
db = SMOOperator.DEFAULT_DEBUG;
}
if (db == "-D")
m_debug.setSelectedIndex(0);
else
m_debug.setSelectedIndex(1);
String ep = (String) m_Node.getParameterValue(SMOOperator.EPSILON);
if (ep == null) {
ep = SMOOperator.DEFAULT_EPSILON;
}
m_epsilon.setText(ep);
String exp = (String) m_Node.getParameterValue(SMOOperator.EXPONENT);
if (exp == null) {
exp = SMOOperator.DEFAULT_EXPONENT;
}
m_exponent.setText(exp);
String fsn = (String) m_Node.getParameterValue(SMOOperator.FEATRUE_SPACE_NORMOLIZATION);
if (fsn == null) {
fsn = SMOOperator.DEFAULT_FEATRUE_SPACE_NORMOLIZATION;
}
if (fsn == "-F") {
m_featureSpaceNormalization.setSelectedIndex(0);
} else {
m_featureSpaceNormalization.setSelectedIndex(1);
}
String ft = (String) m_Node.getParameterValue(SMOOperator.FILTER_TYPE);
if (ft == null) {
ft = SMOOperator.DEFAULT_FILTER_TYPE;
} else if (ft == "0") {
m_filterType.setSelectedIndex(0);
} else if (ft == "1") {
m_filterType.setSelectedIndex(1);
} else if (ft == "2") {
m_filterType.setSelectedIndex(2);
}
String ga = (String) m_Node.getParameterValue(SMOOperator.GAMMA);
if (ga == null) {
ga = SMOOperator.DEFAULT_GAMMA;
}
m_gamma.setText(ga);
String lot = (String) m_Node.getParameterValue(SMOOperator.LOWER_ORDER_TERMS);
if (lot == null) {
lot = SMOOperator.DEFAULT_LOWER_ORDER_TERMS;
}
if (lot == "-O")
m_lowerOrderTerms.setSelectedIndex(0);
else
m_lowerOrderTerms.setSelectedIndex(1);
String nf = (String) m_Node.getParameterValue(SMOOperator.NUM_FOLDERS);
if (nf == null) {
nf = SMOOperator.DEFAULT_NUM_FOLDERS;
}
m_numFolds.setText(nf);
String rs = (String) m_Node.getParameterValue(SMOOperator.RANDOM_SEED);
if (rs == null) {
rs = SMOOperator.DEFAULT_RANDOM_SEED;
}
m_randomSeed.setText(rs);
String tp = (String) m_Node.getParameterValue(SMOOperator.TOLERANCE_PARAMETER);
if (tp == null) {
tp = SMOOperator.DEFAULT_TOLERANCE_PARAMETER;
}
m_toleranceParameters.setText(tp);
String ur = (String) m_Node.getParameterValue(SMOOperator.USE_RBF);
if (ur == null) {
ur = SMOOperator.DEFAULT_USE_RBF;
}
if (ur == "-R") {
m_useRBF.setSelectedIndex(0);
} else {
m_useRBF.setSelectedIndex(1);
}
}
/**
* Validate input values.
*
* @return true if all values are valid; false otherwise.
*/
private boolean validateProperty() {
return true;
}
/**
* Retrieve information from Operator Node and display those values in this
* ClusteringOperatorProperty.
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -