diff --git a/classes/Mission.m b/classes/Mission.m index f505cd8248e23e677770f3a0954924074d295f9d..3b5cb60506475ba64b191c83e72a806dfc2ef5ed 100644 --- a/classes/Mission.m +++ b/classes/Mission.m @@ -48,12 +48,27 @@ classdef Mission < Config end function set.name(obj, name) - if ~isempty(obj.currentPath) && ... - ~isfolder(fullfile(obj.currentPath, name)) %#ok<MCSUP> - error('Invalid mission: %s', name) - end + if strcmp(name,'design') + filePath = fullfile(fileparts(mfilename("fullpath")), '..', 'missions'); + filePath = trimPath(filePath); + files = dir(filePath); + files = files(3:end); + isFolder = arrayfun(@(f) isfolder(fullfile(f.folder, f.name)), files); + + names = {files(isFolder).name}; - obj.name = name; + [indx,~] = listdlg('PromptString',{'Select a file.', ... + 'Only one file can be selected at a time.',''}, ... + 'SelectionMode','single','ListSize', [250,150], ... + 'ListString',names); + obj.name = names{indx}; + else + if ~isempty(obj.currentPath) && ... + ~isfolder(fullfile(obj.currentPath, name)) %#ok<MCSUP> + error('Invalid mission: %s', name) + end + obj.name = name; + end obj.updatePath(); end end diff --git a/missions/missionConfig.m b/missions/missionConfig.m index a41a0e4ee4a80eb41c07d085ece36970acbb6192..dc15cafae268650811a70261c4b119eef9bbb3d2 100644 --- a/missions/missionConfig.m +++ b/missions/missionConfig.m @@ -3,5 +3,6 @@ % Use this file to store relevant, universally true settings, % such as the current mission. The config "BIOS" mission = Mission(); + mission.name = '2023_Gemini_Roccaraso_September'; % mission.name = '2024_Lyra_Portugal_October'; \ No newline at end of file