Skip to content
Snippets Groups Projects
collecttool.js 1.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • import Tool from "./tool";
    import { CONTEXT } from "../state";
    
    import { CollectMenu, COLLECTION_KEY } from "./menus/collectmenu";
    
    import CollectIcon from "../../images/tools/collect.png";
    
    import { Editor } from "../components/editor";
    
    
    export default class CollectTool extends Tool {
    
    Maximilian Giller's avatar
    Maximilian Giller committed
        constructor(key) {
    
            super("Collect", CollectIcon, key, new CollectMenu());
    
    Maximilian Giller's avatar
    Maximilian Giller committed
        }
    
        onNodeClick(node) {
    
            if (Editor.globalState.itemsContext !== CONTEXT.node) {
                Editor.globalState.clearSelectedItems();
                Editor.globalState.itemsContext = CONTEXT.node;
    
    Maximilian Giller's avatar
    Maximilian Giller committed
            }
    
    
            if (Editor.globalState.selectedItems.has(node)) {
                Editor.globalState.removeSelectedItem(node);
    
    Maximilian Giller's avatar
    Maximilian Giller committed
            } else {
    
                Editor.globalState.addSelectedItem(node);
    
    Maximilian Giller's avatar
    Maximilian Giller committed
            }
    
            this.menu.value(COLLECTION_KEY, Editor.globalState.selectedItems);
    
    Maximilian Giller's avatar
    Maximilian Giller committed
        }
    
        onLinkClick(link) {
    
            if (Editor.globalState.itemsContext !== CONTEXT.link) {
                Editor.globalState.clearSelectedItems();
                Editor.globalState.itemsContext = CONTEXT.link;
    
    Maximilian Giller's avatar
    Maximilian Giller committed
            }
    
    
            if (Editor.globalState.selectedItems.has(link)) {
                Editor.globalState.removeSelectedItem(link);
    
    Maximilian Giller's avatar
    Maximilian Giller committed
            } else {
    
                Editor.globalState.addSelectedItem(link);
    
    Maximilian Giller's avatar
    Maximilian Giller committed
            }
    
            this.menu.value(COLLECTION_KEY, Editor.globalState.selectedItems);
    
        }
    
        onMenuChange(key, value) {
            if (key === COLLECTION_KEY && value === undefined) {
    
                Editor.globalState.clearSelectedItems();
    
                this.menu.value(COLLECTION_KEY, []);
            }
    
    Maximilian Giller's avatar
    Maximilian Giller committed
        }