aboutsummaryrefslogtreecommitdiff
path: root/js/components
diff options
context:
space:
mode:
Diffstat (limited to 'js/components')
-rw-r--r--js/components/combobox.reel/combobox.js91
-rw-r--r--js/components/tools-properties/fill-properties.reel/fill-properties.html11
-rw-r--r--js/components/tools-properties/fill-properties.reel/fill-properties.js6
-rw-r--r--js/components/tools-properties/ink-bottle-properties.reel/ink-bottle-properties.html12
-rw-r--r--js/components/tools-properties/ink-bottle-properties.reel/ink-bottle-properties.js6
-rw-r--r--js/components/tools-properties/line-properties.reel/line-properties.js14
-rw-r--r--js/components/tools-properties/oval-properties.reel/oval-properties.js14
-rw-r--r--js/components/tools-properties/rect-properties.reel/rect-properties.js14
-rw-r--r--js/components/tools-properties/shape-properties.reel/shape-properties.css6
-rw-r--r--js/components/tools-properties/shape-properties.reel/shape-properties.html35
-rw-r--r--js/components/tools-properties/shape-properties.reel/shape-properties.js36
11 files changed, 197 insertions, 48 deletions
diff --git a/js/components/combobox.reel/combobox.js b/js/components/combobox.reel/combobox.js
index a68a7d6b..bc433f52 100644
--- a/js/components/combobox.reel/combobox.js
+++ b/js/components/combobox.reel/combobox.js
@@ -15,7 +15,7 @@ exports.Combobox = Montage.create(Component, {
15 }, 15 },
16 16
17 _wasSetByCode: { 17 _wasSetByCode: {
18 enumerable: false, 18 enumerable: true,
19 value: true 19 value: true
20 }, 20 },
21 21
@@ -27,6 +27,14 @@ exports.Combobox = Montage.create(Component, {
27 value: null 27 value: null
28 }, 28 },
29 29
30 dataField: {
31 value: null
32 },
33
34 dataFunction: {
35 value: null
36 },
37
30 _items: { 38 _items: {
31 value: [] 39 value: []
32 }, 40 },
@@ -71,7 +79,47 @@ exports.Combobox = Montage.create(Component, {
71 e.value = this._value; 79 e.value = this._value;
72 this.dispatchEvent(e); 80 this.dispatchEvent(e);
73 81
74 this._wasSetByCode = false; 82 this._wasSetByCode = true;
83 }
84 }
85 },
86
87 _enabled: {
88 enumerable: false,
89 value: true
90 },
91
92 enabled: {
93 enumerable: true,
94 serializable: true,
95 get: function() {
96 return this._enabled;
97 },
98 set: function(value) {
99 if(value !== this._enabled)
100 {
101 this._enabled = value;
102 this.needsDraw = true;
103 }
104 }
105 },
106
107 _visible: {
108 enumerable: false,
109 value: true
110 },
111
112 visible: {
113 enumerable: true,
114 serializable: true,
115 get: function() {
116 return this._visible;
117 },
118 set: function(value) {
119 if(value !== this._visible)
120 {
121 this._visible = value;
122 this.needsDraw = true;
75 } 123 }
76 } 124 }
77 }, 125 },
@@ -102,7 +150,19 @@ exports.Combobox = Montage.create(Component, {
102 { 150 {
103 var current = items[i]; 151 var current = items[i];
104 optionItem = document.createElement("option"); 152 optionItem = document.createElement("option");
105 optionItem.value = current; 153 if(this.dataFunction)
154 {
155 optionItem.value = this.dataFunction(current);
156 }
157 else if(this.dataField)
158 {
159 optionItem.value = current[this.dataField];
160 }
161 else
162 {
163 optionItem.value = current;
164 }
165
106 if(this.labelFunction) 166 if(this.labelFunction)
107 { 167 {
108 optionItem.innerText = this.labelFunction(current); 168 optionItem.innerText = this.labelFunction(current);
@@ -117,6 +177,15 @@ exports.Combobox = Montage.create(Component, {
117 } 177 }
118 this.element.appendChild(optionItem); 178 this.element.appendChild(optionItem);
119 } 179 }
180 this.element.disabled = !this._enabled;
181 if(this._visible)
182 {
183 this.element.style.visibility = "visible";
184 }
185 else
186 {
187 this.element.style.visibility = "hidden";
188 }
120 } 189 }
121 } 190 }
122 }, 191 },
@@ -133,6 +202,22 @@ exports.Combobox = Montage.create(Component, {
133 202
134 prepareForDraw: { 203 prepareForDraw: {
135 value: function() { 204 value: function() {
205 if( (this._value === null) && this._items.length )
206 {
207 var current = this._items[0];
208 if(this.dataFunction)
209 {
210 this.value = this.dataFunction(current);
211 }
212 else if(this.dataField)
213 {
214 this.value = current[this.dataField];
215 }
216 else
217 {
218 this.value = current;
219 }
220 }
136 this.element.addEventListener("change", this, false); 221 this.element.addEventListener("change", this, false);
137 } 222 }
138 } 223 }
diff --git a/js/components/tools-properties/fill-properties.reel/fill-properties.html b/js/components/tools-properties/fill-properties.reel/fill-properties.html
index d09b7f44..a35f9b15 100644
--- a/js/components/tools-properties/fill-properties.reel/fill-properties.html
+++ b/js/components/tools-properties/fill-properties.reel/fill-properties.html
@@ -11,6 +11,15 @@
11 11
12 <script type="text/montage-serialization"> 12 <script type="text/montage-serialization">
13 { 13 {
14 "_fillMaterialCB": {
15 "module": "js/components/combobox.reel",
16 "name": "Combobox",
17 "properties": {
18 "element": {"#": "fillMaterialCB"},
19 "labelField": "_name",
20 "dataField": "_name"
21 }
22 },
14 "owner": { 23 "owner": {
15 "module": "js/components/tools-properties/fill-properties.reel", 24 "module": "js/components/tools-properties/fill-properties.reel",
16 "name": "FillProperties", 25 "name": "FillProperties",
@@ -18,7 +27,7 @@
18 "element": {"#": "fillProperties"}, 27 "element": {"#": "fillProperties"},
19 "_useWebGL": {"#": "useWebGLCH"}, 28 "_useWebGL": {"#": "useWebGLCH"},
20 "_materialsContainer": {"#": "materialsContainer"}, 29 "_materialsContainer": {"#": "materialsContainer"},
21 "_fillMaterial": {"#": "fillMaterialCB"} 30 "_fillMaterial": {"@": "_fillMaterialCB"}
22 } 31 }
23 } 32 }
24 } 33 }
diff --git a/js/components/tools-properties/fill-properties.reel/fill-properties.js b/js/components/tools-properties/fill-properties.reel/fill-properties.js
index 3b77d72e..61b667d7 100644
--- a/js/components/tools-properties/fill-properties.reel/fill-properties.js
+++ b/js/components/tools-properties/fill-properties.reel/fill-properties.js
@@ -14,7 +14,11 @@ exports.FillProperties = Montage.create(ToolProperties, {
14 14
15 _subPrepare: { 15 _subPrepare: {
16 value: function() { 16 value: function() {
17 ShapesController.DisplayMaterials(this._fillMaterial); 17 Object.defineBinding(this._fillMaterial, "items", {
18 boundObject: this.application.ninja.appModel,
19 boundObjectPropertyPath: "materials",
20 oneway: false
21 });
18 22
19 this.handleChange(null); 23 this.handleChange(null);
20 this._useWebGL.addEventListener("change", this, false); 24 this._useWebGL.addEventListener("change", this, false);
diff --git a/js/components/tools-properties/ink-bottle-properties.reel/ink-bottle-properties.html b/js/components/tools-properties/ink-bottle-properties.reel/ink-bottle-properties.html
index b98a7b4c..1602e793 100644
--- a/js/components/tools-properties/ink-bottle-properties.reel/ink-bottle-properties.html
+++ b/js/components/tools-properties/ink-bottle-properties.reel/ink-bottle-properties.html
@@ -36,6 +36,16 @@
36 } 36 }
37 }, 37 },