{
	"id": "scrollableTestApp",
	"name": "Scrollable Test App",
	"description": "This is a test app for scrollable lists.",
	"splash": "splash",

	// Dependencies, modules and controllers are loaded using the Dojo AMD loader. 
	// This parameter allows to configure the loader itself and specify for example where custom modules can be found.
	"loaderConfig": {
		"paths": {
			"scrollableTestApp": "../dojox/app/tests/scrollableTestApp"
		}
	},

	// Array of AMD modules identifiers. When defined at the top level dependencies of the dojox/app application. 
	// When defined at view level, dependencies for the view.
	"dependencies": [
		"dojox/mobile/_base",
		"dojox/mobile/_compat",
		"dojox/mobile/TabBar",
		"dojox/mobile/TabBarButton",
		"dojox/mobile/TextBox",
		"dojox/mobile/Button",
		"dojox/mobile/Heading",
		"dojox/mobile/ListItem",
		"dojox/mobile/RoundRectList",
		"dojox/mobile/RoundRectCategory",
		"dojox/app/widgets/Container",
		"dojox/mobile/Container",
		"dojo/data/ItemFileWriteStore",
		"dojo/store/DataStore",
		"dojox/app/utils/mvcModel",
		"dojox/mvc/EditStoreRefListController",
		"dojox/mvc/Repeat",
		"dojox/mvc/WidgetList",
		"dojox/mvc/Templated",
		"dojox/mvc/_InlineTemplateMixin",
		"dojox/mobile/ScrollableView",
		"dojox/mvc/Group",
		"dojox/mvc/Output",
		"dojox/mvc/at"
	],
	// Modules for the application.  They are basically used as the second
	// array of mixins in a dojo.declare().  Modify the top level behavior
	// of the application, how it processes the config or any other life cycle
	// by creating and including one or more of these
	"modules": [
		"scrollableTestApp/scrollableTestApp"
	],

	// Array of AMD modules identifiers. Controllers for the application. All the controllers defined here will be 
	// loaded during application startup to respond to application events and controller the application logic. 
	"controllers": [
		"dojox/app/controllers/Load",
		"dojox/app/controllers/Transition",
		"dojox/app/controllers/Layout"
	],

	// Dojo stores which are used by dojox/app to setup data models. A store item is an object with a
	// a type and a params property. The type property is the AMD module identifier for the store class to be
	// instantiated. The content of the params property is passed to the store class constructor to build an 
	// instance. 
	"stores": {
		"repeatStore":{
			"type": "dojo/data/ItemFileWriteStore",
			"params": {
				"url": "./resources/data/repeat.json"
			}
	   }
	},

	// Models and their instantiation parameters. A model item is an object with three properties: the 
	// model type, the modelLoader and the params. The modelLoader property defines whether an MVC or a
	// simple model must be loaded. The type property defines which class must be used for that model using
	// an AMD module identifier and finally the params property content is passed to the model class 
	// constructor to build an instance.
	"models": {
       "repeatmodels": {
       					"modelLoader": "dojox/app/utils/mvcModel",
					"type": "dojox/mvc/EditStoreRefListController",
					"params":{
						"datastore": {"$ref":"#stores.repeatStore"}
					}
        }
	},
	
	// The has section will include the sections for which the has checks are true.  
	// For the sections with ! it will include the section if the has check is not true.
	"has" : {
		"phone" : {
			//The name(s) of the view(s) to load when the application is initialized.
			"defaultView": "configuration,ScrollableListSelection"
		},
		"!phone" : {
			//The name(s) of the view(s) to load when the application is initialized.
			"defaultView": "TestInfo",
			"template": "scrollableTestApp/views/tablet/ViewScrollableLists.html",
			"controller": "scrollableTestApp/views/tablet/ViewScrollableLists"
		},
		"ie9orLess" : {
			"controllers": [
				"dojox/app/controllers/HistoryHash"
			]
		},
		"!ie9orLess" : {
			"controllers": [
				"dojox/app/controllers/History"
			]
		}
	},	

	// defaultTransition: The default animation type for the view transition.
	// the defaultTransition is only used if transition is not set in the config and the transition is not set or 
	// defaulted on the transitionEvent
	// These are the possible defaultTransitions, 
	//"defaultTransition": "slide",
	//"defaultTransition": "none",
	//"defaultTransition": "fade",
	"defaultTransition": "flip",     // Note: flip does not work with a BorderLayout Controller

	// transition: The animation type to use for all view transitions.
	// if a transition is set on a view or parent it will override the transition set on the transitionEvent or the defaultTransition in the config.
	//"transition": "slide",

	// views: The children views of an application or of a view. Dependencies may be defined on views for
	// optimization and organization purposes. Models might also be defined on views if they are view-specific
	// Finally a view item as three additional properties: transition for specific view transitions, template for
	// defining the view rendering and finally controller to provide an AMD module to be mixed into the view to 
	// control it. AMD modules identifiers starting with “.” will be resolved relative to the application root. All other
	// modules identifiers will be resolved according to the Dojo AMD loader rules and in particular with respect
	// to its configuration provided as part of the loaderConfig attribute. If you do not want a controller
	// module at all you should not specify one, setting it to none will no longer work.

	"views": {
		"configuration": {
			"defaultView": "ScrollableListSelection",
			"transition": "slide",

			"views": {
				"ScrollableListSelection": {
					"controller": "scrollableTestApp/views/configuration/ScrollableListSelection.js",
					"template": "scrollableTestApp/views/configuration/ScrollableListSelection.html"
				}
			}
		},
		
		
		"TestInfo": {
			"transition": "none",
			"controller": "scrollableTestApp/views/TestInfo.js",
			"template": "scrollableTestApp/views/TestInfo.html"
		},
		"Scrollable1": {
			"transition": "slide",
			"controller": "scrollableTestApp/views/Scrollable1.js",
			"template": "scrollableTestApp/views/Scrollable1.html"
		},
		"Scrollable1P": {
			"transition": "flip",
			"controller": "scrollableTestApp/views/Scrollable1P.js",
			"template": "scrollableTestApp/views/Scrollable1P.html"
		},
		"Scrollable2": {
			"transition": "fade",
			"controller": "scrollableTestApp/views/Scrollable2.js",
			"template": "scrollableTestApp/views/Scrollable2.html"
		},
		"Scrollable3": {
			"controller": "scrollableTestApp/views/Scrollable3.js",
			"template": "scrollableTestApp/views/Scrollable3.html"
		},
		"Scrollable4": {
			"controller": "scrollableTestApp/views/Scrollable4.js",
			"template": "scrollableTestApp/views/Scrollable4.html"
		},
		"Scrollable5": {
			"controller": "scrollableTestApp/views/Scrollable5.js",
			"template": "scrollableTestApp/views/Scrollable5.html"
		},
		"ListItemDomButtons": {
			"controller": "scrollableTestApp/views/ListItem-domButtons",
			"template": "scrollableTestApp/views/ListItem-domButtons.html"
		},
		"ListItemDomButtons2": {
			"template": "scrollableTestApp/views/ListItem-domButtons2.html"
		},
		
		"repeatDetails": {
			"controller": "scrollableTestApp/views/repeatDetails.js",
			"template": "scrollableTestApp/views/repeatDetails.html",
			"transition": "slide"
		}
	}
}
