view inkscape/firefox/content/wizard.js @ 367:e21e9447f545

Add wizard. We still need to add the template files.
author wycc
date Sun, 15 Mar 2009 17:17:06 +0800
parents
children 3d21115297ba
line wrap: on
line source

function Wizard()
{
	this.dialog = $('#wizard');
	this.dialog.dialog({width:600,autoOpen:false});
	this.step2 = $('#wizard_step2');
	this.step2.dialog({width:600,autoOpen:false});
	this.step3 = $('#wizard_step3');
	this.step3.dialog({width:600,autoOpen:false});
}


Wizard.prototype.execute=function(cb)
{
	this.dialog.dialog('open');
}

aaa=1
// In the first step, users will select the project type.
Wizard.prototype.step1_cb=function(type)
{
	this.type = type;
	var obj = $('#wizardname');
	this.name = obj.attr('value');
	this.step2.dialog('open');
	this.dialog.dialog('close');
	this.step3.dialog('close');
}

// In the step 2, get the output path
Wizard.prototype.step2_cb=function()
{
	this.dir = $('#wizardpath').attr('value');
	this.step2.dialog('close');
	this.step3.dialog('open');
}

// In the step 3, generate files
Wizard.prototype.step3_cb=function()
{
	this.generate_source('main.c','main.c');
	this.generate_source('app.h',this.name+'.h');
	this.generate_source('app.c',this.name+'.c');
	this.generate_source('app.prj',this.name+'.prj');
	this.generate_source('Makefile','Makefile');
	this.done_cb();
}

Wizard.prototype.done_cb=function()
{
	this.step3.dialog('close');
	this.cb(this.dir+this.name+'.prj');
}


Wizard.prototype.generate_source=function (tmpl,fname)
{
	var file = system_open_write(this.dir+'/'+fname);
	var template = system_open_read('wizard/'+this.type+'/'+tmpl);
	if (template == null) {
		alert('Can not find template file '+tmpl);
		return;
	}
	if (file == null) {
		alert('Can not create '+fname);
		return;
	}
	var data = template.read(template.available());
	// FIXME: replace name here
	file.write(data.data.length);
	file.close();
	template.close();
}