📄 linearregressionoperatorproperty.java
字号:
package eti.bi.alphaminer.patch.standard.operation.property;
// @author XiaoguangXu HITSZ-ICE
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.LinearRegressionOperator;
import eti.bi.common.Locale.Resource;
import eti.bi.exception.SysException;
public class LinearRegressionOperatorProperty extends OperatorProperty{
private static final long serialVersionUID = -28596853410953L;
/* UI controls */
private JButton m_ButtonReset = new JButton();
private JButton m_ButtonSave = new JButton();
private JButton m_ButtonCancel = new JButton();
private String[] v_eliminateColinearAttribution = { "True", "False" };
private String[] v_debug = { "True", "False" };
private String[] v_attributeSelection = { "M5 method", "No attribution selection", "Greed method" };
private JComboBox m_debug = new JComboBox(v_debug);
private JComboBox m_attributeSelecte = new JComboBox(v_attributeSelection);
private JComboBox m_eliminateColinearAttribution = new JComboBox(v_eliminateColinearAttribution);
private JTextField m_ridge = new JTextField();
public LinearRegressionOperatorProperty(String a_CaseID, String a_NodeID, String a_Name, INodeInfo a_NodeInfo,
ICaseHandler a_CaseHandler) throws SysException {
super(a_CaseID, a_NodeID, "LinearRegression [" + a_NodeID + "]", a_NodeInfo, a_CaseHandler);
createLinearRegressionOperatorProperty();
this.setTitle(Resource.srcStr("LinearRegression") + " [" + 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 createLinearRegressionOperatorProperty() {
JPanel propertyPanel = new JPanel();
JPanel buttonPanel = new JPanel();
/* propertyPanel */
propertyPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(Resource
.srcStr("LinearRegression")), BorderFactory.createEmptyBorder(2, 4, 0, 6)));
JLabel attributeSelection = new JLabel(Resource.srcStr("attributeSelection"));
JLabel debug = new JLabel(Resource.srcStr("debug"));
JLabel eliminateColinearAttributon = new JLabel(Resource.srcStr("eliminateColinearAttribution"));
JLabel ridge = new JLabel(Resource.srcStr("ridge"));
int leftMargin = 4;
attributeSelection.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
debug.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
eliminateColinearAttributon.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
ridge.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
propertyPanel.setLayout(new GridLayout(4, 2, 0, 5));
propertyPanel.add(attributeSelection);
propertyPanel.add(m_attributeSelecte);
propertyPanel.add(debug);
propertyPanel.add(m_debug);
propertyPanel.add(eliminateColinearAttributon);
propertyPanel.add(m_eliminateColinearAttribution);
propertyPanel.add(ridge);
propertyPanel.add(m_ridge);
/* 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,240);
getContent();
}
public boolean setContent() {
if (m_Node == null) {
return false;
}
m_Node.setParameterValue(LinearRegressionOperator.ATTRIBUTE_SELECTION_METHOD, String.valueOf(m_attributeSelecte.getSelectedIndex()));
String mm_debug = null;
if (m_debug.getSelectedIndex() == 0) {
mm_debug = " -D ";
} else if (m_debug.getSelectedIndex() == 1) {
mm_debug = " ";
}
m_Node.setParameterValue(LinearRegressionOperator.DEBUG, mm_debug);
String mm_eliminateColinearAttribution = null;
if (m_eliminateColinearAttribution.getSelectedIndex() == 0) {
mm_eliminateColinearAttribution = " -C ";
} else if (m_eliminateColinearAttribution.getSelectedIndex() == 1) {
mm_eliminateColinearAttribution = " ";
}
m_Node.setParameterValue(LinearRegressionOperator.ELIMINATE_COLINEAR_ATTRIBUTES, mm_eliminateColinearAttribution);
m_Node.setParameterValue(LinearRegressionOperator.RIDGE, String.valueOf(m_ridge.getText().trim()));
clearOperatorTempResult();
setPropertiesModified();
return true;
}
private void getContent() {
if (m_Node == null)
return;
String as = (String) m_Node.getParameterValue(LinearRegressionOperator.ATTRIBUTE_SELECTION_METHOD);
if (as == null) {
as = LinearRegressionOperator.DEFAULT_ATTRIBUTE_SELECTION_METHOD;
//m_attributeSelecte.setSelectedIndex(0);
} else if (as == "0") {
m_attributeSelecte.setSelectedIndex(0);
} else if (as == "1") {
m_attributeSelecte.setSelectedIndex(1);
} else if (as == "2") {
m_attributeSelecte.setSelectedIndex(2);
}
String de= (String) m_Node.getParameterValue(LinearRegressionOperator.DEBUG);
if (de == null) {
de = LinearRegressionOperator.DEFAULT_DEBUG;
}
if (de == "-D")
m_debug.setSelectedIndex(0);
else
m_debug.setSelectedIndex(1);
String ea = (String) m_Node.getParameterValue(LinearRegressionOperator.ELIMINATE_COLINEAR_ATTRIBUTES);
if (ea == null) {
ea = LinearRegressionOperator.DEFAULT_ELIMINATE_COLINEAR_ATTRIBUTES;
}
if (ea == "-C")
m_debug.setSelectedIndex(0);
else
m_debug.setSelectedIndex(1);
String ri = (String) m_Node.getParameterValue(LinearRegressionOperator.RIDGE);
if (ri == null) {
ri = LinearRegressionOperator.DEFAULT_RIDGE;
}
m_ridge.setText(ri);
}
private boolean validateProperty() {
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -