3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4 <title>qooxdoo » Demo</title>
5 <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
7 <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
9 <script type="text/javascript" src="../../script/qx.js"></script>
12 <script type="text/javascript" src="../../script/layout.js"></script>
14 <div id="demoDescription">
15 <p>Drag and Drop between trees and inside a tree.</p>
18 <script type="text/javascript">
19 qx.core.Init.getInstance().defineMain(function()
21 function handleDragStart(e)
23 e.addData("qx.ui.tree.AbstractTreeElement", e.getCurrentTarget());
28 function handleDragDrop(e)
30 var vType = e.getDropDataTypes()[0];
31 var vSource = e.getData(vType);
32 var vTarget = e.getCurrentTarget();
34 vSource.getTree().getManager().deselectAll();
40 function supportsDrop(vDragCache) {
41 return !vDragCache.sourceWidget.contains(this);
44 function handleDragOver(e)
46 var l = e.getTarget().getLabelObject();
47 l.setStyleProperty("textDecoration", "underline");
50 function handleDragOut(e)
52 var l = e.getTarget().getLabelObject();
53 l.removeStyleProperty("textDecoration");
58 var treeSource = new qx.ui.tree.Tree("Source");
62 setBackgroundColor(255);
63 setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
64 setOverflow("scrollY");
72 addEventListener("dragdrop", handleDragDrop);
73 addEventListener("dragover", handleDragOver);
74 addEventListener("dragout", handleDragOut);
76 setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
79 qx.ui.core.ClientDocument.getInstance().add(treeSource);
81 for (var i=1, f; i<4; i++)
83 f = new qx.ui.tree.TreeFolder("Folder " + i);
85 f.addEventListener("dragstart", handleDragStart);
86 f.addEventListener("dragdrop", handleDragDrop);
87 f.addEventListener("dragover", handleDragOver);
88 f.addEventListener("dragout", handleDragOut);
90 f.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
91 f.supportsDrop = supportsDrop;
95 for (var j=1, g; j<4; j++)
97 g = new qx.ui.tree.TreeFolder("Subfolder " + j);
99 g.addEventListener("dragstart", handleDragStart);
100 g.addEventListener("dragdrop", handleDragDrop);
101 g.addEventListener("dragover", handleDragOver);
102 g.addEventListener("dragout", handleDragOut);
104 g.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
105 g.supportsDrop = supportsDrop;
109 for (var k=1, h; k<4; k++)
111 h = new qx.ui.tree.TreeFile("File " + k);
113 h.addEventListener("dragstart", handleDragStart);
123 var treeDest = new qx.ui.tree.Tree("Dest");
127 setBackgroundColor(255);
128 setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
129 setOverflow("scrollY");
137 addEventListener("dragdrop", handleDragDrop);
138 addEventListener("dragover", handleDragOver);
139 addEventListener("dragout", handleDragOut);
141 setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
144 qx.ui.core.ClientDocument.getInstance().add(treeDest);