I try to add loadAdditionalSettingsFrom, but the problem persist... When I link the input port to File Reader and I click Configure on my Node, The dialog is empty. What's wrong?
This is my implementation for NodeDialog
public class Prova_dialogNodeDialog extends DefaultNodeSettingsPane {
private final SettingsModelInteger num_col=new SettingsModelInteger(Prova_dialogNodeModel.CFG_KEY_NR_OF_COL,0);
/**
* New pane for configuring the Prova_dialog node.
*/
protected Prova_dialogNodeDialog() {
DialogComponentColumnNameSelection[] DCCS_group=new DialogComponentColumnNameSelection[num_col.getIntValue()];
for(int i=0;i<num_col.getIntValue();i++){
DCCS_group[i]=new DialogComponentColumnNameSelection(new SettingsModelString("SMS"+i,"Select a column"),"Selezionare un classificatore",0,DoubleValue.class);
}
}
public void loadAdditionalSettingsFrom(NodeSettingsRO settings, DataTableSpec[] specs){
try{
num_col.setIntValue(specs[0].getNumColumns());
System.out.println(num_col.getIntValue());
}catch(Exception e){}
}
}
and, this is my implementation for NodeModel
public class Prova_dialogNodeModel extends NodeModel {
public static final String CFG_KEY_NR_OF_COL="NumeroDiColonne";
private final SettingsModelInteger num_col=new SettingsModelInteger(Prova_dialogNodeModel.CFG_KEY_NR_OF_COL,0);
/**
* Constructor for the node model.
*/
protected Prova_dialogNodeModel() {
// TODO: Specify the amount of input and output ports needed.
super(1, 1);
}
/**
* {@inheritDoc}
*/
@Override
protected BufferedDataTable[] execute(final BufferedDataTable[] inData,
final ExecutionContext exec) throws Exception {
DataTableSpec DTS=inData[0].getDataTableSpec();
num_col.setIntValue(DTS.getNumColumns());
// TODO: Return a BufferedDataTable for each output port
return new BufferedDataTable[]{};
}
/**
* {@inheritDoc}
*/
@Override
protected void reset() {
// TODO: generated method stub
}
/**
* {@inheritDoc}
*/
@Override
protected DataTableSpec[] configure(final DataTableSpec[] inSpecs)
throws InvalidSettingsException {
// TODO: generated method stub
return new DataTableSpec[]{null};
}
/**
* {@inheritDoc}
*/
@Override
protected void saveSettingsTo(final NodeSettingsWO settings) {
// TODO: generated method stub
num_col.saveSettingsTo(settings);
}
/**
* {@inheritDoc}
*/
@Override
protected void loadValidatedSettingsFrom(final NodeSettingsRO settings)
throws InvalidSettingsException {
// TODO: generated method stub
num_col.loadSettingsFrom(settings);
}
/**
* {@inheritDoc}
*/
@Override
protected void validateSettings(final NodeSettingsRO settings)
throws InvalidSettingsException {
// TODO: generated method stub
num_col.validateSettings(settings);
}
/**
* {@inheritDoc}
*/
@Override
protected void loadInternals(final File internDir,
final ExecutionMonitor exec) throws IOException,
CanceledExecutionException {
// TODO: generated method stub
}
/**
* {@inheritDoc}
*/
@Override
protected void saveInternals(final File internDir,
final ExecutionMonitor exec) throws IOException,
CanceledExecutionException {
// TODO: generated method stub
}
}
Note that the System.out.println that I insert in loadAdditionalSettingsFrom method print in console the correct number of columns
Please Help, i'm going in crazy...
I'm sorry for immense thread