line source
function ltpdv(varargin)
% LTPDV dataviewer based on AOs and functions in LTPDA.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% DESCRIPTION: LTPDV dataviewer based on classes and methods in LTPDA.
%
%
% VERSION: $Id: ltpdv.m,v 1.7 2008/09/02 07:51:48 hewitson Exp $
%
%
% HISTORY: 22-04-08 M Hewitson
% Creation
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Check if I exist already
id = findobj('Tag', 'LTPDVmainfig');
if ~isempty(id)
figure(id)
return
end
%% Some initial setup
Gproperties.Gcol = [240 240 240]/255;
Gproperties.Gwidth = 1100;
Gproperties.Gheight = 700;
Gproperties.Gborder = 10;
Gproperties.fontsize = 12;
Gproperties.Screen = get(0,'screensize');
Gproperties.Gposition = [Gproperties.Screen(3)/2-Gproperties.Gwidth/2 ...
Gproperties.Screen(4)/2-Gproperties.Gheight/2 ...
Gproperties.Gwidth...
Gproperties.Gheight];
% Initialize and hide the GUI as it is being constructed.
mainfig = figure('Name', 'LTPDA Dataviewer',...
'NumberTitle', 'off',...
'Visible','off',...
'Position',Gproperties.Gposition,...
'Color', Gproperties.Gcol,...
'Toolbar', 'none',...
'MenuBar', 'none',...
'Resize', 'on',...
'Tag', 'LTPDVmainfig');
% Set mainfig callbacks
set(mainfig, 'CloseRequestFcn', {'ltpdv_cb_mainfigClose', mainfig});
% Set Application data
setappdata(mainfig, 'Gproperties', Gproperties);
%% Setup GUI elements
Hmargin = Gproperties.Gborder/Gproperties.Gwidth;
Vmargin = Gproperties.Gborder/Gproperties.Gheight;
BottomMargin = 0.2;
SplitPoint = 0.35;
%----------- Object list
% Panel
pleft = Hmargin;
phght = 1-2*Vmargin;
pbot = (1 - Vmargin - phght);
pwid = SplitPoint - 2*Hmargin;
ph = uipanel(mainfig, 'Title','Object List','FontSize', Gproperties.fontsize,...
'BackgroundColor', [0.6 0.7 0.9],...
'Position',[pleft pbot pwid phght], 'Units', 'normalized');
% Object list
pmarg = 0.025;
Lleft = pmarg;
Lbottom = 0.4+pmarg;
Lwidth = 1-2*pmarg;
Lheight = 1-Lbottom-pmarg;
th = uitable(ph, ...
'Units', 'normalized',...
'ColumnName', {'Name','Type'}, ...
'ColumnWidth', {220, 100}, ...
'ColumnEditable', [true false], ...
'Position', [Lleft Lbottom Lwidth Lheight],...
'Tag', 'LTPDVobjList', ...
'CellSelectionCallback', {@ltpdv_objectList_select, mainfig}, ...
'CellEditCallback', {@ltpdv_objectList_edit, mainfig});
% Set column widths
set(th, 'Units', 'pixel');
pos = get(th, 'Position');
set(th, 'Units', 'normalized');
set(th, 'ColumnWidth', {0.7*pos(3), 0.2*pos(3)});
% Delete objects button
pleft = pmarg;
phght = 0.05;
pbott = Lbottom - phght - pmarg;
pwidt = 0.2;
pbh = uicontrol(ph,'Style','pushbutton',...
'String','Delete',...
'Callback', {@ltpdv_delete_objects, mainfig}, ...
'Units', 'normalized', ...
'Position',[pleft pbott pwidt phght]);
% Clear objects button
pleft = pmarg + pwidt + pmarg;
phght = 0.05;
pbott = Lbottom - phght - pmarg;
pwidt = 0.2;
pbh = uicontrol(ph,'Style','pushbutton',...
'String','Clear',...
'Callback', {@ltpdv_delete_objects, mainfig, 'all'}, ...
'Units', 'normalized', ...
'Position',[pleft pbott pwidt phght]);
% Save objects button
pleft = pleft + pwidt + pmarg;
phght = 0.05;
pbott = Lbottom - phght - pmarg;
pwidt = 0.2;
pbh = uicontrol(ph,'Style','pushbutton',...
'String','Save',...
'Callback', {@ltpdv_save_objects, mainfig}, ...
'Units', 'normalized', ...
'Position',[pleft pbott pwidt phght]);
% Load objects button
pleft = pleft + pwidt + pmarg;
phght = 0.05;
pbott = Lbottom - phght - pmarg;
pwidt = 0.2;
pbh = uicontrol(ph,'Style','pushbutton',...
'String','Load',...
'Callback', {@ltpdv_load_objects, mainfig}, ...
'Units', 'normalized', ...
'Position',[pleft pbott pwidt phght]);
% Export objects button
pleft = pmarg;
phght = 0.05;
pbott = pbott - phght - pmarg;
pwidt = 0.2;
pbh = uicontrol(ph,'Style','pushbutton',...
'String','Export',...
'Callback', {@ltpdv_export_objects, mainfig}, ...
'Units', 'normalized', ...
'Position',[pleft pbott pwidt phght]);
% Explore objects button
pleft = pleft + pwidt + pmarg;
pbh = uicontrol(ph,'Style','pushbutton',...
'String','Explore',...
'Callback', {@ltpdv_explore_objects, mainfig}, ...
'Units', 'normalized', ...
'Position',[pleft pbott pwidt phght]);
%-------
% Plot button
bw = 0.2;
bl = pmarg;
bh = 0.05;
bb = pmarg;
pbh = uicontrol(ph,'Style','pushbutton',...
'String','Plot',...
'Callback', {@ltpdv_plot, mainfig}, ...
'Units', 'normalized', ...
'Position',[bl bb bw bh]);
% Plot history button
bw = 0.2;
bl = bl+bw+pmarg;
bh = 0.05;
bb = pmarg;
pbh = uicontrol(ph,'Style','pushbutton',...
'String','Plot History',...
'Callback', {@ltpdv_hist_plot, mainfig}, ...
'Units', 'normalized', ...
'Position',[bl bb bw bh]);
%----------- TAB PANEL
PanLeft = SplitPoint;
Tleft = PanLeft + Hmargin;
Theight = 1-2*Vmargin ;
Tbottom = (1 - Vmargin - Theight);
Twidth = (1-PanLeft)-2*Hmargin;
htab = uitabgroup('Parent', mainfig, ...
'Units','normalized',...
'Position',[Tleft Tbottom Twidth Theight], 'SelectionChangeFcn', {@ltpdv_tabChanged});
t1 = uitab(htab, 'title', 'Import');
t2 = uitab(htab, 'title', 'Math');
t3 = uitab(htab, 'title', 'Preprocessing');
t4 = uitab(htab, 'title', 'Filter');
t5 = uitab(htab, 'title', 'Spectral');
t6 = uitab(htab, 'title', 'Object Properties');
t7 = uitab(htab, 'title', 'Plot');
% Set app data
setappdata(mainfig, 'LTPDAobjects', {});
setappdata(mainfig, 'ImportWorkspaceSelectedRows', []);
setappdata(mainfig, 'ObjectListSelectedRows', []);
setappdata(mainfig, 'Filters', []);
setappdata(mainfig, 'FilterPoles', []);
setappdata(mainfig, 'FilterZeros', []);
setappdata(mainfig, 'TimesList', {});
% Build panels
ltpdv_buildImportPanel(t1, mainfig);
ltpdv_buildMathPanel(t2, mainfig);
ltpdv_buildPreprocessPanel(t3, mainfig);
ltpdv_buildFilterPanel(t4, mainfig);
ltpdv_buildSpectralPanel(t5, mainfig);
ltpdv_buildPropertiesPanel(t6, mainfig);
ltpdv_buildPlotPanel(t7, mainfig);
%% Start the GUI
% Make the GUI visible.
set(mainfig,'Visible','on')
end