Skip to content

Commit e9ef0dc

Browse files
committed
Show tree asynchronously
1 parent 63e72aa commit e9ef0dc

3 files changed

Lines changed: 110 additions & 100 deletions

File tree

snap-develop/src/main/resources/resource/js/tree.js

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11,54 +11,58 @@ var FileTree;
1111
if (expandPath != null) {
1212
requestPath += "&expand=" + expandPath;
1313
}
14-
$.get(requestPath, function (response) {
15-
$('#' + element).html(response);
14+
jQuery.ajax({
15+
url: requestPath,
16+
success: function (response) {
17+
$('#' + element).html(response);
18+
showFancyTree(id, treeMenuHandler, clickCallback); // show the fancy tree
19+
},
20+
async: true
1621
});
17-
function showFancyTree() {
18-
// using default options
19-
$('#' + id).fancytree({
20-
click: clickCallback,
21-
expand: function (event, data) {
22-
Command.folderExpand(data.node.key);
23-
},
24-
collapse: function (event, data) {
25-
Command.folderCollapse(data.node.key);
26-
}
27-
});
28-
if (treeMenuHandler != null) {
29-
$("#" + id).contextmenu({
30-
delegate: "span.fancytree-title",
31-
menu: [
32-
{ title: " New", uiIcon: "menu-new", children: [
33-
{ title: " File", cmd: "newFile", uiIcon: "menu-new" },
34-
{ title: " Directory", cmd: "newDirectory", uiIcon: "menu-new" }
35-
] },
36-
{ title: " Save", cmd: "saveFile", uiIcon: "menu-save" },
37-
{ title: " Rename", cmd: "renameFile", uiIcon: "menu-rename" },
38-
{ title: " Delete", cmd: "deleteFile", uiIcon: "menu-trash", disabled: false },
39-
{ title: " Run", cmd: "runScript", uiIcon: "menu-run" },
40-
{ title: " Explore", cmd: "exploreDirectory", uiIcon: "menu-explore" } //,
41-
],
42-
beforeOpen: function (event, ui) {
43-
var node = $.ui.fancytree.getNode(ui.target);
44-
node.setActive();
45-
var $menu = ui.menu, $target = ui.target, extraData = ui.extraData; // passed when menu was opened by call to open()
46-
ui.menu.zIndex($(event.target).zIndex() + 2000);
47-
},
48-
select: function (event, ui) {
49-
var node = $.ui.fancytree.getNode(ui.target);
50-
var resourcePath = createResourcePath(node.tooltip);
51-
var commandName = ui.cmd;
52-
var elementId = ui.key;
53-
treeMenuHandler(resourcePath, commandName, elementId, node.isFolder());
54-
}
55-
});
56-
}
57-
}
58-
window.setTimeout(showFancyTree, 500);
5922
});
6023
}
6124
FileTree.createTreeOfDepth = createTreeOfDepth;
25+
function showFancyTree(id, treeMenuHandler, clickCallback) {
26+
// using default options
27+
$('#' + id).fancytree({
28+
click: clickCallback,
29+
expand: function (event, data) {
30+
Command.folderExpand(data.node.key);
31+
},
32+
collapse: function (event, data) {
33+
Command.folderCollapse(data.node.key);
34+
}
35+
});
36+
if (treeMenuHandler != null) {
37+
$("#" + id).contextmenu({
38+
delegate: "span.fancytree-title",
39+
menu: [
40+
{ title: " New", uiIcon: "menu-new", children: [
41+
{ title: " File", cmd: "newFile", uiIcon: "menu-new" },
42+
{ title: " Directory", cmd: "newDirectory", uiIcon: "menu-new" }
43+
] },
44+
{ title: " Save", cmd: "saveFile", uiIcon: "menu-save" },
45+
{ title: " Rename", cmd: "renameFile", uiIcon: "menu-rename" },
46+
{ title: " Delete", cmd: "deleteFile", uiIcon: "menu-trash", disabled: false },
47+
{ title: " Run", cmd: "runScript", uiIcon: "menu-run" },
48+
{ title: " Explore", cmd: "exploreDirectory", uiIcon: "menu-explore" } //,
49+
],
50+
beforeOpen: function (event, ui) {
51+
var node = $.ui.fancytree.getNode(ui.target);
52+
node.setActive();
53+
var $menu = ui.menu, $target = ui.target, extraData = ui.extraData; // passed when menu was opened by call to open()
54+
ui.menu.zIndex($(event.target).zIndex() + 2000);
55+
},
56+
select: function (event, ui) {
57+
var node = $.ui.fancytree.getNode(ui.target);
58+
var resourcePath = createResourcePath(node.tooltip);
59+
var commandName = ui.cmd;
60+
var elementId = ui.key;
61+
treeMenuHandler(resourcePath, commandName, elementId, node.isFolder());
62+
}
63+
});
64+
}
65+
}
6266
function isResourceFolder(path) {
6367
if (!path.endsWith("/")) {
6468
var parts = path.split(".");

snap-develop/src/main/resources/resource/js/tree.min.js

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

snap-develop/src/main/resources/resource/ts/tree.ts

Lines changed: 57 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -13,59 +13,65 @@ module FileTree {
1313
if(expandPath != null) {
1414
requestPath += "&expand="+expandPath;
1515
}
16-
$.get(requestPath, function(response) {
17-
$('#' + element).html(response);
18-
})
19-
function showFancyTree() {
20-
// using default options
21-
$('#' + id).fancytree({
22-
click : clickCallback,
23-
expand: function(event, data) {
24-
Command.folderExpand(data.node.key);
25-
},
26-
collapse: function(event, data) {
27-
Command.folderCollapse(data.node.key);
28-
}
29-
});
30-
if(treeMenuHandler != null) {
31-
$("#" + id).contextmenu({
32-
delegate: "span.fancytree-title",
33-
menu: [
34-
{title: " New", uiIcon: "menu-new", children: [
35-
{title: " File", cmd: "newFile", uiIcon: "menu-new"},
36-
{title: " Directory", cmd: "newDirectory", uiIcon: "menu-new"}
37-
]},
38-
{title: " Save", cmd: "saveFile", uiIcon: "menu-save"},
39-
{title: " Rename", cmd: "renameFile", uiIcon: "menu-rename"},
40-
{title: " Delete", cmd: "deleteFile", uiIcon: "menu-trash", disabled: false },
41-
{title: " Run", cmd: "runScript", uiIcon: "menu-run"},
42-
{title: " Explore", cmd: "exploreDirectory", uiIcon: "menu-explore"} //,
43-
//{title: "----"},
44-
//{title: "Edit", cmd: "edit", uiIcon: "ui-icon-pencil", disabled: true },
45-
//{title: "Delete", cmd: "delete", uiIcon: "ui-icon-trash", disabled: true }
46-
],
47-
beforeOpen: function(event, ui) {
48-
var node = $.ui.fancytree.getNode(ui.target);
49-
node.setActive();
50-
var $menu = ui.menu,
51-
$target = ui.target,
52-
extraData = ui.extraData; // passed when menu was opened by call to open()
53-
54-
ui.menu.zIndex( $(event.target).zIndex() + 2000);
55-
},
56-
select: function(event, ui) {
57-
var node = $.ui.fancytree.getNode(ui.target);
58-
var resourcePath = createResourcePath(node.tooltip);
59-
var commandName = ui.cmd;
60-
var elementId = ui.key;
61-
62-
treeMenuHandler(resourcePath, commandName, elementId, node.isFolder());
63-
}
64-
});
65-
}
16+
jQuery.ajax({
17+
url: requestPath,
18+
success: function (response) {
19+
$('#' + element).html(response);
20+
showFancyTree(id, treeMenuHandler, clickCallback); // show the fancy tree
21+
},
22+
async: true
23+
});
24+
25+
});
26+
}
27+
28+
function showFancyTree(id, treeMenuHandler, clickCallback) {
29+
// using default options
30+
$('#' + id).fancytree({
31+
click : clickCallback,
32+
expand: function(event, data) {
33+
Command.folderExpand(data.node.key);
34+
},
35+
collapse: function(event, data) {
36+
Command.folderCollapse(data.node.key);
6637
}
67-
window.setTimeout(showFancyTree, 500);
6838
});
39+
if(treeMenuHandler != null) {
40+
$("#" + id).contextmenu({
41+
delegate: "span.fancytree-title",
42+
menu: [
43+
{title: " New", uiIcon: "menu-new", children: [
44+
{title: " File", cmd: "newFile", uiIcon: "menu-new"},
45+
{title: " Directory", cmd: "newDirectory", uiIcon: "menu-new"}
46+
]},
47+
{title: " Save", cmd: "saveFile", uiIcon: "menu-save"},
48+
{title: " Rename", cmd: "renameFile", uiIcon: "menu-rename"},
49+
{title: " Delete", cmd: "deleteFile", uiIcon: "menu-trash", disabled: false },
50+
{title: " Run", cmd: "runScript", uiIcon: "menu-run"},
51+
{title: " Explore", cmd: "exploreDirectory", uiIcon: "menu-explore"} //,
52+
//{title: "----"},
53+
//{title: "Edit", cmd: "edit", uiIcon: "ui-icon-pencil", disabled: true },
54+
//{title: "Delete", cmd: "delete", uiIcon: "ui-icon-trash", disabled: true }
55+
],
56+
beforeOpen: function(event, ui) {
57+
var node = $.ui.fancytree.getNode(ui.target);
58+
node.setActive();
59+
var $menu = ui.menu,
60+
$target = ui.target,
61+
extraData = ui.extraData; // passed when menu was opened by call to open()
62+
63+
ui.menu.zIndex( $(event.target).zIndex() + 2000);
64+
},
65+
select: function(event, ui) {
66+
var node = $.ui.fancytree.getNode(ui.target);
67+
var resourcePath = createResourcePath(node.tooltip);
68+
var commandName = ui.cmd;
69+
var elementId = ui.key;
70+
71+
treeMenuHandler(resourcePath, commandName, elementId, node.isFolder());
72+
}
73+
});
74+
}
6975
}
7076

7177
export function isResourceFolder(path) {

0 commit comments

Comments
 (0)