www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/+tpsetup/TemplateSelector.m
classdef TemplateSelector < handle %TemplateSelector selector for test plan templates % Copyright 2014-2015 The MathWorks, Inc. and Ford Global Technologies, Inc. properties (SetAccess=private) %Layout main layout Layout %JList JList for templates JList end properties (Access=private) %Icon for templates Icon %Parent parent of component Parent %Listeners store for listeners Listeners %Model data model object Model %TemplateType TemplateType end methods function obj=TemplateSelector(parent,Model) %TemplateSelector constructor % TemplateSelector obj.Parent = parent; obj.Model = Model; templateFrame = mbcgui.container.layoutpanel(... 'Parent', parent, ... 'BorderType', 'etchedin', ... 'Title', 'Template', ... 'LayoutBorder', [10 10 10 3]); obj.Icon = 'testplan.bmp'; obj.JList = mbcwidgets.JList('Parent',templateFrame,... 'BorderType', 'beveledin', ... 'Tag','TemplateList',... 'ValueChangedCallback',{@obj.select}); browsebtn=uicontrol('Style','pushbutton',... 'Parent',templateFrame,... 'String','Browse...',... 'Position',[0 0 65 25],... 'Callback',@obj.browseDirectory); obj.TemplateType = uicontrol('Style','text',... 'Parent',templateFrame,... 'HorizontalAlignment','left',... 'Position',[0 0 65 25]); h = uicontrol('Style','text',... 'Parent',templateFrame,... 'HorizontalAlignment','left',... 'String','Template:',... 'Position',[0 0 65 25]); mainlyt=xreggridbaglayout(templateFrame,... 'dimension',[5, 2],... 'elements',{obj.JList,[],[],[],[],... browsebtn,[],h,obj.TemplateType,[]},... 'mergeblock',{[1,5],[1 1]},...% for templates window 'rowsizes',[25,5 15,15,-1],... 'colsizes',[-1 80],... 'gapy',0,... 'gapx',5); set(templateFrame, 'LayoutComponent', {mainlyt}); obj.Layout = templateFrame; end function update(obj) %update update test plan list names = [obj.Model.BuiltInNames(:);obj.Model.UserTemplateNames(:);obj.Model.CurrentNames(:)]; icons(1:length(names),1) = {obj.Model.Icon}; obj.JList.setListData(names,icons); obj.JList.SelectedIndex = 1; end end methods (Access=private) function browseDirectory(obj,~, ~) %browseDirectory browse for new template directory pathname = uigetdir(obj.Model.Dir, 'Select template directory:'); if ischar(pathname) pathname = [pathname filesep]; addUserTemplates( obj.Model,pathname ); update(obj) end end function select(obj,~, evt) %select Respond to an item in the list being selected % item click ind= evt.data.SelectedIndex; if isempty(ind) return end if ind ==0 % Initiate a new callback to select the default item if ~isempty(obj.Model.SelectedIndex) && ... obj.Model.SelectedIndex <= obj.JList.NumberOfElements obj.JList.SelectedIndex = obj.Model.SelectedIndex; else obj.JList.SelectedIndex=1; end return end selectTestplan(obj.Model,ind) if ind<=length(obj.Model.BuiltIn) des = 'Default'; elseif ind<=length(obj.Model.BuiltIn)+length(obj.Model.UserTemplateNames) des = 'File'; else des = 'Current project'; end set(obj.TemplateType,'String',sprintf(' %s',des)); end end end