exponenta event banner

OperationResult

Состояние отдельных операций при обновлении панели инструментов

Описание

Один OperationResult объект представляет статус отдельной операции при обновлении личных параметров панели инструментов.

Создание

Создать ReleaseCompatibilityResults для определенного номера версии панели инструментов с помощью matlab.settings.loadSettingsCompatibilityResults функция. Results свойство ReleaseCompatibilityResults объект содержит VersionResults объект. VersionChanges свойство этого VersionResults объект содержит массив OperationResult объекты.

Например, этот код получает массив OperationResult объекты для версии 2 панели инструментов mytoolbox.

myCompatibilityResults = matlab.settings.loadSettingsCompatibilityResults('mytoolbox','Version2');
myCompatibilityResults.Results.VersionChanges
ans = 
  1×2 OperationResult array with properties:
    Operation
    Status
    ExceptionLog

Свойства

развернуть все

Выполнена операция обновления, заданная как строковый скаляр.

Пример: "move mytoolbox.font.MyFontSize mytoolbox.font.FontSize"

Состояние операции обновления, указанное как "Succeeded", "Skipped", или "Failed". В этой таблице описываются все состояния и возможные причины.

СтатусПричина
"Succeeded"Н/Д
"Skipped"Параметры или группа параметров, указанные в операции, не существуют в персональных параметрах, подлежащих обновлению.
"Failed"Операции перемещения
  • Обновленное дерево параметров уже содержит параметр или группу с указанным именем.

  • Указанный путь к группе параметров или параметров не является допустимым путем.

Удалить операции
  • Указанный путь к группе параметров или параметров не является допустимым путем.

Первое исключение обновления, возникающее при выполнении операции обновления, указанное как ReleaseCompatibilityException объект. Если исключения не возникает, ExceptionLog является массивом 0-by-0 ReleaseCompatibilityException объекты.

Примеры

свернуть все

Создайте функции для создания, а затем обновите дерево фабрики панели инструментов, а затем проверьте, успешно ли завершено обновление.

Функция createMyToolboxFactoryTree создает дерево заводских настроек для панели инструментов mytoolbox.

function myToolboxFactoryTree = createMyToolboxFactoryTree()
    myToolboxFactoryTree = matlab.settings.FactoryGroup.createToolboxGroup('mytoolbox', ...
        'Hidden',false);

    toolboxFontGroup = addGroup(myToolboxFactoryTree,'font','Hidden',false)
    addSetting(toolboxFontGroup,'MyFontSize','FactoryValue',11,'Hidden',false, ...
        'ValidationFcn',@matlab.settings.mustBeNumericScalar)    
    addSetting(toolboxFontGroup,'MyFontColor','FactoryValue','Black', ...
        'Hidden',false,'ValidationFcn',@matlab.settings.mustBeStringScalar);
end

Создание функции createMyToolboxSettingsFileUpgraders с пустым matlab.settings.SettingsFileUpgrader объект.

function upgraders = createMyToolboxSettingsFileUpgraders()
    upgraders = matlab.settings.SettingsFileUpgrader.empty;
end

Создать settingsInfo.json для панели инструментов. Определить mytoolbox в качестве имени корневой группы настроек, createMyToolboxFactoryTree в качестве функции создания дерева настроек и createMyToolboxSettingsFileUpgraders в качестве функции обновления дерева настроек. Место settingsInfo.json на панели инструментов resources папка.

{
"ToolboxGroupName" : "mytoolbox",
"Hidden" : false,
"CreateTreeFcn" : "createMyToolboxFactoryTree",
"CreateUpgradersFcn" : "createMyToolboxSettingsFileUpgraders"
}

Добавьте папку, содержащую функцию создания дерева настроек и папку ресурсов панели инструментов, в путь MATLAB ®. Затем загрузите дерево заводских настроек дляmytoolbox.

matlab.settings.reloadFactoryFile('mytoolbox');

Используйте settings для доступа к корню дерева настроек и установки персонального значения MyFontSize установка.

s = settings;
s.mytoolbox.font.MyFontSize.PersonalValue = 15;

Изменение имен параметров в createMyToolboxFactoryTree от MyFontSize и MyFontColor кому FontSize и FontColor.

function myToolboxFactoryTree = createMyToolboxFactoryTree()
    myToolboxFactoryTree = matlab.settings.FactoryGroup.createToolboxGroup('mytoolbox', ...
        'Hidden',false);

    toolboxFontGroup = addGroup(myToolboxFactoryTree,'font','Hidden',false)
    addSetting(toolboxFontGroup,'FontSize','FactoryValue',11,'Hidden',false, ...
        'ValidationFcn',@matlab.settings.mustBeNumericScalar)    
    addSetting(toolboxFontGroup,'FontColor','FactoryValue','Black', ...
        'Hidden',false,'ValidationFcn',@matlab.settings.mustBeStringScalar);
end

Запишите переименование двух параметров в createMyToolboxSettingsFileUpgraders функция как изменения дерева настроек для версии 2 из mytoolbox.

function upgraders = createMyToolboxSettingsFileUpgraders()
    upgraders = matlab.settings.SettingsFileUpgrader('Version2'); 
    move(upgraders,'mytoolbox.font.MyFontSize','mytoolbox.font.FontSize'); 
    move(upgraders,'mytoolbox.font.MyFontColor','mytoolbox.font.FontColor');
end

Перезагрузите дерево заводских настроек для mytoolbox.

matlab.settings.reloadFactoryFile('mytoolbox');

Используйте settings для доступа к корню дерева настроек и проверки персонального значения FontSize параметр был правильно перемещен из MyFontSize установка.

s = settings;
s.mytoolbox.font.FontSize
ans = 
  Setting 'mytoolbox.font.FontSize' with properties:
       ActiveValue: 15
    TemporaryValue: <no value>
     PersonalValue: 15
      FactoryValue: 11

Получение результата первой операции обновления для версии 2 из mytoolbox.

compatibilityResults.matlab.settings.loadSettingsCompatibilityResults("mytoolbox","Version2");
compatibilityResults.Results.VersionChanges(1)
ans = 
  OperationResult with properties:
       Operation: "move mytoolbox.font.MyFontSize mytoolbox.font.FontSize"
          Status: "Succeeded"
    ExceptionLog: [0×0 matlab.settings.ReleaseCompatibilityException]
Представлен в R2019b