From 0093bf961e434b283ecf0e35cfe596aaedc5f592 Mon Sep 17 00:00:00 2001 From: zhandouxiaojiji Date: Mon, 19 Oct 2020 20:42:56 +0800 Subject: [PATCH] double click fold & unfold --- render-process/Editor/BehaviorTree.tsx | 29 +++++++++++++++++++------- render-process/Editor/NodePanel.tsx | 2 -- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/render-process/Editor/BehaviorTree.tsx b/render-process/Editor/BehaviorTree.tsx index fd0540a..ecac9f4 100644 --- a/render-process/Editor/BehaviorTree.tsx +++ b/render-process/Editor/BehaviorTree.tsx @@ -1,7 +1,10 @@ import * as React from 'react'; -import GGEditor, { Mind, RegisterNode, setAnchorPointsState } from 'gg-editor'; +import GGEditor, { Mind, RegisterNode, constants, CommandManager } from 'gg-editor'; import { INode } from '@antv/g6/lib/interface/item'; import { MindData, Graph, GraphEvent } from 'gg-editor/lib/common/interfaces'; + +const { EditorCommand } = constants + const data: MindData = { id: "1", label: 'Central Topic111', @@ -27,21 +30,32 @@ interface BehaviorTreeProps { class BehaviorTree extends React.Component { graph: Graph; + mind: Mind; componentDidMount() { } initGraph(graph: Graph) { const { onSelectNode } = this.props; graph.on('click', (ev: GraphEvent) => { - if (!ev.item) { + const item = ev.item; + if (!item) { onSelectNode(null); - } else if (ev.item.getType() == "node") { - onSelectNode(ev.item as INode); + } else if (item.getType() == "node") { + onSelectNode(item as INode); } }); - graph.on('dbclick', (ev: GraphEvent) => { - console.log("dbclick", ev); + graph.on('dblclick', (ev: GraphEvent) => { + console.log("dblclick", ev); + const item = ev.item; + if (item && item.getType() == 'node') { + const commandManager: CommandManager = graph.get('commandManager'); + if (commandManager.canExecute(graph, EditorCommand.Fold)) { + commandManager.execute(graph, EditorCommand.Fold); + } else { + commandManager.execute(graph, EditorCommand.Unfold); + } + } }); graph.on('dragenter', (ev: GraphEvent) => { @@ -61,8 +75,9 @@ class BehaviorTree extends React.Component { }} data={data} ref={component => { - if (component) { + if (component && !this.graph) { this.initGraph(component.graph); + this.mind = component; } }} /> diff --git a/render-process/Editor/NodePanel.tsx b/render-process/Editor/NodePanel.tsx index fdbd5d3..c86ebf2 100644 --- a/render-process/Editor/NodePanel.tsx +++ b/render-process/Editor/NodePanel.tsx @@ -17,7 +17,6 @@ class Panel extends React.Component { } renderNode() { - console.log("NodePanel render", this.props); const { curNode } = this.props; return (
@@ -27,7 +26,6 @@ class Panel extends React.Component { } render() { - console.log("NodePanel render", this.props); const { curNode } = this.props; return (