Newer
Older
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)
Colin Eles
committed
data = get(blockHandleTTTopMask,'UserData')
if(~isempty(data))
data_new = data.clone(blockHandleTTTopMask);
set_param(blockHandleTTTopMask,'UserData',data_new)
end
end
function LocalOpenBlockFcn(blockHandleTTTopMask)
Colin Eles
committed
modelHandle = bdroot(blockHandleTTTopMask);
Colin Eles
committed
% check if the user is trying to open the block from the library
if strcmp(get_param(modelHandle,'Lock'), 'on') || ...
strcmp(get_param(blockHandleTTTopMask,'LinkStatus'),'implicit')
errordlg(...
Colin Eles
committed
DAStudio.message('can not open Model Locked, Add to new model to use'),...
Colin Eles
committed
data = get_param(blockHandleTTTopMask,'UserData');
if isempty(data)
data = Data();
data.init();
Colin Eles
committed
else
if ~data.valid
errordlg(...
DAStudio.message('Block Data has been corputed'),...
'Error', 'modal')
return
end
if data.open
if ishghandle(data.fig)
figure(data.fig)
end
return
end
Colin Eles
committed
end
gui = GUI(blockHandleTTTopMask);
gui.setData(data)
gui.init();
Colin Eles
committed
set_param(blockHandleTTTopMask,'UserData',data);
set_param(blockHandleTTTopMask, 'UserDataPersistent', 'on');
Colin Eles
committed
end
function LocalCloseRequestBlockFcn(blockHandleTTTopMask)
modelHandle = bdroot(blockHandleTTTopMask);
Colin Eles
committed
data = get_param(blockHandleTTTopMask,'UserData')
Colin Eles
committed
if ~isempty(data)
if data.open
delete(data.fig)
end
end
%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