www.gusucode.com > mbcview 工具箱matlab源码程序 > mbcview/+cageview/+optimoutput/RetainOutputView.m
classdef RetainOutputView < mbcgui.multiview.View %RetainOutputView properties (SetAccess=private) PreservedSwitchCard end methods function obj = RetainOutputView(varargin) obj@mbcgui.multiview.View(varargin{:}); % Preserved indicator items RetainPanel = mbcgui.container.layoutpanel(... 'Parent', obj.Parent, ... 'BorderType', 'beveledout'); hPreservedControl = mbcgui.widget.IconText('Parent', RetainPanel, ... 'Style', 'item', ... 'String', 'Retained', ... 'TooltipString', sprintf('%s\n%s', ... 'This optimization output is being retained and will not ', ... 'be overwritten when the optimization is re-run'), ... 'ImageFile', 'cglock.bmp'); set(RetainPanel, 'LayoutComponent', {hPreservedControl}); obj.PreservedSwitchCard = xregcardlayout(obj.Parent, ... 'numcards', 2); attach(obj.PreservedSwitchCard, RetainPanel, 2); obj.ContentHandle = RetainPanel; addMessageServiceListener(obj, [event.listener(obj.MessageService, 'PreserveChanged',@obj.onCheckRetainState);... event.listener(obj.MessageService, 'ObjectChanged',@obj.onCheckRetainState)]) end end methods (Access=private) function onCheckRetainState(obj,~,~) %onCheckRetainState display the RetainOutput icon ms = obj.MessageService; pNode = ms.Pointer; if pNode.isPreserved % Can't "preserve" an already preserved node PresIndSize = 60; PresCard = 2; else PresIndSize = 0; PresCard = 1; end % needs to be in framework or Indexer set(obj.PreservedSwitchCard, 'CurrentCard', PresCard); CS = get(obj.TopFrameGrid, 'colsizes'); CS(end) = PresIndSize; set(obj.TopFrameGrid, 'colsizes', CS); end end end