📄 decisiontreeoperatorproperty.java
字号:
minNodeContent.add(minNode);
m_MinNodeSize.setPreferredSize(DimensionConstants.TEXT_FIELD_DIM);
m_MinNodeSize.setMaximumSize(DimensionConstants.TEXT_FIELD_DIM);
m_MinNodeSize.setMinimumSize(DimensionConstants.TEXT_FIELD_DIM);
minNodeContent.add(m_MinNodeSize);
minNodeContent.setAlignmentX((float) 0.0);
modelSelectionContent.add(minNodeContent);
m_CheckBoxBinarySplits.setAlignmentX((float) 0.0);
modelSelectionContent.add(m_CheckBoxBinarySplits);
modelSelectionContent.add(Box.createRigidArea(new Dimension(0, 5)));
modelSelectionPanel.add(modelSelectionContent);
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(m_PropertyPane, BorderLayout.CENTER);
this.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
this.setSize(288, 335);
getContent();
}
/**
* @see java.awt.event.ActionListener#actionPerformed(ActionEvent)
*/
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();
}
/**
* Validate values entered in the DecisionTreeOperatorProperty UI before
* setting them into the the Operator Node.
*/
private boolean applyContent() {
if (validateProperty()) {
return setContent();
} else {
return false;
}
}
/**
* Validate input values.
*
* @return true if all values are valid; false otherwise.
*/
private boolean validateProperty() {
String message = null;
boolean errFlag = false;
if (m_CheckBoxPruning.isSelected() && m_RadioNormal.isSelected()) {
String confidence = m_ConfidenceThreshold.getText().trim();
if (!ValueValidator.isFloat(confidence)
|| !ValueValidator.largerThan(confidence, 0.0, false)
|| !ValueValidator.smallerThan(confidence, 1.0, false)) {
m_PropertyPane.setSelectedIndex(0);
m_ConfidenceThreshold.requestFocus();
m_ConfidenceThreshold.selectAll();
message = Resource.srcStr("ConfidenceThreshold");
m_MessageDialog.showWarning(message, Resource.srcStr("Invalidinput"));
return false;
}
}
if (m_CheckBoxPruning.isSelected() && m_RadioReducedError.isSelected()) {
String folds = m_NumFolds.getText().trim();
if (ValueValidator.largerThan(folds, Integer.MAX_VALUE, false)) {
message = Resource.srcStr("FoldsNumber")
+ Integer.MAX_VALUE;
errFlag = true;
} else if (ValueValidator.smallerThan(folds, 1, true)) {
message = Resource.srcStr("FoldsNumber1");
errFlag = true;
} else if (!ValueValidator.isInteger(folds)) {
message = Resource.srcStr("FoldsNUmber2")
+ Integer.MAX_VALUE;
errFlag = true;
}
if (errFlag) {
m_PropertyPane.setSelectedIndex(0);
m_NumFolds.requestFocus();
m_NumFolds.selectAll();
m_MessageDialog.showWarning(message, Resource.srcStr("Invalidinput"));
return false;
}
String seeds = m_RandomSeed.getText().trim();
if (ValueValidator.largerThan(seeds, Integer.MAX_VALUE, false)) {
message = "Random seed should be an integer samller than "
+ Integer.MAX_VALUE;
errFlag = true;
} else if (ValueValidator.smallerThan(seeds, Integer.MIN_VALUE,
true)) {
message = Resource.srcStr("RandomSeed1")
+ Integer.MIN_VALUE;
errFlag = true;
} else if (!ValueValidator.isInteger(seeds)) {
message = Resource.srcStr("RandomSeed2")
+ Integer.MIN_VALUE + Resource.srcStr("SmallerThan")
+ Integer.MAX_VALUE;
errFlag = true;
}
if (errFlag) {
m_PropertyPane.setSelectedIndex(0);
m_RandomSeed.requestFocus();
m_RandomSeed.selectAll();
m_MessageDialog.showWarning(message, Resource.srcStr("Invalidinput"));
return false;
}
}
String min = m_MinNodeSize.getText().trim();
if (ValueValidator.largerThan(min, Integer.MAX_VALUE, false)) {
message = Resource.srcStr("NodeSize")
+ Integer.MAX_VALUE;
errFlag = true;
} else if (ValueValidator.smallerThan(min, 0, false)) {
message = Resource.srcStr("NodeSize1");
errFlag = true;
} else if (!ValueValidator.isInteger(min)) {
message = Resource.srcStr("NodeSize2")
+ Integer.MAX_VALUE;
errFlag = true;
}
if (errFlag) {
m_PropertyPane.setSelectedIndex(1);
m_RandomSeed.requestFocus();
m_RandomSeed.selectAll();
m_MessageDialog.showWarning(message, Resource.srcStr("Invalidinput"));
return false;
}
return true;
}
/**
* Set values input in this DecisionTreeOperatorProperty to the Operator
* Node.
*/
public boolean setContent() {
if (m_Node == null) {
return false;
}
m_Node.setParameterValue(DecisionTreeOperator.PRUNING, String
.valueOf(m_CheckBoxPruning.isSelected()));
if (m_CheckBoxPruning.isSelected()) {
m_Node.removeParameterValue(DecisionTreeOperator.PRUNING_METHOD);
m_Node.removeParameterValue(DecisionTreeOperator.CONFIDENCE);
m_Node.removeParameterValue(DecisionTreeOperator.SUBTREE);
m_Node.removeParameterValue(DecisionTreeOperator.FOLDS);
m_Node.removeParameterValue(DecisionTreeOperator.SEED);
}
if (m_CheckBoxPruning.isSelected() && m_RadioNormal.isSelected()) {
m_Node.setParameterValue(DecisionTreeOperator.PRUNING_METHOD,
DecisionTreeOperator.VALUE_NORMAL_PRUNING);
m_Node.setParameterValue(DecisionTreeOperator.CONFIDENCE,
m_ConfidenceThreshold.getText().trim());
m_Node.setParameterValue(DecisionTreeOperator.SUBTREE, String
.valueOf(m_CheckBoxSubtreeRaising.isSelected()));
m_Node.removeParameterValue(DecisionTreeOperator.FOLDS);
m_Node.removeParameterValue(DecisionTreeOperator.SEED);
} else if (m_CheckBoxPruning.isSelected()
&& m_RadioReducedError.isSelected()) {
m_Node.setParameterValue(DecisionTreeOperator.PRUNING_METHOD,
DecisionTreeOperator.VALUE_REDUCED_ERROR_PRUNING);
m_Node.removeParameterValue(DecisionTreeOperator.CONFIDENCE);
m_Node.removeParameterValue(DecisionTreeOperator.SUBTREE);
m_Node.setParameterValue(DecisionTreeOperator.FOLDS, m_NumFolds
.getText().trim());
m_Node.setParameterValue(DecisionTreeOperator.SEED, m_RandomSeed
.getText().trim());
}
m_Node.setParameterValue(DecisionTreeOperator.CLEANUP, String
.valueOf(m_CheckBoxCleanup.isSelected()));
m_Node.setParameterValue(DecisionTreeOperator.NODE_SIZE, m_MinNodeSize
.getText().trim());
m_Node.setParameterValue(DecisionTreeOperator.BINARY_SPLITS, String
.valueOf(m_CheckBoxBinarySplits.isSelected()));
//Operator op = m_ParentPanel.getOperator(m_NodeID);
//((DecisionTreeOperator) m_Operator).clearResult();
setPropertiesModified();
clearOperatorTempResult();
//m_ParentPanel.getCaseWindow().setModified(true);
return true;
}
/**
* Retrieve information from Operator Node and display those values in this
* DecisionTreeOperatorProperty.
*/
public void getContent() {
if (m_Node == null)
return;
String pruningString = (String) m_Node
.getParameterValue(DecisionTreeOperator.PRUNING);
boolean pruning = true;
if (pruningString == null)
pruningString = DecisionTreeOperator.DEFAULT_PRUNING;
else
pruning = new Boolean(pruningString).booleanValue();
m_CheckBoxPruning.setSelected(!pruning);
m_CheckBoxPruning.setSelected(pruning);
String pruningMethod = (String) m_Node
.getParameterValue(DecisionTreeOperator.PRUNING_METHOD);
if (pruningMethod == null)
pruningMethod = DecisionTreeOperator.DEFAULT_PRUNING_METHOD;
if (pruningMethod.equals(DecisionTreeOperator.VALUE_NORMAL_PRUNING))
m_RadioNormal.setSelected(true);
else
m_RadioReducedError.setSelected(true);
String confidence = (String) m_Node
.getParameterValue(DecisionTreeOperator.CONFIDENCE);
if (confidence == null || m_RadioReducedError.isSelected())
confidence = DecisionTreeOperator.DEFAULT_CONFIDENCE;
m_ConfidenceThreshold.setText(confidence);
String subtreeString = (String) m_Node
.getParameterValue(DecisionTreeOperator.SUBTREE);
if (subtreeString == null || m_RadioReducedError.isSelected())
subtreeString = DecisionTreeOperator.DEFAULT_SUBTREE;
boolean subtree = false;
if (subtreeString.equals(String.valueOf(true)))
subtree = true;
m_CheckBoxSubtreeRaising.setSelected(subtree);
String folds = (String) m_Node.getParameterValue(DecisionTreeOperator.FOLDS);
if (folds == null || m_RadioNormal.isSelected())
folds = DecisionTreeOperator.DEFAULT_FOLDS;
m_NumFolds.setText(folds);
String seed = (String) m_Node.getParameterValue(DecisionTreeOperator.SEED);
if (seed == null || m_RadioNormal.isSelected())
seed = DecisionTreeOperator.DEFAULT_SEED;
m_RandomSeed.setText(seed);
String cleanUpString = (String) m_Node
.getParameterValue(DecisionTreeOperator.CLEANUP);
if (cleanUpString == null)
cleanUpString = DecisionTreeOperator.DEFAULT_CLEANUP;
boolean cleanUp = false;
if (cleanUpString.equals(String.valueOf(true)))
cleanUp = true;
m_CheckBoxCleanup.setSelected(cleanUp);
String nodeSize = (String) m_Node
.getParameterValue(DecisionTreeOperator.NODE_SIZE);
if (nodeSize == null)
nodeSize = DecisionTreeOperator.DEFAULT_NODE_SIZE;
m_MinNodeSize.setText(nodeSize);
String binarySplitsString = (String) m_Node
.getParameterValue(DecisionTreeOperator.BINARY_SPLITS);
if (binarySplitsString == null)
binarySplitsString = DecisionTreeOperator.DEFAULT_BINARY_SPLITS;
boolean binarySplits = false;
if (binarySplitsString.equals(String.valueOf(true)))
binarySplits = true;
m_CheckBoxBinarySplits.setSelected(binarySplits);
}
public void resetLocale() {
m_CheckBoxPruning.setText(Resource.srcStr("m_CheckBoxPruning"));
m_RadioNormal.setText(Resource.srcStr("m_CheckBoxPruning"));
m_CheckBoxSubtreeRaising.setText(Resource.srcStr("m_CheckBoxSubtreeRaising"));
m_CheckBoxCleanup.setText(Resource.srcStr("m_CheckBoxCleanup"));
m_CheckBoxBinarySplits.setText(Resource.srcStr("m_CheckBoxBinarySplits"));
//title
String title = getTitle();
int index = title.indexOf('[');
title = Resource.srcStr("DecisionTree")+title.substring(index);
setTitle(title);
m_PropertyPane.setTitleAt(0, Resource.srcStr("m_TreeTab"));
m_PropertyPane.setTitleAt(1, Resource.srcStr("m_ModelTab"));
((TitledBorder)((CompoundBorder)((CompoundBorder)treeSettingsPanel.getBorder()).getOutsideBorder()).getInsideBorder()).setTitle(Resource.srcStr("DecisionTree"));
((TitledBorder)((CompoundBorder)((CompoundBorder)modelSelectionPanel.getBorder()).getOutsideBorder()).getInsideBorder()).setTitle(Resource.srcStr("DecisionTree"));
confidenceThreshold.setText(Resource.srcStr("DECISIONTREE_CONFIDENCE_THRESHOLD"));
numFolds.setText(Resource.srcStr("numFolds"));
randomSeed.setText(Resource.srcStr("randomSeed"));
minNode.setText(Resource.srcStr("NodeMinSize"));
m_ButtonReset.setText(Resource.srcStr("m_ButtonReset"));
m_ButtonSave.setText(Resource.srcStr("m_ButtonApply"));
m_ButtonCancel.setText(Resource.srcStr("m_ButtonClose"));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -