diff options
Diffstat (limited to 'js/panels/components-panel.reel/components-panel.js')
-rwxr-xr-x | js/panels/components-panel.reel/components-panel.js | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/js/panels/components-panel.reel/components-panel.js b/js/panels/components-panel.reel/components-panel.js index 46f91410..ab033433 100755 --- a/js/panels/components-panel.reel/components-panel.js +++ b/js/panels/components-panel.reel/components-panel.js | |||
@@ -267,9 +267,12 @@ exports.ComponentsPanel = Montage.create(Component, { | |||
267 | } | 267 | } |
268 | that = this; | 268 | that = this; |
269 | element = this.makeComponent(component.component); | 269 | element = this.makeComponent(component.component); |
270 | 270 | this.application.ninja.currentDocument.model.views.design.iframe.contentWindow.addComponent(element, { | |
271 | this.application.ninja.currentDocument.model.views.design.iframe.contentWindow.addComponent(element, | 271 | identifier: this.CreateUniqueComponentName(component.name), |
272 | {name: component.name, path: component.module, firstDraw: {cb: this.componentInstanceOnFirstDraw, ctx: this}}, | 272 | name: component.name, |
273 | path: component.module, | ||
274 | firstDraw: {cb: this.componentInstanceOnFirstDraw, ctx: this} | ||
275 | }, | ||
273 | function(instance, element) { | 276 | function(instance, element) { |
274 | 277 | ||
275 | //var pos = that.getStageCenter(); | 278 | //var pos = that.getStageCenter(); |
@@ -289,7 +292,8 @@ exports.ComponentsPanel = Montage.create(Component, { | |||
289 | 292 | ||
290 | //that.application.ninja.elementMediator.addElements(element, styles); | 293 | //that.application.ninja.elementMediator.addElements(element, styles); |
291 | ElementController.addElement(element, styles); | 294 | ElementController.addElement(element, styles); |
292 | }); | 295 | } |
296 | ); | ||
293 | 297 | ||
294 | } | 298 | } |
295 | }, | 299 | }, |
@@ -297,6 +301,7 @@ exports.ComponentsPanel = Montage.create(Component, { | |||
297 | componentInstanceOnFirstDraw: { | 301 | componentInstanceOnFirstDraw: { |
298 | value: function(instance) { | 302 | value: function(instance) { |
299 | this.application.ninja.elementMediator.addElements(instance.element); | 303 | this.application.ninja.elementMediator.addElements(instance.element); |
304 | this.application.ninja.currentDocument.model.mObjects.push(instance); | ||
300 | } | 305 | } |
301 | }, | 306 | }, |
302 | 307 | ||
@@ -387,5 +392,28 @@ exports.ComponentsPanel = Montage.create(Component, { | |||
387 | 392 | ||
388 | //return this.centerStage; | 393 | //return this.centerStage; |
389 | } | 394 | } |
395 | }, | ||
396 | |||
397 | CreateUniqueComponentName: { | ||
398 | value: function(name) { | ||
399 | for(var i=1; i < 1000; i++) { | ||
400 | if(!this.ComponentNameExists(name + i)) { | ||
401 | return name + i; | ||
402 | } | ||
403 | } | ||
404 | } | ||
405 | }, | ||
406 | |||
407 | ComponentNameExists: { | ||
408 | value: function(name) { | ||
409 | var filteredList = this.application.ninja.currentDocument.model.mObjects.filter(function(obj){ | ||
410 | if(name === obj.identifier) return true; | ||
411 | }); | ||
412 | if (filteredList.length > 0) { | ||
413 | return true; | ||
414 | } else { | ||
415 | return false; | ||
416 | } | ||
417 | } | ||
390 | } | 418 | } |
391 | }); \ No newline at end of file | 419 | }); \ No newline at end of file |