/*
 *  Draco Econometrics
 *  Copyright (C) 2006-2009 Approximatrix, LLC
 *  http://www.approximatrix.com
 *  
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.approximatrix.draco.editor.wizard.ui;

import javax.swing.JOptionPane;

import org.pietschy.wizard.Wizard;
import org.pietschy.wizard.models.StaticModel;

import com.approximatrix.draco.editor.ui.RubyEditorWindow;
import com.approximatrix.draco.editor.wizard.PluginWizardData;
import com.approximatrix.draco.main.ui.MainWindow;

public class PluginWizardController {

	private MainWindow mw = null;
	private PluginWizardData pwd = null;
	
	public PluginWizardController(MainWindow mw) {
		this.mw = mw;
		this.pwd = new PluginWizardData();
	}
	
	public void runWizard() {
		StaticModel model = new StaticModel();
		model.add(new PluginIntroStep(pwd));
		model.add(new PluginTypeStep(pwd));
		model.add(new VariableSelectionStep(pwd));
		model.add(new PluginOptionsStep(pwd));
		model.add(new PluginFinalizeStep(pwd, this.mw));
		
		Wizard wizard = new Wizard(model);
		//wizard.showInFrame("Draco Plugin Wizard");
		wizard.showInDialog("Draco Plugin Wizard", this.mw, true);

		if(pwd.getPluginText() != null) {
			RubyEditorWindow.OpenEditorTab(pwd.getPluginText(), true, mw);
		} else {
			JOptionPane.showMessageDialog(mw, "The plugin failed to intialize...","Plugin System Error",JOptionPane.ERROR_MESSAGE);
		}
		
	}
	
}
