function TTdiag(varargin) orig_gcbh = gcbh; Action = varargin{1}; if 1 ~= nargin DAStudio.warning('improper function use') end switch Action, case 'Open', blockHandleTTTopMask = orig_gcbh; LocalOpenBlockFcn(blockHandleTTTopMask); case 'Close', blockHandleTTTopMask = orig_gcbh; LocalCloseBlockFcn(blockHandleTTTopMask); case 'Copy', blockHandleTTTopMask = orig_gcbh; LocalCopyBlockFcn(blockHandleTTTopMask); otherwise, DAStudio.error('Simulink:dialog:UnknownAction',Action); end end function LocalCopyBlockFcn(blockHandleTTTopMask) gui = get(blockHandleTTTopMask,'UserData') if(~isempty(gui)) % gui_new = copy(gui,blockHandleTTTopMask) % gui_new.function_name_text = get_param(blockHandleTTTopMask,'Name'); % gui_new.fig = []; % gui_new.block_handle = blockHandleTTTopMask; % TEMPORARY SOLUTION set_param(blockHandleTTTopMask,'UserData',[]) end end function LocalOpenBlockFcn(blockHandleTTTopMask) modelHandle = bdroot(blockHandleTTTopMask); gui = get_param(blockHandleTTTopMask,'UserData'); if ~isempty(gui) gui.block_handle = blockHandleTTTopMask; if ishghandle(gui.fig) set(gui.fig,'Visible','on') figure(gui.fig) %gui.init(); % gui.reset_wh(); % gui.draw_allgrids(); else gui.init(); end % set_param(gui.fig,'Visible','on') else if strcmp(get_param(modelHandle,'Lock'), 'on') || ... strcmp(get_param(blockHandleTTTopMask,'LinkStatus'),'implicit') errordlg(... DAStudio.message('can not open Model Locked'),... 'Error', 'modal') return end Grid2 = Grid(2,[]); Grid1 = Grid(1,[]); rGrid = RGrid(Grid1,Grid2); Grid1.set_rGrid(rGrid); Grid2.set_rGrid(rGrid); Grid2.new_Cell; Grid1.new_Cell; gui = GUI(blockHandleTTTopMask); %gui.init(); gui.set_grid(Grid2,Grid1,rGrid); gui.init(); %gui.reset_wh(); %gui.draw_allgrids(); set(Grid2.delete_cell_pb,'Enable','off'); set(Grid1.delete_cell_pb,'Enable','off'); set_param(blockHandleTTTopMask,'UserData',gui); set_param(blockHandleTTTopMask, 'UserDataPersistent', 'on'); end end function LocalCloseRequestBlockFcn(blockHandleTTTopMask) modelHandle = bdroot(blockHandleTTTopMask); gui = get_param(blockHandleTTTopMask,'UserData') set_param(gui.fig,'Visible','off') end % Make a copy of a handle object. function new = copy(this,h) % Instantiate new object of the same class. new = feval(class(this),h); % Copy all non-hidden properties. p = properties(this); for i = 1:length(p) new.(p{i}) = this.(p{i}); end end