use of org.knime.base.node.preproc.filter.row.rowfilter.RowNoRowFilter in project knime-core by knime.
the class RowNoRowFilterPanel method loadSettingsFromFilter.
/**
* {@inheritDoc}
*/
@Override
public void loadSettingsFromFilter(final IRowFilter filter) throws InvalidSettingsException {
if (!(filter instanceof RowNoRowFilter)) {
throw new InvalidSettingsException("Range filter can only load " + "settings from a RowNumberFilter");
}
RowNoRowFilter rowNumberFilter = (RowNoRowFilter) filter;
// do some consistency checks
long first = rowNumberFilter.getFirstRow();
long last = rowNumberFilter.getLastRow();
if (first < 0) {
throw new InvalidSettingsException("The RowNumberFilter range " + "cannot start at a row number less than 1.");
}
if ((last != RowNoRowFilter.EOT) && (last < first)) {
throw new InvalidSettingsException("The end of the RowNumberFilter" + " range must be greater than the start.");
}
// the filter contains index values (starting from 0)
// the spinner show the numbers, so we need to add 1 here.
m_first.setValue(Long.valueOf(first + 1));
// en/disables
m_tilEOT.setSelected(last == RowNoRowFilter.EOT);
// m_last
if (last != RowNoRowFilter.EOT) {
m_last.setValue(Long.valueOf(last + 1));
}
updateErrText();
}
use of org.knime.base.node.preproc.filter.row.rowfilter.RowNoRowFilter in project knime-core by knime.
the class RowFilterNodeDialogPane method loadSettingsFrom.
/**
* {@inheritDoc}
*/
@Override
protected void loadSettingsFrom(final NodeSettingsRO settings, final DataTableSpec[] specs) throws NotConfigurableException {
if ((specs[0] == null) || (specs[0].getNumColumns() < 1)) {
throw new NotConfigurableException("Cannot be configured without" + " input table");
}
// remove the old filter panels, if any
if (m_rangePanel != null) {
m_filterPanel.remove(m_rangePanel);
}
if (m_rowIDPanel != null) {
m_filterPanel.remove(m_rowIDPanel);
}
if (m_colValPanel != null) {
m_filterPanel.remove(m_colValPanel);
}
// now create new filter panels
m_rangePanel = new RowNoRowFilterPanel();
m_rowIDPanel = new RowIDRowFilterPanel();
m_colValPanel = new ColumnRowFilterPanel(this, specs[0]);
/*
* now read the filters. We support three different filters:
* RowIDFilter, AttrValfilter, and RowNumberFilter. But only one at a
* time.
*/
IRowFilter filter = null;
try {
// get the filter
filter = RowFilterFactory.createRowFilter(settings.getNodeSettings(RowFilterNodeModel.CFGFILTER));
} catch (InvalidSettingsException ise) {
// silently ignore invalid filters.
}
String actionCommand = "colval";
if (filter == null) {
// set the default
m_colValInclRadio.setSelected(true);
filterSelectionChanged("colval");
return;
}
if (filter instanceof ColValFilterOldObsolete) {
// support the obsolete filter for backward compatibility
ColValFilterOldObsolete f = (ColValFilterOldObsolete) filter;
actionCommand = "colval";
// activate the corresponding radio button
if (f.includeMatchingLines()) {
m_colValInclRadio.setSelected(true);
} else {
m_colValExclRadio.setSelected(true);
}
try {
m_colValPanel.loadSettingsFromFilter(f);
} catch (InvalidSettingsException ise) {
// ignore failure
}
} else if (filter instanceof AttrValueRowFilter) {
// this covers all the attribute value filters:
// range, string compare, missing value filter
AttrValueRowFilter f = (AttrValueRowFilter) filter;
actionCommand = "colval";
// activate the corresponding radio button
if (f.getInclude()) {
m_colValInclRadio.setSelected(true);
} else {
m_colValExclRadio.setSelected(true);
}
try {
m_colValPanel.loadSettingsFromFilter(f);
} catch (InvalidSettingsException ise) {
// ignore failure
}
} else if (filter instanceof RowIDRowFilter) {
RowIDRowFilter f = (RowIDRowFilter) filter;
actionCommand = "id";
// activate the corresponding radio button
if (f.getInclude()) {
m_rowIDInclRadio.setSelected(true);
} else {
m_rowIDExclRadio.setSelected(true);
}
try {
m_rowIDPanel.loadSettingsFromFilter(f);
} catch (InvalidSettingsException ise) {
// ignore failure
}
} else if (filter instanceof RowNoRowFilter) {
RowNoRowFilter f = (RowNoRowFilter) filter;
actionCommand = "range";
// activate the corresponding radio button
if (f.getInclude()) {
m_rangeInclRadio.setSelected(true);
} else {
m_rangeExclRadio.setSelected(true);
}
try {
m_rangePanel.loadSettingsFromFilter(f);
} catch (InvalidSettingsException ise) {
// ignore failure
}
} else {
// we silently ignore unsupported filter and leave default settings.
}
filterSelectionChanged(actionCommand);
}
Aggregations