package de.mpicbg.knime.scripting.python.plots;
import de.mpicbg.knime.scripting.core.ScriptingNodeDialog;
import de.mpicbg.knime.scripting.python.PythonColumnSupport;
import de.mpicbg.knime.scripting.python.PythonScriptingBundleActivator;
import de.mpicbg.knime.scripting.python.prefs.PythonPreferenceInitializer;
import org.knime.core.node.InvalidSettingsException;
import org.knime.core.node.defaultnodesettings.DialogComponentBoolean;
import org.knime.core.node.defaultnodesettings.DialogComponentFileChooser;
import org.knime.core.node.defaultnodesettings.DialogComponentNumber;
import org.knime.core.node.defaultnodesettings.SettingsModelString;
import javax.swing.*;
/**
* @author Holger Brandl
*/
public class PythonPlotNodeDialog extends ScriptingNodeDialog {
public PythonPlotNodeDialog(String templateResources, String defaultScript, boolean useTemplateRepository) {
super(defaultScript, new PythonColumnSupport(), useTemplateRepository);
createNewTab("Output Options");
addDialogComponent(new DialogComponentNumber(PythonPlotNodeFactory.createPropFigureWidth(), "Width", 10));
addDialogComponent(new DialogComponentNumber(PythonPlotNodeFactory.createPropFigureHeight(), "Height", 10));
DialogComponentFileChooser chooser = new DialogComponentFileChooser(PythonPlotNodeFactory.createPropOutputFile(), "matlabplot.output.file", JFileChooser.SAVE_DIALOG, "png") {
// override this method to make the file-selection optional
@Override
protected void validateSettingsBeforeSave() throws InvalidSettingsException {
String value = (String) ((JComboBox) ((JPanel) getComponentPanel().getComponent(0)).getComponent(0)).getSelectedItem();
((SettingsModelString) getModel()).setStringValue(value == null ? "" : value);
}
};
addDialogComponent(chooser);
addDialogComponent(new DialogComponentBoolean(PythonPlotNodeFactory.createOverwriteFile(), "Overwrite existing file"));
// addDialogComponent(new DialogComponentStringSelection(createPropOutputType(), "Type", Arrays.asList("png", "jpg", "pdf", "svg")));
}
@Override
public String getTemplatesFromPreferences() {
return PythonScriptingBundleActivator.getDefault().getPreferenceStore().getString(PythonPreferenceInitializer.PYTHON_PLOT_TEMPLATE_RESOURCES);
}
}