package org.nightlabs.jfire.scripting.admin.ui.editor;
import org.nightlabs.base.ui.wizard.DynamicPathWizard;
import org.nightlabs.jdo.NLJDOHelper;
import org.nightlabs.jfire.scripting.IScriptParameter;
import org.nightlabs.jfire.scripting.Script;
import org.nightlabs.jfire.scripting.ScriptParameter;
import org.nightlabs.jfire.scripting.admin.ui.resource.Messages;
import org.nightlabs.jfire.scripting.dao.ScriptParameterDAO;
import org.nightlabs.progress.NullProgressMonitor;
/**
*
* @author vince
*
*/
public class ScriptParameterWizard extends DynamicPathWizard {
private Script script;
private ScriptParameterCreateWizardPage parameterCreatepage;
private ScriptParameter scriptparameter;
private boolean storeOnServer;
private String[] fetchGroups;
public ScriptParameterWizard( boolean storeOnServer, Script script){
super();
this.storeOnServer = storeOnServer || scriptparameter== null;
this.script= script;
setWindowTitle(Messages.getString("org.nightlabs.jfire.scripting.admin.ui.editor.ScriptParameterWizard.title"));
}
@Override
public void addPages() {
parameterCreatepage= new ScriptParameterCreateWizardPage(scriptparameter);
addPage(parameterCreatepage);
}
@Override
public boolean performFinish() {
IScriptParameter scriptParameter=script.getParameterSet().createParameter(parameterCreatepage.getScriptParameterComposite().getParameterIdText().getText());
scriptParameter.setScriptParameterClassName(parameterCreatepage.getScriptParameterComposite().getParameterNameText().getText());
if(storeOnServer){
ScriptParameterDAO.sharedInstance().storeParameter(scriptParameter, true, fetchGroups, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, new NullProgressMonitor());
}
return scriptParameter !=null;
}
public Script getScript() {
return script;
}
}