📄 selectoperatorproperty.java
字号:
// create Popup menu
m_MenuItemClear = new JMenuItem(Resource.srcStr("m_MenuItemClear"));
//<<added by Joyce 08/03/2005
m_MenuItemClear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (m_Table.getRowCount() > 0) {
for (int i = 0; i < m_Table.getRowCount(); i++) {
m_Table.getModel().setValueAt(new Boolean(false), i, 1);
}
}
}
});
//m_MenuItem.addActionListener(this); remarked by Joyce 08/03/2005
m_Menu.add(m_MenuItemClear);
m_MenuItemSelect = new JMenuItem(Resource.srcStr("m_MenuItemSelect"));
//<<added by Joyce 08/03/2005
m_MenuItemSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (m_Table.getRowCount() > 0) {
for (int i = 0; i < m_Table.getRowCount(); i++) {
m_Table.getModel().setValueAt(new Boolean(true), i, 1);
}
}
}
});
//>>>
//m_MenuItemSelect.addActionListener(this);remarked by Joyce 08/03/2005
m_Menu.add(m_MenuItemSelect);
m_Menu.setFont(m_AttributeJCB.getFont());
m_Menu.setPopupSize(new Dimension(95, 40));
MouseListener popupListener = new PopupListener(m_Menu);
m_Table.addMouseListener(popupListener);
//>>
JScrollPane m_mappingScrollPane = new JScrollPane(m_Table,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//tempValueCenterPanel.setBorder( new EmptyBorder(0, 0, 7, 0));
tempValueCenterPanel.add(m_mappingScrollPane);
tempValueCenterPanel.setBorder(new EmptyBorder(0, 3, 0, 0));
// put to one panel
tempValuePanel.add(tempValueNorthPanel, BorderLayout.NORTH);
tempValuePanel.add(tempValueCenterPanel, BorderLayout.CENTER);
// tempValuePanel.add(tempValueSouthPanel, BorderLayout.SOUTH);
//
propertyByValuePanel.setBorder(new EmptyBorder(4, 0, 7, 0));
propertyByValuePanel.add(new JLabel(" "), BorderLayout.WEST);
propertyByValuePanel.add(tempValuePanel, BorderLayout.CENTER);
//===
m_ButtonReset.setText(Resource.srcStr("m_ButtonReset"));
m_ButtonApply.setText(Resource.srcStr("m_ButtonApply"));
m_ButtonClose.setSelected(false);
m_ButtonClose.setText(Resource.srcStr("m_ButtonClose"));
buttonPanel.add(m_ButtonApply);
buttonPanel.add(m_ButtonReset);
buttonPanel.add(m_ButtonClose);
//m_ButtonSelect.addActionListener(this);
m_ButtonReset.addActionListener(this);
m_ButtonApply.addActionListener(this);
m_ButtonClose.addActionListener(this);
m_RadioByRange.addActionListener(this);
m_RadioByValue.addActionListener(this);
// Keep and Remove panel
JPanel keepAndRemovePanel = new JPanel();
keepAndRemovePanel.setBorder(new EmptyBorder(0, 5, 0, 0));
keepAndRemovePanel.setLayout(new BoxLayout(keepAndRemovePanel,
BoxLayout.LINE_AXIS));
keepAndRemovePanel.add(Box.createRigidArea(new Dimension(12, 0)));
keepAndRemovePanel.add(m_RadioKeep);
keepAndRemovePanel.add(Box.createRigidArea(new Dimension(12, 0)));
keepAndRemovePanel.add(m_RadioRemove);
m_KeepGroup.add(m_RadioKeep);
m_KeepGroup.add(m_RadioRemove);
// m_RadioRangeKeep.addActionListener(this);
// m_RadioRangeRemove.addActionListener(this);
//
// m_RadioValueKeep.addActionListener(this);
// m_RadioValueRemove.addActionListener(this);
// m_MissingValCBox.addActionListener(this);
m_AttributeJCB.addActionListener(this);
//-- default enabled setting
m_RadioKeep.setSelected(true);
// m_RadioValueKeep.setSelected(true);
m_RadioByRange.setSelected(true);
//--
JPanel tempPanel = new JPanel(new BorderLayout());
this.getContentPane().add(propertyByRangePanel, BorderLayout.NORTH);
this.getContentPane().add(propertyByValuePanel, BorderLayout.CENTER);
tempPanel.add(keepAndRemovePanel, BorderLayout.NORTH);
tempPanel.add(buttonPanel, BorderLayout.CENTER);
this.getContentPane().add(tempPanel, BorderLayout.SOUTH);
this.setSize(300, 420);
try {
initContent();
} catch (MiningException e) {
throw new SysException(e);
}
getContent();
}
/**
* @see java.awt.event.ActionListener#actionPerformed(ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
if (e.getSource() == m_ButtonApply) {
if (setContent()) {
m_ParameterChanged = true;
// m_ParentPanel.getCaseWindow().setModified(true);
setPropertiesModified();
}
} else if (e.getSource() == m_ButtonReset) {
getContent();
} else if (e.getSource() == m_ButtonClose) {
close();
} else if (e.getSource() == m_RadioByRange) {
setEnabledByRange(m_RadioByRange.isSelected());
} else if (e.getSource() == m_RadioByValue) {
setEnabledByRange(m_RadioByRange.isSelected());
} else if (e.getSource() == m_AttributeJCB) {
int attr = m_AttributeJCB.getSelectedIndex();
String attrName = (String) m_AttributeJCB.getSelectedItem();
if (attr > 0) {
MiningAttribute[] miningAttributes = m_MetaData
.getAttributesArray();
if (miningAttributes[attr - 1] instanceof CategoricalAttribute) {
setEnabledNumericAttribute(false);
m_Table.setModel((SelectTableModel) m_TableModel
.get(attrName));
} else {
setEnabledNumericAttribute(true);
m_Table.setModel(new SelectTableModel());
}
}
}
}
private boolean validateProperty() {
String message = "";
boolean setFocus = false;
// by range
if (m_RadioByRange.isSelected()) {
String from = m_FromTF.getText().trim();
String to = m_ToTF.getText().trim();
// << case for null value
if (m_MetaData == null || m_Node == null) {
if (from.length() > 0) {
if (!ValueValidator.isInteger(from)) {
m_FromTF.requestFocus();
setFocus = true;
m_FromTF.setText(null);
message += Resource.srcStr("LowerRangeMessage")+" 0\n";
m_MessageDialog.showWarning(message,
Resource.srcStr("InvalidValueMessage"));
return false;
}
// if (!ValueValidator.isInteger(from) ){
// m_FromTF.requestFocus();
// setFocus = true;
// m_FromTF.setText(null);
// message += "The lower range value out of range\n";
// MessageDialog.showWarning(message, "Invalid input
// value");
// return false;
// }
if (!ValueValidator.largerThan(from, 1, true)) {
m_FromTF.requestFocus();
setFocus = true;
m_FromTF.setText(null);
message += Resource.srcStr("LowerRangeMessage")+" 1\n";
m_MessageDialog.showWarning(message,
Resource.srcStr("InvalidValueMessage"));
return false;
}
}
if (to.length() > 0) {
if (!ValueValidator.isInteger(to)) {
m_ToTF.requestFocus();
setFocus = true;
m_ToTF.setText(null);
message += Resource.srcStr("UpperRangeMessage")
+ (from.length() > 0 ? from : "0") + "\n";
m_MessageDialog.showWarning(message,
Resource.srcStr("InvalidValueMessage"));
return false;
}
// if (!ValueValidator.isInteger(to)){
// m_ToTF.requestFocus();
// setFocus = true;
// m_ToTF.setText(null);
// message += "The upper range value out of range";
// MessageDialog.showWarning(message, "Invalid input
// value");
// return false;
// }
if (!ValueValidator.largerThan(to, new Integer(from)
.intValue(), true)) {
m_ToTF.requestFocus();
setFocus = true;
m_ToTF.setText(null);
message += Resource.srcStr("UpperRangeMessage")
+ (from.length() > 0 ? from : "0") + "\n";
m_MessageDialog.showWarning(message,
Resource.srcStr("InvalidValueMessage"));
return false;
}
if (to.length() > 0 && from.length() > 0) {
}
}
return true;
}
if (m_msd.getVectorsNumber() <= 0) {
m_FromTF.requestFocus();
setFocus = true;
m_FromTF.setText(null);
m_ToTF.setText(null);
message += Resource.srcStr("DataSetMessage");
m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
return false;
}
if (!ValueValidator.isInteger(to)
|| !ValueValidator.largerThan(to, 1, true)
|| !ValueValidator.smallerThan(to,
m_msd.getVectorsNumber(), true)) {
m_ToTF.requestFocus();
setFocus = true;
m_ToTF.setText(null);
message += Resource.srcStr("UpperRangeMessage1")
+ m_msd.getVectorsNumber() + "\n";
m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
return false;
}
if (!ValueValidator.isInteger(from)
|| !ValueValidator.largerThan(from, 1, true)
|| !ValueValidator.isInteger(to)
|| !ValueValidator.smallerThan(from, Integer.parseInt(to),
true)) {
m_FromTF.requestFocus();
setFocus = true;
m_FromTF.setText(null);
if (ValueValidator.isNumeric(to)) {
message += Resource.srcStr("LowerRangeMessage1")
+ to + "\n";
} else {
message += Resource.srcStr("LowerRangeMessage1")
+ m_msd.getVectorsNumber() + "\n";
}
m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
return false;
}
} else {
// by value
if (m_AttributeJCB.getSelectedIndex() <= 0) {
if (!setFocus) {
m_AttributeJCB.requestFocus();
setFocus = true;
}
message += Resource.srcStr("SelectAttribute");
m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
return false;
}
String attrName = ((String) m_AttributeJCB.getSelectedItem())
.trim();
MiningAttribute mAtt = m_MetaData.getMiningAttribute(attrName);
if (mAtt instanceof NumericAttribute) {
//Numeric attribute
if (m_SmallerThanTF.isEnabled()) {
String smallerThan = m_SmallerThanTF.getText().trim();
if (!ValueValidator.isDouble(smallerThan)) {
m_SmallerThanTF.requestFocus();
setFocus = true;
m_SmallerThanTF.setText(null);
message += Resource.srcStr("SmallerThanMessage");
m_MessageDialog.showWarning(message,
Resource.srcStr("InvalidValueMessage"));
return false;
}
}
}
}
// if(message.equals(""))
return true;
// else {
// MessageDialog.showWarning(message, "Invalid input values");
// return false;
// }
}
protected void initContent() throws MiningException
{
if (m_ParentOperators.size()>0)
{
Operator parentOp = (Operator)m_ParentOperators.elementAt(0);
if (parentOp.getOutputBIObject() != null
&& parentOp.getOutputBIObject().getBIData() != null) {
m_MetaData = parentOp.getOutputBIObject().getBIData().getMetaData();
m_msd = parentOp.getOutputBIObject().getBIData()
.getMiningStoredData();
}
if (m_MetaData == null) {
throw new MiningException("Meta data of the node is null");
}
if (m_msd == null) {
throw new MiningException("Mining stored data of the node is null");
}
}
initMappingTable();
}
private void getContent() {
/*
* Set values independent of parent
*/
String value = null;
int mode = SelectOperator.BY_RANGE;
//set value get form the node
value = (String) m_Node.getParameterValue("mode");
if (value != null) {
mode = Integer.parseInt(value);
}
if (mode == SelectOperator.BY_RANGE) {
m_RadioByRange.setSelected(true);
setEnabledByRange(true);
} else if (mode == SelectOperator.BY_VALUE) {
m_RadioByValue.setSelected(true);
setEnabledByRange(false);
}
value = (String) m_Node.getParameterValue("from");
if (value != null)
m_FromTF.setText(value);
else
m_FromTF.setText("");
value = (String) m_Node.getParameterValue("to");
if (value != null)
m_ToTF.setText(value);
else
m_ToTF.setText("");
value = (String) m_Node.getParameterValue("keep");
if (value != null && value.equalsIgnoreCase("false"))
m_RadioRemove.setSelected(true);
else
m_RadioKeep.setSelected(true);
value = (String) m_Node.getParameterValue("smallerThan");
if (value != null)
m_SmallerThanTF.setText(value);
else
m_SmallerThanTF.setText("");
value = (String) m_Node.getParameterValue("missingValue");
if (value != null && value.equalsIgnoreCase("true"))
m_MissingValCBox.setSelected(true);
else
m_MissingValCBox.setSelected(false);
// value = m_Node.getParameterValue("valKeep");
// if (value != null && value.equalsIgnoreCase("false"))
// m_RadioValueRemove.setSelected(true);
// else
// m_RadioValueKeep.setSelected(true);
m_Table.setModel(new SelectTableModel());
/*
* Set values dependent on parent
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -