Настройка отображения свойств

Цель

Измените порядок и количество свойств, отображаемых для объекта вашего класса.

Изменение порядка свойств

Предположим, что ваше определение класса содержит следующее определение свойства:

properties
      Name
      JobTitle
      Department
      Salary
      Password
end

В скаляр объекта по умолчанию отображение MATLAB® отображает все общественную собственность вместе с их значениями. Однако отображать нужно только Department, JobTitle, и Name, в таком порядке. Вы можете сделать это, выведя из CustomDisplay и переопределение getPropertyGroups способ.

Ваше переопределение

  • Определяет метод Access как protected для соответствия определению в CustomDisplay суперкласс

  • Создает массив ячеек с именами свойства в желаемом порядке

  • Возвращает PropertyGroup объект, созданный из массива ячеек списка свойств

methods (Access = protected)
   function propgrp = getPropertyGroups(~)
      proplist = {'Department','JobTitle','Name'};
      propgrp = matlab.mixin.util.PropertyGroup(proplist);
   end
end

Когда вы создаете PropertyGroup объект с использованием массива ячеек с именами свойства, MATLAB автоматически

  • Добавляет значения свойств для скалярного отображения объектов

  • Использует имена свойства без значений для нескалярного отображения объектов (включая пустые объектные массивы)

The getPropertyGroups метод не вызывается, чтобы создать отображение для скалярного указателя на удаленный объект.

Изменение значений, отображаемых для свойств

Учитывая те же свойства класса, которые использовались в предыдущем разделе, можно изменить значение, отображаемое для свойств, создав список свойств как struct и определение значений для имен свойства. Это переопределение getPropertyGroups метод использует отображение свойств по умолчанию для нескалярных объектов путем вызова суперкласса getPropertyGroups способ. Для скалярных объектов переопределите:

  • Изменение значения, отображаемого для Password свойство для '*' символ для каждого символа в пароле.

  • Отображает текст 'Not Available' для Salary свойство.

methods (Access = protected)
   function propgrp = getPropertyGroups(obj)
      if ~isscalar(obj)
         propgrp = getPropertyGroups@matlab.mixin.CustomDisplay(obj);
      else
         pd(1:length(obj.Password)) = '*';
         propList = struct('Department',obj.Department,...
            'JobTitle',obj.JobTitle,...
            'Name',obj.Name,...
            'Salary','Not available',...
            'Password',pd);
         propgrp = matlab.mixin.util.PropertyGroup(propList);
      end
   end
end

Отображение объекта выглядит следующим образом:

  EmployeeInfo with properties:

    Department: 'Product Development'
      JobTitle: 'Software Engineer'
          Name: 'Bill Tork'
        Salary: 'Not available'
      Password: '*******'

 Полный список классов

Похожие темы