aboutsummaryrefslogtreecommitdiff
path: root/src/util/SelectionManager.ts
diff options
context:
space:
mode:
authoryipstanley <stanley_yip@brown.edu>2019-01-18 19:31:03 -0500
committeryipstanley <stanley_yip@brown.edu>2019-01-18 19:31:03 -0500
commit22e1d39e5c6d2756a039543b33c45d9610669ec7 (patch)
treee0c91f95769c8f9774f248c98eacab89117676d7 /src/util/SelectionManager.ts
parent96dcfc8db79c035ba355d7459907f48c1f62ec08 (diff)
selection manager added
Diffstat (limited to 'src/util/SelectionManager.ts')
-rw-r--r--src/util/SelectionManager.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/util/SelectionManager.ts b/src/util/SelectionManager.ts
new file mode 100644
index 000000000..52c92d174
--- /dev/null
+++ b/src/util/SelectionManager.ts
@@ -0,0 +1,31 @@
+import { DocumentView } from "../views/nodes/DocumentView";
+import { observable, action } from "mobx";
+
+export namespace SelectionManager {
+ class Manager {
+ @observable
+ SelectedDocuments: Array<DocumentView> = [];
+
+ @action
+ SelectDoc(doc: DocumentView, ctrlPressed: boolean): void {
+ // if doc is not in SelectedDocuments, add it
+ if (!ctrlPressed) {
+ manager.SelectedDocuments = [];
+ }
+
+ if (manager.SelectedDocuments.indexOf(doc) === -1) {
+ manager.SelectedDocuments.push(doc)
+ }
+ }
+ }
+
+ const manager = new Manager;
+
+ export function SelectDoc(doc: DocumentView, ctrlPressed: boolean): void {
+ manager.SelectDoc(doc, ctrlPressed)
+ }
+
+ export function IsSelected(doc: DocumentView): boolean {
+ return manager.SelectedDocuments.indexOf(doc) !== -1;
+ }
+} \ No newline at end of file