define("dojox/mobile/RoundRectList", [ "dojo/_base/array", "dojo/_base/declare", "dojo/_base/event", "dojo/_base/lang", "dojo/_base/window", "dojo/dom-construct", "dijit/_Contained", "dijit/_Container", "dijit/_WidgetBase" ], function(array, declare, event, lang, win, domConstruct, Contained, Container, WidgetBase){ // module: // dojox/mobile/RoundRectList return declare("dojox.mobile.RoundRectList", [WidgetBase, Container, Contained], { // summary: // A rounded rectangle list. // description: // RoundRectList is a rounded rectangle list, which can be used to // display a group of items. Each item must be a dojox/mobile/ListItem. // transition: String // The default animated transition effect for child items. transition: "slide", // iconBase: String // The default icon path for child items. iconBase: "", // iconPos: String // The default icon position for child items. iconPos: "", // select: String // Selection mode of the list. The check mark is shown for the // selected list item(s). The value can be "single", "multiple", or "". // If "single", there can be only one selected item at a time. // If "multiple", there can be multiple selected items at a time. // If "", the check mark is not shown. select: "", // stateful: Boolean // If true, the last selected item remains highlighted. stateful: false, // syncWithViews: Boolean // If true, this widget listens to view transition events to be // synchronized with view's visibility. syncWithViews: false, // editable: Boolean // If true, the list can be reordered. editable: false, // tag: String // A name of html tag to create as domNode. tag: "ul", /* internal properties */ // editableMixinClass: String // The name of the mixin class. editableMixinClass: "dojox/mobile/_EditableListMixin", // baseClass: String // The name of the CSS class of this widget. baseClass: "mblRoundRectList", buildRendering: function(){ this.domNode = this.srcNodeRef || domConstruct.create(this.tag); this.inherited(arguments); }, postCreate: function(){ if(this.editable){ require([this.editableMixinClass], lang.hitch(this, function(module){ lang.mixin(this, new module()); })); } this.connect(this.domNode, "onselectstart", event.stop); if(this.syncWithViews){ // see also TabBar#postCreate var f = function(view, moveTo, dir, transition, context, method){ var child = array.filter(this.getChildren(), function(w){ return w.moveTo === "#" + view.id || w.moveTo === view.id; })[0]; if(child){ child.set("selected", true); } }; this.subscribe("/dojox/mobile/afterTransitionIn", f); this.subscribe("/dojox/mobile/startView", f); } }, resize: function(){ // summary: // Calls resize() of each child widget. array.forEach(this.getChildren(), function(child){ if(child.resize){ child.resize(); } }); }, onCheckStateChanged: function(/*Widget*//*===== listItem, =====*/ /*String*//*===== newState =====*/){ // summary: // Stub function to connect to from your application. // description: // Called when the check state has been changed. }, _setStatefulAttr: function(stateful){ // tags: // private this._set("stateful", stateful); this.selectOne = stateful; array.forEach(this.getChildren(), function(child){ child.setArrow && child.setArrow(); }); }, deselectItem: function(/*dojox/mobile/ListItem*/item){ // summary: // Deselects the given item. item.set("selected", false); }, deselectAll: function(){ // summary: // Deselects all the items. array.forEach(this.getChildren(), function(child){ child.set("selected", false); }); }, selectItem: function(/*ListItem*/item){ // summary: // Selects the given item. item.set("selected", true); } }); });