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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
</copyright> */
var Montage = require("montage/core/core").Montage,
ToolProperties = require("js/components/tools-properties/tool-properties").ToolProperties;
exports.RectProperties = Montage.create(ToolProperties, {
base: { value: null },
lockButton: { value: null, enumerable: false},
TLRadiusControl: { value: null, enumerable: false },
TRRadiusControl: { value: null, enumerable: false },
BLRadiusControl: { value: null, enumerable: false },
BRRadiusControl: { value: null, enumerable: false },
_unlocked: { value: false, enumerable: false},
_subPrepare: {
value: function() {
this.lockButton.addEventListener("click", this, false);
this._setBindings([this.TRRadiusControl, this.BLRadiusControl, this.BRRadiusControl]);
this._setCap([this.TLRadiusControl,this.TRRadiusControl, this.BLRadiusControl, this.BRRadiusControl]);
}
},
handleClick: {
value: function(event) {
this._unlocked = !this._unlocked;
this.TRRadiusControl.enabled = this.BLRadiusControl.enabled = this.BRRadiusControl.enabled = this._unlocked;
if(this._unlocked) {
this.lockButton.classList.remove("LockToolUp");
this.lockButton.classList.add("UnLockToolUp");
this._removeBindings([this.TRRadiusControl, this.BLRadiusControl, this.BRRadiusControl]);
} else {
this.lockButton.classList.remove("UnLockToolUp");
this.lockButton.classList.add("LockToolUp");
this._setBindings([this.TRRadiusControl, this.BLRadiusControl, this.BRRadiusControl]);
}
}
},
// Public API
use3D: {
get: function() { return this.base._use3D; }
},
strokeSize: {
get: function() { return this.base._strokeSize; }
},
strokeStyle : {
get: function() { return this.base._strokeStyle.options[this.base._strokeStyle.value].text; }
},
strokeStyleIndex : {
get: function() { return this.base._strokeStyle.options[this.base._strokeStyle.value].value; }
},
strokeMaterial: {
get: function() { return this.base._strokeMaterial.options[this.base._strokeMaterial.value].value; }
},
fillMaterial: {
get: function() { return this.base._fillMaterial.options[this.base._fillMaterial.value].value; }
},
_setBindings: {
value: function(els) {
var that = this;
els.forEach(function(el) {
Object.defineBinding(el, "value", {
boundObject: that.TLRadiusControl,
boundObjectPropertyPath: "value",
boundValueMutator: function(value) {
if (typeof value === "string") {
return parseFloat(value);
}
return value;
}
});
Object.defineBinding(el, "units", {
boundObject: that.TLRadiusControl,
boundObjectPropertyPath: "units"
});
});
}
},
_removeBindings: {
value: function(els) {
els.forEach(function(el) {
Object.deleteBindings(el);
});
}
},
_setCap: {
value: function(els) {
var that = this;
els.forEach(function(el) {
el.addEventListener("change", that, false);
});
}
},
handleChange: {
value: function(event) {
var hotTxt = event.currentTarget;
if(hotTxt.units === "%") {
if(hotTxt.value > 50) {
hotTxt.maxValue = 50;
}
return hotTxt.value;
}
}
}
});
|