2021SC@SDUSC
ToolManager模块详解
主要功能:管理插件,接收插件的注册与handler注册
属性:
tools:存有全部的tool列表
Tool_list:按照tools中的所属slot分类过后的差价列表,以插件类型为键名,属性为一个tool数组
handlers:存有插件注册的handler,object类型,以handler的id为键
方法:
CalcToollist:将tools计算成tool_list
Gettoollist:传入一个slot,返回对应的tool数组
//plugin系列方法,plugin是左侧工具栏
Getinitialplugin:返回plugin下的第一个tool
getInitialPluginId:返回plugin下第一个tool的id
getCurrentPlugin:获取this.current_plugin对应id的组件
具体操作方法是for循环plugin下属的所有组件列表
Sercurrentplugin:接收一个id,for循环遍历plugin列表,若有id=tool.id,将this.current_plugin设置成对应id,猜测可能是防止设置了不存在的current_id。最后调用了enging.cleartooltemp方法(?)
Initialize:初始化,首先调用clear方法,该方法将当前plugin的改成了第一个,即初始化指向第一个插件
然后初始化toollist。然后调用setupeventhandler方法
InitializeEditor:点击一下第一个plugin中的tool(手动触发其on_click)
_setupEventHandlers:向mouseinput,input中注册了handler,handler的回调来自processhandler
Processhandler:
方法如下,将所有的鼠标有关的输入都交给了callMouseHandler'处理,而所有键盘输入都交给callKeyHandler处理
Cancurrentplugincall:
判断当前是否是选中了传入的该id,并返回布尔值
Callmousehandler:for循环handler,,若type与指定type相同且判断是当前的插件,则调用该handler的回调