1 | <!DOCTYPE html> |
---|
2 | <html> |
---|
3 | <head> |
---|
4 | <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> |
---|
5 | <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/> |
---|
6 | <meta name="apple-mobile-web-app-capable" content="yes"/> |
---|
7 | <title>Editable Icon Container</title> |
---|
8 | |
---|
9 | <link href="../themes/common/domButtons/DomButtonRedBadge.css" rel="stylesheet"/> |
---|
10 | <script type="text/javascript" src="../deviceTheme.js" data-dojo-config="mblThemeFiles: ['base','IconContainer']"></script> |
---|
11 | <script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true"></script> |
---|
12 | |
---|
13 | <script type="text/javascript"> |
---|
14 | require([ |
---|
15 | "dojo/_base/connect", |
---|
16 | "dojo/dom", |
---|
17 | "dojo/dom-construct", |
---|
18 | "dojo/ready", |
---|
19 | "dijit/registry", |
---|
20 | "dojox/mobile/parser", |
---|
21 | "dojox/mobile", |
---|
22 | "dojox/mobile/compat", |
---|
23 | "dojox/mobile/IconContainer", |
---|
24 | "dojox/mobile/ScrollableView" |
---|
25 | ], function(connect, dom, domConstruct, ready, registry){ |
---|
26 | function onKeydown(e){ |
---|
27 | if(e.keyCode == 39 && e.shiftKey){ // right |
---|
28 | var item = registry.getEnclosingWidget(e.target); |
---|
29 | var next = item.getNextSibling(); |
---|
30 | if(next){ |
---|
31 | domConstruct.place(item.domNode, next.domNode, "after"); |
---|
32 | item.domNode.focus(); |
---|
33 | } |
---|
34 | }else if(e.keyCode == 37 && e.shiftKey){ // left |
---|
35 | var item = registry.getEnclosingWidget(e.target); |
---|
36 | var prev = item.getPreviousSibling(); |
---|
37 | if(prev){ |
---|
38 | domConstruct.place(item.domNode, prev.domNode, "before"); |
---|
39 | item.domNode.focus(); |
---|
40 | } |
---|
41 | }else if(e.keyCode == 46){ // Delete |
---|
42 | var item = registry.getEnclosingWidget(e.target); |
---|
43 | if(item.deletable){ |
---|
44 | widget.deleteItem(item); |
---|
45 | } |
---|
46 | } |
---|
47 | } |
---|
48 | startEdit = function(){ |
---|
49 | widget.startEdit(); |
---|
50 | } |
---|
51 | endEdit = function(){ |
---|
52 | widget.endEdit(); |
---|
53 | } |
---|
54 | ready(function(){ |
---|
55 | widget = registry.byId("iconContainer"); // IconContainer widget |
---|
56 | connect.connect(widget, "onStartEdit", function(){ |
---|
57 | dom.byId("btn1").style.display = "none"; |
---|
58 | dom.byId("btn2").style.display = ""; |
---|
59 | keyHandler = connect.connect(widget.domNode, "onkeydown", onKeydown); |
---|
60 | }); |
---|
61 | dojo.connect(widget, "onEndEdit", function(){ |
---|
62 | dom.byId("btn1").style.display = ""; |
---|
63 | dom.byId("btn2").style.display = "none"; |
---|
64 | connect.disconnect(keyHandler); |
---|
65 | }); |
---|
66 | }); |
---|
67 | }); |
---|
68 | </script> |
---|
69 | |
---|
70 | <style> |
---|
71 | .box { |
---|
72 | border: 1px solid #A7C0E0; |
---|
73 | width: 300px; |
---|
74 | height: 250px; |
---|
75 | background-image: url(images/widget-bg.png); |
---|
76 | background-repeat: no-repeat; |
---|
77 | background-color: white; |
---|
78 | } |
---|
79 | </style> |
---|
80 | </head> |
---|
81 | <body style="visibility:hidden;"> |
---|
82 | <div id="view1" data-dojo-type="dojox.mobile.ScrollableView"> |
---|
83 | <h1 data-dojo-type="dojox.mobile.Heading">Editable Icon Container</h1> |
---|
84 | <ul id="iconContainer" data-dojo-type="dojox.mobile.IconContainer" data-dojo-props='editable:true, deleteIconTitle:"delete", deleteIconRole:"button"'> |
---|
85 | <li id="icon1" data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app1", icon:"images/icon1.png", badge:"55"'><div class="box"></div></li> |
---|
86 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app2", icon:"images/icon2.png", deletable:false'><div class="box"></div></li> |
---|
87 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app3", icon:"images/icon3.png"'><div class="box"></div></li> |
---|
88 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app4", icon:"images/icon4.png"'><div class="box"></div></li> |
---|
89 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app5", icon:"images/icon5.png"'><div class="box"></div></li> |
---|
90 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app6", icon:"images/icon6.png"'><div class="box"></div></li> |
---|
91 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app7", icon:"images/icon7.png"'><div class="box"></div></li> |
---|
92 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app8", icon:"images/icon8.png"'><div class="box"></div></li> |
---|
93 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app9", icon:"images/icon9.png"'><div class="box"></div></li> |
---|
94 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"app10", icon:"images/icon10.png"'><div class="box"></div></li> |
---|
95 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"moveTo", icon:"images/icon1.png", moveTo:"about", transition:"slide"'></li> |
---|
96 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"href", icon:"images/icon2.png", href:"test_RoundRectList.html", transition:"slide"'></li> |
---|
97 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"url", icon:"images/icon3.png", url:"data/view-sample.html", transition:"slide"'></li> |
---|
98 | <li data-dojo-type="dojox.mobile.IconItem" data-dojo-props='label:"url-async", icon:"images/icon4.png", url:"data/view-sample.html", transition:"slide", sync:false'></li> |
---|
99 | </ul> |
---|
100 | <button id="btn1" onclick="startEdit();">Start Edit</button> |
---|
101 | <button id="btn2" onclick="endEdit();" style="display:none;">End Edit</button> |
---|
102 | </div> |
---|
103 | |
---|
104 | <div id="about" data-dojo-type="dojox.mobile.View"> |
---|
105 | <h1 data-dojo-type="dojox.mobile.Heading" data-dojo-props='back:"Icon Container", moveTo:"view1"'>About</h1> |
---|
106 | <h2 data-dojo-type="dojox.mobile.RoundRectCategory">My Phone</h2> |
---|
107 | <ul data-dojo-type="dojox.mobile.RoundRectList"> |
---|
108 | <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props='rightText:"AcmePhone"'> |
---|
109 | Network |
---|
110 | </li> |
---|
111 | <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props='rightText:"AcmePhone"'> |
---|
112 | Line |
---|
113 | </li> |
---|
114 | <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props='rightText:"1024"'> |
---|
115 | Songs |
---|
116 | </li> |
---|
117 | </ul> |
---|
118 | </div> |
---|
119 | </body> |
---|
120 | </html> |
---|