-
Notifications
You must be signed in to change notification settings - Fork 0
/
grid-manager.js
91 lines (73 loc) · 2.11 KB
/
grid-manager.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**
* Grid Manager
*/
var GridManager = function(d)
{
this.process;
this.painter;
this.container;
this.init(d);
}
$.extend(GridManager.prototype,
{
init: function(data)
{
if (typeof(data) != 'undefined')
{
this.container = (typeof(data.container) != 'undefined') ?
data.container : 'container';
this.process = (typeof(data.process) != 'undefined')?
data.process : new Process();
this.painter = new Painter(this.container);
this.painter.setPalette(
(typeof(data.chooser != 'undefined')) ?
data.choooser : undefined
);
this.painter.paintProcess(this.process);
}
$(document).on('newNode',function(event,data)
{
if (typeof(data.area) != 'undefined')
grid.addElement(
$(data.element),
$(data.area.element).attr('id'),
data.area.getInvaded()
);
else
grid.addElement(data.element);
/**********
var area_invaded = (typeof(data.area) != 'undefined') ?
data.area.getInvaded() : 'down';
grid.addElement(
$(data.element),
$(data.area.element).attr('id'),
//$(data.element).attr('id'),
area_invaded
//data.area.getInvaded()
);
**********/
});
},
//addElement: function(id,former_id,where)
addElement: function(element,former_id,where)
{
//node = this.process.createNode(id);
node = this.process.createNode(element.attr('id'),element.attr('data-type'),element.text());
this.process.insertNode(node,former_id,where);
this.painter.paintNode(node);
},
removeElement: function(id)
{
this.painter.eraseNode(id);
//this.painter.deleteNode(id);
this.process.removeNodes(id);
},
draw: function()
{
this.painter.paintProcess(this.process);
},
clear: function()
{
this.painter.clearWall();
}
});