/* This file contains proprietary software owned by Motorola Mobility, Inc.
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
*/ var Montage = require("montage/core/core").Montage, Component = require("montage/ui/component").Component; var Button = require("montage/ui/button.reel").Button, Checkbox = require("montage/ui/checkbox.reel").Checkbox, Condition = require("montage/ui/condition.reel").Condition, DynamicText = require("montage/ui/dynamic-text.reel").DynamicText, FlowController = require("montage/ui/flow-controller.reel").FlowController, HotText = require("montage/ui/hottext.reel").HotText, HotTextUnit = require("montage/ui/hottextunit.reel").HotTextUnit, ImageContainer = require("montage/ui/photo-editor.reel").PhotoEditor, Progress = require("montage/ui/progress.reel").Progress, Repetition = require("montage/ui/repetition.reel").Repetition, Scrollview = require("montage/ui/scrollview.reel").Scrollview, Slider = require("montage/ui/slider.reel").Slider, Slot = require("montage/ui/slot.reel").Slot, Substitution = require("montage/ui/substitution.reel").Substitution, TextArea = require("montage/ui/textarea.reel").TextArea, Textfield = require("montage/ui/textfield.reel").Textfield, Toggle = require("montage/ui/toggle.reel").Toggle, ToggleButton = require("montage/ui/button.reel").ToggleButton; exports.MyAppDelegate = Montage.create(Component, { templateDidLoad: { value: function(){ window.addComponent = this.addComponentToUserDocument; window.addBinding = this.addBindingToUserDocument; var newEvent = document.createEvent( "CustomEvent" ); newEvent.initCustomEvent( "userTemplateDidLoad", false, true ); document.body.dispatchEvent( newEvent ); } }, addComponentToUserDocument:{ value:function(containerElement, componentType){ var component = null; switch(componentType){ case "Button": component = Button.create(); component.element = containerElement; component.element.classList.add("text"); component.value = "Button"; component.needsDraw = true; break; case "Checkbox": component = Checkbox.create(); component.element = containerElement; component.needsDraw = true; break; case "Condition": component = Condition.create(); component.element = containerElement; component.needsDraw = true; break; case "DynamicText": component = DynamicText.create(); component.element = containerElement; component.value = "Label"; component.needsDraw = true; break; case "HotText": component = HotText.create(); component.element = containerElement; component.needsDraw = true; break; case "HotTextUnit": component = HotTextUnit.create(); component.element = containerElement; component.needsDraw = true; break; case "FlowController": component = FlowController.create(); component.element = containerElement; component.needsDraw = true; break; case "ImageContainer": component = ImageContainer.create(); component.element = containerElement; component.element.style.width = "285px"; component.element.style.height = "235px"; component.src = "placeholder.jpg"; component.needsDraw = true; break; case "Progress": component = Progress.create(); component.element = containerElement; component.loading = true; component.needsDraw = true; break; case "Repetition": component = Repetition.create(); component.element = containerElement; component.needsDraw = true; break; case "Scrollview": component = Scrollview.create(); component.element = containerElement; component.element.style.width = "200px"; component.element.style.height = "200px"; var dummyContent = document.createElement("div"); dummyContent.innerHTML = ""; component.element.appendChild(dummyContent); component.needsDraw = true; break; case "Slider": component = Slider.create(); component.element = containerElement; // component.value = 0; // component._minValue = 0; // component._maxValue = 100; component.needsDraw = true; break; case "Slot": component = Slot.create(); component.element = containerElement; component.needsDraw = true; break; case "Substitution": component = Substitution.create(); component.element = containerElement; component.needsDraw = true; break; case "TextArea": component = TextArea.create(); component.element = containerElement; component.needsDraw = true; break; case "Textfield": component = Textfield.create(); component.element = containerElement; component.needsDraw = true; break; case "Toggle": component = Toggle.create(); component.element = containerElement; component.needsDraw = true; break; case "ToggleButton": component = ToggleButton.create(); component.element = containerElement; component.element.classList.add("text"); component.needsDraw = true; break; default: console.log("Unrecognized component type"); } //console.log(component); return component; } }, addBindingToUserDocument:{ value:function(boundComponent, boundValue, targetComponent, targetValue){ if(targetComponent[targetValue] != undefined && boundComponent[boundValue] != undefined){ Object.defineBinding(boundComponent, boundValue, { boundObject: targetComponent, boundObjectPropertyPath: targetValue, boundValueMutator: function(value) { return(value); } }); } else { if(targetComponent[targetValue] == undefined){ console.log("Binding Fail - Component Property Not Found: " + targetValue); alert("Binding Failed - Component Property Not Found: " + targetValue) } else if(boundComponent[boundValue] == undefined){ console.log("Binding Fail - Component Property Not Found: " + boundValue); alert("Binding Failed - Component Property Not Found: " + boundValue); } } } } });