Skip to content

Commit 714decd

Browse files
Merge pull request #4 from phillip-kruger/main
Writen from scratch, removing vaadin tree.
2 parents 5ab037e + 2bf42e7 commit 714decd

File tree

4 files changed

+190
-1807
lines changed

4 files changed

+190
-1807
lines changed

example/index.html

Lines changed: 64 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,79 @@
11
<!DOCTYPE html>
2+
<html lang="en">
23
<head>
3-
<title>Directory tree web component demo</title>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>Directory Tree Web Component Demo</title>
47
<script type="module" src="./qui-directory-tree.js"></script>
58
<style>
6-
.row {
7-
display: flex;
8-
align-items: baseline;
9-
}
10-
.col {
11-
display: flex;
12-
flex-direction: column;
13-
gap: 20px;
14-
}
9+
.row {
10+
display: flex;
11+
align-items: baseline;
12+
}
13+
.col {
14+
display: flex;
15+
flex-direction: column;
16+
gap: 20px;
17+
}
18+
button {
19+
padding: 10px 20px;
20+
cursor: pointer;
21+
}
1522
</style>
16-
1723
</head>
1824
<body>
1925
<h1>Directory Tree</h1>
20-
<!-- Use the directory tree component -->
21-
<qui-directory-tree></qui-directory-tree>
26+
27+
<!-- Use the directory tree component -->
28+
<qui-directory-tree id="directoryTree"></qui-directory-tree>
29+
30+
<!-- Add a button to trigger the file selection -->
31+
<div class="row">
32+
<button id="selectFileButton">Select "Folder1/SubFolder1/File2.txt"</button>
33+
<button id="collapseAllButton">Collapse All</button>
34+
<button id="expandAllButton">Expand All</button>
35+
</div>
2236

23-
<script>
24-
// Define sample data for the directory structure
25-
const directoryData = [
37+
<script>
38+
// Define sample data for the directory structure
39+
const directoryData = [
40+
{
41+
name: 'Folder1',
42+
type: 'folder',
43+
children: [
44+
{ name: 'File1.txt', type: 'file' },
2645
{
27-
name: 'Folder1',
28-
type: 'folder',
29-
children: [
30-
{ name: 'File1.txt', type: 'file' },
31-
{
32-
name: 'SubFolder1',
33-
type: 'folder',
34-
children: [{ name: 'File2.txt', type: 'file' }],
35-
},
36-
],
46+
name: 'SubFolder1',
47+
type: 'folder',
48+
children: [{ name: 'File2.txt', type: 'file' }],
3749
},
38-
{ name: 'File3.txt', type: 'file' },
39-
];
50+
],
51+
},
52+
{ name: 'File3.txt', type: 'file' },
53+
];
54+
55+
const treeComponent = document.querySelector('#directoryTree');
56+
treeComponent.directory = directoryData;
57+
58+
document.querySelector('#selectFileButton').addEventListener('click', () => {
59+
const filePath = 'Folder1/SubFolder1/File2.txt';
60+
treeComponent.selectFile(filePath);
61+
});
62+
63+
64+
document.querySelector('#collapseAllButton').addEventListener('click', () => {
65+
treeComponent.collapseAll();
66+
});
4067

41-
// Set the directory data to the component
42-
const treeComponent = document.querySelector('qui-directory-tree');
43-
treeComponent.directory = directoryData;
68+
document.querySelector('#expandAllButton').addEventListener('click', () => {
69+
treeComponent.expandAll();
70+
});
4471

45-
treeComponent.addEventListener('file-select', (event) => {
46-
console.log('File selected:', event.detail.file);
47-
});
48-
</script>
72+
treeComponent.addEventListener('file-select', (event) => {
73+
console.log('File selected:', event.detail.file);
74+
console.log('Is it a file?', event.detail.isFile);
75+
console.log('Node type:', event.detail.nodeType);
76+
});
77+
</script>
4978
</body>
5079
</html>

0 commit comments

Comments
 (0)