Skip to content

Commit 75a5f80

Browse files
committed
🔨 Temporary refactor demo app
Long term support will involve moving major features into the examples folder.
1 parent 27fbb40 commit 75a5f80

File tree

2 files changed

+32
-51
lines changed

2 files changed

+32
-51
lines changed

src/App.vue

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<div style="display: flex">
33
<!-- Example of how to customise appearance of tree items -->
4-
<tree-view :treeViewItems="treeViewNodes" @created="customiseTreeView">
4+
<tree-view :treeViewItems="treeViewNodes" @created="customiseTreeView" selectionMode='Multiple'>
55
<template v-slot:icon="treeViewItem">
66
<img src="@/assets/folder.svg" alt="folder" v-if="treeViewItem.type === 'folder'" >
77
<img src="@/assets/word.svg" alt="vue-logo" v-else-if="treeViewItem.type === '.doc'" height="18" width="18">
@@ -11,7 +11,7 @@
1111
</tree-view>
1212

1313
<!-- Examples of how to subscribe for events -->
14-
<tree-view :treeViewItems="schools" @created="customiseSchools" />
14+
<!-- <tree-view :treeViewItems="schools" @created="customiseSchools" selectionMode='Multiple' /> -->
1515
</div>
1616
</template>
1717

@@ -23,20 +23,18 @@ import { TreeViewCreatedEventPayload, TreeViewItem } from '@/businessLogic/contr
2323
@Component
2424
export default class App extends Vue {
2525
26-
customiseTreeView(treeCreatedEvent: TreeViewCreatedEventPayload) {
26+
customiseTreeView(treeCreatedEvent: TreeViewCreatedEventPayload): void {
2727
const customisations = treeCreatedEvent.itemCustomisations;
28-
const eventManager = treeCreatedEvent.eventManager;
29-
3028
customisations.makeItemsCheckable([".doc", ".excel", "media" ]);
3129
}
3230
33-
customiseSchools(treeCreatedEvent: TreeViewCreatedEventPayload) {
34-
const customisations = treeCreatedEvent.itemCustomisations;
35-
const eventManager = treeCreatedEvent.eventManager;
31+
// customiseSchools(treeCreatedEvent: TreeViewCreatedEventPayload): void {
32+
// const customisations = treeCreatedEvent.itemCustomisations;
33+
// const eventManager = treeCreatedEvent.eventManager;
3634
37-
eventManager.subscribeToItemChecked("department", (items) => console.log(items));
38-
customisations.makeItemsCheckable(["department"]);
39-
}
35+
// eventManager.subscribeToItemChecked("department", (items) => console.log(items));
36+
// customisations.makeItemsCheckable(["department"]);
37+
// }
4038
4139
4240
treeViewNodes: TreeViewItem[] = [
@@ -138,26 +136,26 @@ export default class App extends Vue {
138136
}
139137
];
140138
141-
schools: TreeViewItem[] = [
142-
{
143-
id: '1',
144-
type: 'school',
145-
name: 'Vue School',
146-
children: [
147-
{
148-
id: '2',
149-
type: 'department',
150-
name: 'Typescript Department',
151-
parentId: '1'
152-
},
153-
{
154-
id: '3',
155-
type: 'department',
156-
name: 'Open Source Department',
157-
parentId: '1'
158-
}
159-
]
160-
}
161-
]
139+
// schools: TreeViewItem[] = [
140+
// {
141+
// id: '1',
142+
// type: 'school',
143+
// name: 'Vue School',
144+
// children: [
145+
// {
146+
// id: '2',
147+
// type: 'department',
148+
// name: 'Typescript Department',
149+
// parentId: '1'
150+
// },
151+
// {
152+
// id: '3',
153+
// type: 'department',
154+
// name: 'Open Source Department',
155+
// parentId: '1'
156+
// }
157+
// ]
158+
// }
159+
// ]
162160
}
163161
</script>

src/businessLogic/treviewViewModel/treeViewViewModel.ts

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,6 @@ import { eventHub } from "@/businessLogic/eventHub/explorerEventPublisher";
33
import { cascadeStateToDescendants, flattenNodes } from "../hierachyTraversal/hierachyTraversal";
44

55
let flattenedNodesLookUp: { [id: string]: TreeViewItem } = {};
6-
let selectionMode: SelectionMode = 'Multiple';
7-
8-
// This stores the collection of selected items.
9-
// Selection could have been through 'Click-to-select' or done through
10-
// Checkbox `isChecked` property.
11-
12-
let selectedItems: TreeViewItem[] = [];
136

147
export const notifyParentOfSelection = (item: TreeViewItem): void => {
158
const parentId = item.parentId as string;
@@ -26,7 +19,6 @@ export const notifyParentOfSelection = (item: TreeViewItem): void => {
2619

2720
if (isEveryChildChecked) {
2821
parent.checkedStatus = 'True';
29-
selectedItems.push(parent);
3022
}
3123
else if (isAnyIntermediate || (hasAnUncheckedChild && hasACheckedChild)) {
3224
parent.checkedStatus = 'Indeterminate';
@@ -49,14 +41,10 @@ export const TreeViewModel: TreeViewViewModel = {
4941
checkedStatusChanged(item: TreeViewItem): void {
5042
if (item.checkedStatus == 'True')
5143
{
52-
selectedItems.push(item);
5344
eventHub.onItemChecked(item);
5445
}
5546
else
5647
{
57-
const index = selectedItems.indexOf(item);
58-
if (index > -1) selectedItems.splice(index, 1);
59-
6048
eventHub.onItemUnChecked(item);
6149
}
6250

@@ -111,13 +99,8 @@ export const TreeViewModel: TreeViewViewModel = {
11199
},
112100

113101
setSelectionMode(mode: SelectionMode): void {
114-
selectionMode = mode;
115-
selectedItems.forEach(item => {
116-
item.checkedStatus = 'False';
117-
});
118-
119-
selectedItems = [];
102+
eventHub.setSelectionMode(mode);
120103
},
121104

122-
selectedItems
105+
selectedItems: eventHub.selectedItems
123106
}

0 commit comments

Comments
 (0)