%% init
%    initialize the Validation report, set up the gui
% inputs:
%   object:ValidationReport - current object
% outputs:
%   none
% Author: Colin Eles elesc@mcmaster.ca
% Organization: McMaster Centre for Software Certification
function [] = init(object)

if size(object.PVS_results,2) == 0
    
else
    
    object.fig_width = object.offset + object.TCC_width + object.offset + object.seq_width + object.offset + object.ce_width + object.offset;
    object.fig_height = object.offset + object.header_height + object.offset + object.seq_height + object.offset;
    
    
    object.fig = figure('units','pixels',...
        'position',[0, 0, object.fig_width, object.fig_height ],...
        'menubar','none',...
        'numbertitle','off',...
        'resize','off',...
        'CloseRequestFcn',@(src,event)close_req_call(object,src,event));
    
    if object.tc_mode == 0
        set(object.fig,'name','PVS Report');
    else
        set(object.fig,'name','CVC3 Report');
    end
    
    stop = 0;
    i = 1;
    count = 0;
    
    %first i will be '1234a'
    
    
    object.edit_tcc = uicontrol('style','edit',...
        'Parent',object.fig,...
        'units','pix',...
        'min',0,'max',1,...  % This is the key to multiline edits.
        'Max',2.0,...
        'Clipping','on',...
        'fontweight','bold',...
        'BackgroundColor',[1 1 1],...
        'horizontalalign','center',...
        'fontsize',11);
    
    object.edit_seq = uicontrol('style','edit',...
        'Parent',object.fig,...
        'units','pix',...
        'min',0,'max',1,...  % This is the key to multiline edits.
        'Max',2.0,...
        'Clipping','on',...
        'fontweight','bold',...
        'BackgroundColor',[1 1 1],...
        'horizontalalign','left',...
        'fontsize',11);
    
    
    object.edit_ce = uicontrol('style','edit',...
        'Parent',object.fig,...
        'units','pix',...
        'min',0,'max',1,...  % This is the key to multiline edits.
        'Max',2.0,...
        'Clipping','on',...
        'fontweight','bold',...
        'BackgroundColor',[1 1 1],...
        'horizontalalign','left',...
        'fontsize',11);
    
    object.pb_next = uicontrol('style','push',...
        'units','pix',...
        'string','Next',...
        'HorizontalAlign','left',...
        'Parent',object.fig,...
        'callback',@(src,event)pb_next_call(object,src,event));
    
    if(size(object.PVS_results,2)<=1)
        set(object.pb_next,'enable','off');
    end
    
    
    object.pb_prev = uicontrol('style','push',...
        'units','pix',...
        'string','Prev',...
        'HorizontalAlign','left',...
        'Parent',object.fig,...
        'enable','off',...
        'callback',@(src,event)pb_prev_call(object,src,event));
    
    object.label_tcc = uicontrol('style','text',...
        'string','TCC Name',...
        'HorizontalAlign','left',...
        'BackgroundColor',get(object.fig,'Color'));
    object.label_seq = uicontrol('style','text',...
        'string','Sequent',...
        'HorizontalAlign','left',...
        'BackgroundColor',get(object.fig,'Color'));
    object.label_ce = uicontrol('style','text',...
        'string','Counter Example',...
        'HorizontalAlign','left',...
        'BackgroundColor',get(object.fig,'Color'));
    object.label_page = uicontrol('style','text',...
        'string','',...
        'HorizontalAlign','center',...
        'BackgroundColor',get(object.fig,'Color'));
    object.label_title = uicontrol('style','text',...
        'string','Typecheck Summary',...
        'HorizontalAlign','left',...
        'FontWeight','bold',...
        'FontSize',15,...
        'BackgroundColor',get(object.fig,'Color'));
    
    if object.tc_mode == 0
    object.pb_open = uicontrol('style','push',...
        'units','pix',...
        'string','Open PVS',...
        'HorizontalAlign','left',...
        'Parent',object.fig,...
        'enable','on',...
        'callback',@(src,event)pb_open_call(object,src,event));
    end
    
    object.position;
    object.populate;
    object.gui.validation_report_handle = object.fig;
end

end

