Skip to content
TTdiag.m 3.71 KiB
Newer Older
Colin Eles's avatar
Colin Eles committed
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)
    data = get(blockHandleTTTopMask,'UserData')
    if(~isempty(data))
        data_new = data.clone(blockHandleTTTopMask);  
Colin Eles's avatar
Colin Eles committed
    %    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',data_new)
Colin Eles's avatar
Colin Eles committed
    end
end

function LocalOpenBlockFcn(blockHandleTTTopMask)

        modelHandle = bdroot(blockHandleTTTopMask);
Colin Eles's avatar
Colin Eles committed


    % check if the user is trying to open the block from the library
    if strcmp(get_param(modelHandle,'Lock'), 'on') || ...
Colin Eles's avatar
Colin Eles committed
     strcmp(get_param(blockHandleTTTopMask,'LinkStatus'),'implicit')

      errordlg(...
          DAStudio.message('can not open Model Locked, Add to new model to use'),...
Colin Eles's avatar
Colin Eles committed
          'Error', 'modal')
    return
        end

     

    data = get_param(blockHandleTTTopMask,'UserData');
    
    if isempty(data)
        data = Data();
        data.init();
Colin Eles's avatar
Colin Eles committed
        
%         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 ~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's avatar
Colin Eles committed
        
    end
    
    gui = GUI(blockHandleTTTopMask);   
    
    gui.setData(data)
    gui.init();
%         
%         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',data); 
Colin Eles's avatar
Colin Eles committed
        set_param(blockHandleTTTopMask, 'UserDataPersistent', 'on');

Colin Eles's avatar
Colin Eles committed
end

function LocalCloseRequestBlockFcn(blockHandleTTTopMask)
modelHandle = bdroot(blockHandleTTTopMask);


data = get_param(blockHandleTTTopMask,'UserData')
Colin Eles's avatar
Colin Eles committed

if ~isempty(data)
    if data.open
        delete(data.fig)
    end
end
        %set_param(gui.fig,'Visible','off')
Colin Eles's avatar
Colin Eles committed
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