comparison 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
comparison
equal deleted inserted replaced
366:912d05129b4f 367:e21e9447f545
1 function Wizard()
2 {
3 this.dialog = $('#wizard');
4 this.dialog.dialog({width:600,autoOpen:false});
5 this.step2 = $('#wizard_step2');
6 this.step2.dialog({width:600,autoOpen:false});
7 this.step3 = $('#wizard_step3');
8 this.step3.dialog({width:600,autoOpen:false});
9 }
10
11
12 Wizard.prototype.execute=function(cb)
13 {
14 this.dialog.dialog('open');
15 }
16
17 aaa=1
18 // In the first step, users will select the project type.
19 Wizard.prototype.step1_cb=function(type)
20 {
21 this.type = type;
22 var obj = $('#wizardname');
23 this.name = obj.attr('value');
24 this.step2.dialog('open');
25 this.dialog.dialog('close');
26 this.step3.dialog('close');
27 }
28
29 // In the step 2, get the output path
30 Wizard.prototype.step2_cb=function()
31 {
32 this.dir = $('#wizardpath').attr('value');
33 this.step2.dialog('close');
34 this.step3.dialog('open');
35 }
36
37 // In the step 3, generate files
38 Wizard.prototype.step3_cb=function()
39 {
40 this.generate_source('main.c','main.c');
41 this.generate_source('app.h',this.name+'.h');
42 this.generate_source('app.c',this.name+'.c');
43 this.generate_source('app.prj',this.name+'.prj');
44 this.generate_source('Makefile','Makefile');
45 this.done_cb();
46 }
47
48 Wizard.prototype.done_cb=function()
49 {
50 this.step3.dialog('close');
51 this.cb(this.dir+this.name+'.prj');
52 }
53
54
55 Wizard.prototype.generate_source=function (tmpl,fname)
56 {
57 var file = system_open_write(this.dir+'/'+fname);
58 var template = system_open_read('wizard/'+this.type+'/'+tmpl);
59 if (template == null) {
60 alert('Can not find template file '+tmpl);
61 return;
62 }
63 if (file == null) {
64 alert('Can not create '+fname);
65 return;
66 }
67 var data = template.read(template.available());
68 // FIXME: replace name here
69 file.write(data.data.length);
70 file.close();
71 template.close();
72 }
73