You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: HydroSight_GUI.m
    path of file: ./repos/HydroSight/GUI
    
    the code of the file until where you have to start completion: classdef HydroSight_GUI < handle  
    %HydroSight_GUI Build and controls HydroSight GUI
    %   Detailed explanation goes here
    
    % class properties - Public properties are those where is accees is
    % required for unit testing (ie callbacks and input of data) and the
    % models (for user access via the .mat project file). Private are those
    % only required for intyernal control of GUI.
    properties(Access=public)
        %doingUnitTesting = false;

        % GUI properies for the overall figure.
        Figure;        
        figure_Menu
        figure_contextMenu
        figure_examples
        figure_Help
        figure_Layout 
        figure_icon
        
        % GUI properties for the individual tabs.
        tab_Project
        tab_DataPrep;
        tab_ModelConstruction;
        tab_ModelCalibration;        
        tab_ModelSimulation;
        
        % Store model data
        models=[];        
    end
    properties(Access=private)        
        % Model types
    
function onOpen(this,~,~)
            
            % Check if all of the GUI tables are empty. If not, warn the
            % user the opening the example will delete the existing data.
            if ~isempty(this.tab_Project.project_name.String) || ...
            ~isempty(this.tab_Project.project_description.String) || ...
            (size(this.tab_ModelConstruction.Table.Data,1)~=0 && any(~any(cellfun( @(x) isempty(x), this.tab_ModelConstruction.Table.Data(:,1:9))))) || ...
            (size(this.tab_ModelCalibration.Table.Data,1)~=0 && any(~any(cellfun( @(x) isempty(x), this.tab_ModelCalibration.Table.Data)))) || ...
            (size(this.tab_ModelSimulation.Table.Data,1)~=0 && any(~any(cellfun( @(x) isempty(x), this.tab_ModelSimulation.Table.Data))))

                response = questdlg_timer(this.figure_icon,15,{'Opening a new project will close the current project.','','Do you want to continue?'}, ...
                 'Close the current project?','Yes','No','No');
                
                if isempty(response) || strcmp(response,'No')
                    set(this.Figure, 'pointer', 'arrow');                    
                    return;
                end