18c7cdafa4d87bb005598f0fd0f502812f679e94
[samba.git] / swat / apps / qooxdoo-examples / example / TreeFullControl_2.html
1 <html>
2 <head>
3   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4   <title>qooxdoo &raquo; Demo</title>
5   <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
6   <!--[if IE]>
7   <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
8   <![endif]-->
9   <script type="text/javascript" src="../../script/qx.js"></script>
10 </head>
11 <body>
12   <script type="text/javascript" src="../../script/layout.js"></script>
13
14   <div id="demoDescription">
15 <p>Shows a tree, with user-defined extra fields.  In this example, the extra
16 fields include a left-justified icon, a checkbox between the node icon and the
17 label, and a whole series of right-justified fields.  Additionally, the root node may be hidden. </p>
18   </div>
19
20   <script type="text/javascript">
21     var treeRowStructure;
22
23     function stuff(vLabel, vIcon, vIconSelected)
24     {
25         treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.getInstance().newRow();
26
27         // A left-justified icon
28         if (Math.floor(Math.random() * 4) == 0)
29         {
30           obj = new qx.ui.basic.Image("icon/16/alarm.png", 16);
31         }
32         else
33         {
34           obj = new qx.ui.basic.Image(null, 16);
35         }
36         treeRowStructure.addObject(obj, true);
37
38         // Here's our indentation and tree-lines
39         treeRowStructure.addIndent();
40
41         // The standard tree icon follows
42         treeRowStructure.addIcon(
43           arguments.length >= 2 ? vIcon : "icon/16/desktop.png",
44           arguments.length >= 3 ? vIconSelected : "icon/16/dictionary.png");
45
46         // A checkbox comes right after the tree icon
47         obj = new qx.ui.form.CheckBox(
48           null, 23, null, Math.floor(Math.random() * 2) == 0 ? false : true);
49         obj.setPadding(0, 0);
50         treeRowStructure.addObject(obj, true);
51
52         // The label
53         treeRowStructure.addLabel(vLabel);
54
55         // All else should be right justified
56         obj = new qx.ui.basic.HorizontalSpacer;
57         treeRowStructure.addObject(obj, true);
58
59         // Add a file size, date and mode
60         obj = new qx.ui.basic.Label(Math.round(Math.random() * 100) + "kb");
61         obj.setWidth(50);
62         treeRowStructure.addObject(obj, true);
63         obj = new qx.ui.basic.Label(
64           "May " + Math.round(Math.random() * 30 + 1) + " 2005");
65         obj.setWidth(150);
66         treeRowStructure.addObject(obj, true);
67         obj = new qx.ui.basic.Label("-rw-r--r--");
68         obj.setWidth(80);
69         treeRowStructure.addObject(obj, true);
70
71         return treeRowStructure;
72         }
73
74     qx.core.Init.getInstance().defineMain(function()
75     {
76       var x = new qx.ui.basic.Atom("Test #1", "icon/16/reload.png", 16, 16);
77         x.debug("In main");
78
79       var t = new qx.ui.treefullcontrol.Tree(stuff("Root"));
80       with(t)
81       {
82         setBackgroundColor(255);
83         setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
84         setOverflow("scrollY");
85
86         setHeight(null);
87         setTop(48);
88         setLeft(20);
89         setWidth(600);
90         setBottom(48);
91       };
92
93       qx.ui.core.ClientDocument.getInstance().add(t);
94       // One icon for selected and one for unselected states
95       var te1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Desktop"));
96       t.add(te1);
97
98       desktop = te1;
99
100       var te1_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Files"));
101       var te1_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Workspace"));
102       var te1_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Network"));
103       var te1_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Trash"));
104
105       te1.add(te1_1, te1_2, te1_3, te1_4);
106
107       // One icon specified, and used for both selected unselected states
108       var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(stuff("Windows (C:)", "icon/16/harddrive.png"));
109       var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(stuff("Documents (D:)", "icon/16/harddrive.png"));
110
111       te1_2.add(te1_2_1, te1_2_2);
112
113       arbeitsplatz = te1_2;
114
115
116       var te2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Inbox"));
117       posteingang = te2;
118
119       var te2_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Presets"));
120       var te2_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Sent"));
121       var te2_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Trash", "icon/16/trash.png"));
122       var te2_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Data"));
123       var te2_5 = new qx.ui.treefullcontrol.TreeFolder(stuff("Edit"));
124
125       editieren = te2_5;
126
127       var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Chat"));
128       var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Pustefix"));
129       var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("TINC"));
130
131       var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Announce"));
132       var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Devel"));
133
134       te2_5_3.add(te2_5_3_1, te2_5_3_2);
135
136       te2_5.add(te2_5_1, te2_5_2, te2_5_3);
137
138       var te2_6 = new qx.ui.treefullcontrol.TreeFolder(stuff("Lists"));
139
140       var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Relations"));
141       var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Company"));
142       var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Questions"));
143       var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Internal"));
144       var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(stuff("Products"));
145       var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(stuff("Press"));
146       var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(stuff("Development"));
147       var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(stuff("Competition"));
148
149       te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
150
151       var te2_7 = new qx.ui.treefullcontrol.TreeFolder(stuff("Personal"));
152
153       var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Bugs"));
154       var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Family"));
155       var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Projects"));
156       var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Holiday"));
157
158       te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
159
160       var te2_8 = new qx.ui.treefullcontrol.TreeFolder(stuff("Big"));
161
162       for (var i=0;i<50; i++) {
163         te2_8.add(new qx.ui.treefullcontrol.TreeFolder(stuff("Item " + i)));
164       };
165
166       var te2_9 = new qx.ui.treefullcontrol.TreeFolder(stuff("Spam"));
167       spam = te2_9;
168
169       te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
170
171       t.add(te2);
172       qx.ui.core.ClientDocument.getInstance().add(t);
173
174
175
176
177
178
179       var commandFrame = new qx.ui.groupbox.GroupBox("Control");
180
181       with(commandFrame)
182       {
183         setTop(48);
184         setLeft(650);
185
186         setWidth("auto");
187         setHeight("auto");
188       };
189
190       qx.ui.core.ClientDocument.getInstance().add(commandFrame);
191
192
193
194
195       var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
196
197       with(tCurrentLabel)
198       {
199         setLeft(0);
200         setTop(0);
201       };
202
203       commandFrame.add(tCurrentLabel);
204
205
206
207       var tCurrentInput = new qx.ui.form.TextField;
208
209       with(tCurrentInput)
210       {
211         setLeft(0);
212         setRight(0);
213         setTop(20);
214
215         setReadOnly(true);
216       };
217
218       commandFrame.add(tCurrentInput);
219
220       t.getManager().addEventListener("changeSelection", function(e) {
221         tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
222       });
223
224
225
226       var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
227
228       with(tDoubleClick) {
229         setTop(60);
230         setLeft(0);
231       };
232
233       commandFrame.add(tDoubleClick);
234
235       tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
236
237
238
239
240       var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
241
242       with(tTreeLines) {
243         setTop(80);
244         setLeft(0);
245         setChecked(true);
246       };
247
248       commandFrame.add(tTreeLines);
249
250       tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
251
252
253
254
255       var tHideNode = new qx.ui.form.CheckBox("Hide the root node?");
256
257       with(tHideNode) {
258         setTop(100);
259         setLeft(0);
260         setChecked(false);
261       };
262
263       commandFrame.add(tHideNode);
264
265       tHideNode.addEventListener("changeChecked", function(e) { t.setHideNode(e.getData()); });
266
267     });
268   </script>
269 </body>
270 </html>