class Tool {
    constructor(name, key) {
        this.name = name;
        this.key = key;
        this.warnings = false;
    }

    getName() {
        return this.name;
    }

    getKey() {
        return this.key;
    }

    onNodeClick(node) {
        if (this.warnings) {
            console.warn('Method "onNodeClick" not implemented.');
        }
    }

    onLinkClick(link) {
        if (this.warnings) {
            console.warn('Method "onLinkClick" not implemented.');
        }
    }

    onKeyDown(key) {
        if (this.warnings) {
            console.warn('Method "onKeyDown" not implemented.');
        }
    }

    onKeyUp(key) {
        if (this.warnings) {
            console.warn('Method "onKeyUp" not implemented.');
        }
    }

    nodeCanvasObject(node, ctx) {
        if (this.warnings) {
            console.warn('Method "nodeCanvasObject" not implemented.');
        }
    }

    nodeCanvasObjectMode(node) {
        if (this.warnings) {
            console.warn('Method "nodeCanvasObjectMode" not implemented.');
        }
    }

    nodePointerAreaPaint(node, color, ctx) {
        if (this.warnings) {
            console.warn('Method "nodePointerAreaPaint" not implemented.');
        }
    }

    linkWidth(link) {
        if (this.warnings) {
            console.warn('Method "linkWidth" not implemented.');
        }
    }

    linkDirectionalParticles() {
        if (this.warnings) {
            console.warn('Method "linkDirectionalParticles" not implemented.');
        }
    }

    linkDirectionalParticleWidth(link) {
        if (this.warnings) {
            console.warn(
                'Method "linkDirectionalParticleWidth" not implemented.'
            );
        }
    }
}