www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/+xregdesgui/TreeView.m
classdef TreeView < mbcgui.widget.BasicContainer %TreeView design treeview % Copyright 2015 The MathWorks, Inc. and Ford Global Technologies, Inc. properties %DesignTree mbctreeadapter.DesignEditorTree DesignTree %Actions Actions end properties (Dependent,SetAccess=private) %UITree uitree component (mbctreeadapter.UIDesignTree) UITree end methods function obj = TreeView(varargin) %TreeView constructor obj@mbcgui.widget.BasicContainer(varargin{:}); pnl = mbcgui.container.titlebarpanel(... 'Parent', obj.Parent, ... 'BarTitle', 'Design Tree', ... 'Tag', 'TreePanel'); D = obj.DesignTree; D.createUITree('Parent',pnl,... 'SelectionChangedCallback',@obj.onSelectTree,... 'TreeEditedCallback',@obj.onRenameTree,... 'DeletePressedCallback',@obj.onDeleteTree,... 'InsertPressedCallback',@obj.onInsertTree); pnl.ContentHandle = D.UITree; % Tree Context Menu designActions = obj.Actions; uic=uicontextmenu('Parent',ancestor(pnl,'figure'),'Callback',@(h,evt) designActions.enable()); designActions.createTreeContextMenuItems(uic); set(obj.UITree,'UIContextMenu',uic); % move outside obj.ContentHandle = pnl; end function T = get.UITree(obj) T = obj.DesignTree.UITree; end end methods (Access=private) function onSelectTree(obj,~,evt) %onSelectTree select tree node callback if ~isequal(evt.Data.NewNode,evt.Data.OldNode) busy(obj.DesignTree) select(obj.DesignTree,evt.Data.NewNode); idle(obj.DesignTree) end end function onRenameTree(obj,~,evt) %onRenameTree rename tree node callback d = evt.Data.Node; rename(obj.DesignTree,d,evt.Data.NewName) end function onDeleteTree(obj,~,~) %onDeleteTree tree delete key callback if obj.Actions.DeleteDesign.Enabled % Remove message obj.Actions.DeleteDesign.execute() end end function onInsertTree(obj,~,evt) %onInsertTree tree isert key callback if obj.Actions.NewDesign.Enabled d= evt.Data.Node; des = setlock(d.info,false); add(obj.DesignTree,des,d); end end end end