From 22e1d39e5c6d2756a039543b33c45d9610669ec7 Mon Sep 17 00:00:00 2001 From: yipstanley Date: Fri, 18 Jan 2019 19:31:03 -0500 Subject: selection manager added --- src/util/SelectionManager.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/util/SelectionManager.ts (limited to 'src/util/SelectionManager.ts') 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 = []; + + @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 -- cgit v1.2.3-70-g09d2