package de.mpicbg.knime.scripting.python.plots; import de.mpicbg.knime.scripting.python.PythonScriptingBundleActivator; import de.mpicbg.knime.scripting.python.prefs.PythonPreferenceInitializer; import org.knime.core.node.*; import org.knime.core.node.defaultnodesettings.SettingsModelBoolean; import org.knime.core.node.defaultnodesettings.SettingsModelInteger; import org.knime.core.node.defaultnodesettings.SettingsModelIntegerBounded; import org.knime.core.node.defaultnodesettings.SettingsModelString; /** * @author Holger Brandl */ public class PythonPlotNodeFactory extends NodeFactory<PythonPlotNodeModel> { @Override public PythonPlotNodeModel createNodeModel() { return new PythonPlotNodeModel(); } @Override public int getNrNodeViews() { return 1; } @Override public NodeView<PythonPlotNodeModel> createNodeView(final int viewIndex, final PythonPlotNodeModel nodeModel) { return new PythonPlotNodeView(nodeModel); } @Override public boolean hasDialog() { return true; } @Override public NodeDialogPane createNodeDialogPane() { String templateResources = PythonScriptingBundleActivator.getDefault().getPreferenceStore().getString(PythonPreferenceInitializer.PYTHON_PLOT_TEMPLATE_RESOURCES); return new PythonPlotNodeDialog(templateResources, PythonPlotNodeFactory.this.createNodeModel().getDefaultScript(""), enableTemplateRepository()); } protected boolean enableTemplateRepository() { return true; } public static SettingsModelInteger createPropFigureWidth() { return new SettingsModelIntegerBounded("figure.width", 1000, 100, 5000); } public static SettingsModelInteger createPropFigureHeight() { return new SettingsModelIntegerBounded("figure.height", 700, 100, 5000); } public static SettingsModelBoolean createOverwriteFile() { return new SettingsModelBoolean("overwrite.ok", false); } public static SettingsModelString createPropOutputFile() { return new SettingsModelString("figure.output.file", "") { @Override protected void validateSettingsForModel(NodeSettingsRO settings) throws InvalidSettingsException { // super.validateSettingsForModel(settings); } }; } public static SettingsModelString createPropOutputType() { return new SettingsModelString("figure.ouput.type", "png"); } }