Mercurial > hg > ltpda
diff m-toolbox/classes/@sigBuilder/buildMainfig.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/@sigBuilder/buildMainfig.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,375 @@ +% BUILDMAINFIG build the main sigBuilder window +% +% M Hewitson 18-10-08 +% +% $Id: buildMainfig.m,v 1.1 2008/10/19 11:42:40 hewitson Exp $ +% +function mainfig = buildMainfig(mainfig, varargin) +% %% Check if I exist already +% id = findobj('Tag', 'SIGBUILDERmainfig'); +% if ~isempty(id) +% figure(id) +% return +% end + + %% Some initial setup + + Screen = get(0,'screensize'); + mainfig.Gproperties.Gcol = [255 255 255]/255; + mainfig.Gproperties.Screen = Screen; + mainfig.Gproperties.Gwidth = 0.5; + mainfig.Gproperties.Gheight = 0.5; + mainfig.Gproperties.Gborder = 10; + mainfig.Gproperties.fontsize = 12; + + l = (0.5-mainfig.Gproperties.Gwidth/2); + b = (0.5-mainfig.Gproperties.Gheight/2); + w = mainfig.Gproperties.Gwidth; + h = mainfig.Gproperties.Gheight; + mainfig.Gproperties.Gposition = [l b w h]; + + if ~isempty(varargin) && ishandle(varargin{1}) + mainfig.handle = varargin{1}; + set(mainfig.handle, 'Tag', 'SIGBUILDERmainfig'); + set(mainfig.handle, 'Units', 'normalized'); + else + % Initialize and hide the GUI as it is being constructed. + mainfig.handle = figure('Name', 'LTPDA Signal Builder',... + 'NumberTitle', 'off',... + 'Visible','off',... + 'Units','normalized',... + 'Position',mainfig.Gproperties.Gposition,... + 'Toolbar', 'none',... + 'MenuBar', 'none',... + 'Color', mainfig.Gproperties.Gcol,... + 'Resize', 'on',... + 'Tag', 'SIGBUILDERmainfig'); + end + + % Set mainfig callbacks + set(mainfig.handle, 'CloseRequestFcn', {'sigBuilder.cb_mainfigClose', mainfig}); + + %------------------------------------------------------------------------ + %- General properties + %------------------------------------------------------------------------ + hmarg = 0.006; + vmarg = 0.012; + commHeight = 0.05; + % l b w h + + % make settings panel + w = 0.5-2*hmarg; + h = 1-2*vmarg; + l = hmarg; + b = vmarg; + span = uipanel(mainfig.handle,... + 'Title', 'Settings', ... + 'FontSize', mainfig.Gproperties.fontsize, ... + 'BackgroundColor', [0.9 0.9 0.9], ... + 'Position', [l b w h], ... + 'BorderType', 'line', ... + 'BorderWidth', 1, ... + 'Tag', 'SettingsPanel', ... + 'HighlightColor', [0.5 0.5 0.5]); + + % make list panel + w = 0.5-2*hmarg; + h = 1-2*vmarg; + l = 0.5+hmarg; + b = vmarg; + ppan = uipanel(mainfig.handle,... + 'Title', 'Signal List', ... + 'FontSize', mainfig.Gproperties.fontsize, ... + 'BackgroundColor', [200 220 240]/255, ... + 'Position', [l b w h], ... + 'BorderType', 'line', ... + 'BorderWidth', 1, ... + 'HighlightColor', [0.5 0.5 0.5]); + + %------------------------------------------------------------------------ + % Sample rate + + % label + l = hmarg; + h = commHeight; + b = 1-2*vmarg-h; + w = 0.25; + sth = uicontrol(span, 'Style','text',... + 'String', 'Sample Rate [Hz]',... + 'Units', 'normalized', ... + 'HorizontalAlignment', 'right',... + 'BackgroundColor', [0.9 0.9 0.9], ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % edit box + l = l + w + hmarg; + w = 0.15; + sth = uicontrol(span, 'Style','edit',... + 'String', '10',... + 'Units', 'normalized', ... + 'BackgroundColor', 'w', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h], ... + 'Tag', 'SampleRateEdit'); + + %------------------------------------------------------------------------ + % T0 + + % label + l = l + w + hmarg; + w = 0.15; + sth = uicontrol(span, 'Style','text',... + 'String', 'Start Time',... + 'Units', 'normalized', ... + 'HorizontalAlignment', 'right',... + 'BackgroundColor', [0.9 0.9 0.9], ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % edit box + l = l + w + hmarg; + w = 0.35; + t0 = time(); + sth = uicontrol(span, 'Style','edit',... + 'String', char(t0),... + 'Units', 'normalized', ... + 'BackgroundColor', 'w', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h], ... + 'Tag', 'T0edit'); + + %------------------------------------------------------------------------ + % Name + + % label + b = b - h - vmarg; + l = hmarg; + w = 0.25; + sth = uicontrol(span, 'Style','text',... + 'String', 'Signal Name',... + 'Units', 'normalized', ... + 'HorizontalAlignment', 'right',... + 'BackgroundColor', [0.9 0.9 0.9], ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % edit box + l = l + w + hmarg; + w = 0.35; + sth = uicontrol(span, 'Style','edit',... + 'String', 'None',... + 'Units', 'normalized', ... + 'BackgroundColor', 'w', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h], ... + 'Tag', 'NameEdit'); + + %------------------------------------------------------------------------ + % Signal Type + + % label + w = 0.25; + l = hmarg; + b = b - h - vmarg; + sth = uicontrol(span, 'Style','text',... + 'String', 'Signal Type',... + 'Units', 'normalized', ... + 'BackgroundColor', [0.9 0.9 0.9], ... + 'HorizontalAlignment', 'right',... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % drop down menu + l = l + w + hmarg; + w = 0.35; + clsh = uicontrol(span, ... + 'Style', 'popupmenu', ... + 'Units', 'normalized',... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'BackgroundColor', 'w', ... + 'String', mainfig.getSignalTypes, ... + 'Position', [l b w h],... + 'Tag', 'SignalTypeSelect', ... + 'Callback', {'sigBuilder.cb_selectSignalType', mainfig}); + + %------------------------------------------------------------------------ + % Panel for signal controls + w = 1-4*hmarg; + h = 0.65; + l = 2*hmarg; + b = 0.1+2*vmarg; + conpan = uipanel(span,... + 'Title', 'Signal Properties', ... + 'FontSize', mainfig.Gproperties.fontsize, ... + 'FontWeight', 'bold', ... + 'BackgroundColor', 'w', ... + 'Position', [l b w h], ... + 'BorderType', 'line', ... + 'BorderWidth', 1, ... + 'Tag', 'ControlsPanel', ... + 'HighlightColor', [0.5 0.5 0.5]); + + % Fire the callback + sigBuilder.cb_selectSignalType(clsh, mainfig); + + %------------------------------------------------------------------------ + % Add signal button + + h = 1.2*commHeight; + w = 0.2; + l = 1-w-hmarg; + b = vmarg; + pbh = uicontrol(span,'Style','pushbutton',... + 'String','Add Signal',... + 'Callback', {'sigBuilder.cb_addSignal', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + + %------------------------------------------------------------------------ + %------------------------------------------------------------------------ + %------------------------------------------------------------------------ + %- Right Panel + %------------------------------------------------------------------------ + %------------------------------------------------------------------------ + %------------------------------------------------------------------------ + + %------------------------------------------------------------------------ + % Signal List + + h = 0.7; + l = hmarg; + b = 1-h-vmarg; + w = 1-2*hmarg; + t = uitable(ppan, 'Data', [], ... + 'ColumnName', {'Type', 'Name', 'Length', 'Start', 'Add'},... + 'ColumnFormat', {'char', 'char', 'numeric', 'char', 'logical'},... + 'ColumnWidth', {'auto', 'auto', 'auto', 'auto', 'auto'},... + 'ColumnEditable', [false false false false true], ... + 'units', 'normalized',... + 'RowStriping', 'on', ... + 'BackgroundColor', [1 1 1;0.8 0.8 0.8], ... + 'ForegroundColor', [0 0 0], ... + 'Fontsize', mainfig.Gproperties.fontsize,... + 'Position', [l b w h],... + 'CellSelectionCallback', {'sigBuilder.cb_sigListSelect', mainfig}, ... + 'ButtonDownFcn', {'sigBuilder.cb_sigListClick', mainfig}, ... + 'Tag', 'sigBuilderSignalList'); + + %------------------------------------------------------------------------ + % buttons + + % remove + h = 1.2*commHeight; + w = 0.2; + l = hmarg; + b = b - h - vmarg; + pbh = uicontrol(ppan,'Style','pushbutton',... + 'String','Remove Signal',... + 'Callback', {'sigBuilder.cb_removeSignal', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % clear + l = l + hmarg + w; + w = 0.2; + pbh = uicontrol(ppan,'Style','pushbutton',... + 'String','Clear List',... + 'Callback', {'sigBuilder.cb_clearSignals', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % Toggle select + l = l + hmarg + w; + w = 0.2; + pbh = uicontrol(ppan,'Style','pushbutton',... + 'String','Toggle State',... + 'Callback', {'sigBuilder.cb_toggleAddState', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % Select all + l = l + hmarg + w; + w = 0.2; + pbh = uicontrol(ppan,'Style','pushbutton',... + 'String','Add All',... + 'Callback', {'sigBuilder.cb_addAll', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % Join type + % label + w = 0.25; + l = hmarg; + b = b - h - vmarg; + sth = uicontrol(ppan, 'Style','text',... + 'String', 'Join Type',... + 'Units', 'normalized', ... + 'BackgroundColor', [200 220 240]/255, ... + 'HorizontalAlignment', 'right',... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % drop down menu + l = l + w + hmarg; + w = 0.35; + tip = sprintf('join: overlaps taken from first time-series. (help ao/join)\nsumjoin: overlaps are sum of overlapping time-series. (help ao/sumjoin)'); + clsh = uicontrol(ppan, ... + 'Style', 'popupmenu', ... + 'Units', 'normalized',... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'BackgroundColor', 'w', ... + 'String', {'sumjoin', 'join'}, ... + 'Position', [l b w h],... + 'Tag', 'JoinTypeSelect', ... + 'Tooltip', tip); + + + % export commands + b = b - vmarg - h; + l = hmarg; + w = 0.25; + pbh = uicontrol(ppan,'Style','pushbutton',... + 'String','Build Commands',... + 'Callback', {'sigBuilder.cb_exportCommands', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % Save + l = l + w + hmarg; + w = 0.2; + pbh = uicontrol(ppan,'Style','pushbutton',... + 'String','Build & Save',... + 'Callback', {'sigBuilder.cb_buildSave', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % View + l = l + w + hmarg; + w = 0.2; + pbh = uicontrol(ppan,'Style','pushbutton',... + 'String','Build & View',... + 'Callback', {'sigBuilder.cb_buildView', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + + % View + l = l + w + hmarg; + w = 0.2; + pbh = uicontrol(ppan,'Style','pushbutton',... + 'String','Build & Export',... + 'Callback', {'sigBuilder.cb_buildExport', mainfig}, ... + 'Units', 'normalized', ... + 'Fontsize', mainfig.Gproperties.fontsize, ... + 'Position',[l b w h]); + +end