exponenta event banner

Выберите метод настройки отображения

Способы реализации пользовательского отображения

Способ настройки отображения объектов с помощью matlab.mixin.CustomDisplay класс зависит от:

  • Какие части экрана требуется настроить

  • Состояния объектов, которые требуется использовать для пользовательского отображения

Если Вы вносите небольшие изменения в расположение по умолчанию, то отвергаете соответствующие методы строителя части (Методы Строителя Части). Например, предположим, что необходимо:

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

  • Изменение текста заголовка

  • Добавление нижнего колонтитула

При определении нестандартного отображения для определенного состояния объекта (например, скаляра) наилучшим подходом является переопределение соответствующего метода обработчика состояния (методы обработчика состояния).

В некоторых случаях наилучшим подходом может быть сочетание переопределений методов. Например, реализация displayScalarObject мог бы

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

  • Вызов метода конструктора элементов для получения текста по умолчанию для данной части отображения

  • Реализация совершенно другого отображения для скалярных объектов.

После переопределения любого CustomDisplay MATLAB ® вызывает переопределение во всех случаях, когда был вызван метод суперкласса. Например, если переопределить getHeader метод, переопределение должно обрабатывать все случаи, когда метод обработчика состояния вызывает getHeader. (См. раздел Методы, вызываемые для заданного состояния объекта)

Примеры подходов с использованием интерфейса

Вот несколько простых случаев, которые показывают, какие методы использовать для конкретного настраиваемого дисплея.

Изменение отображения скалярных объектов

Использовать нестандартный макет для отображения скалярных объектов, полностью определенных в displayScalarObject способ:

classdef MyClass < matlab.mixin.CustomDisplay
   ...
   methods (Access = protected)
      function displayScalarObject(obj)
         % Implement the custom display for scalar obj
      end
   end
end

Список пользовательских свойств со стандартной компоновкой

Используйте стандартную компоновку отображения, но создайте пользовательский список свойств для скалярного и нескалярного отображения:

classdef MyClass < matlab.mixin.CustomDisplay
   ...
   methods(Access = protected)
      function groups = getPropertyGroups(obj)
         % Return PropertyGroup instances
      end
   end
end

Список пользовательских свойств только для скалярных

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

classdef MyClass < matlab.mixin.CustomDisplay
   properties
      Prop1
      Prop2
      Prop3
   end
   methods(Access = protected)
      function groups = getPropertyGroups(obj)
         if isscalar(obj)
            % Scalar case: change order 
            propList = {'Prop2','Prop1','Prop3'};
            groups = matlab.mixin.util.PropertyGroup(propList)
         else
            % Nonscalar case: call superclass method
            groups = getPropertyGroups@matlab.mixin.CustomDisplay(obj);
         end
      end
   end
end

Список пользовательских свойств с измененными значениями

Изменение значений, отображаемых для некоторых свойств в скалярном регистре, путем создания пар свойство/значение в struct. Это getPropertyGroups метод отображается только Prop1 и Prop2и отображает значение Prop2 как Prop1 деленная на Prop3.

classdef MyClass < matlab.mixin.CustomDisplay
   properties
      Prop1
      Prop2
      Prop3
   end
   methods(Access = protected)
      function groups = getPropertyGroups(obj)
         if isscalar(obj)
            % Specify the values to be displayed for properties
            propList = struct('Prop1',obj.Prop1,...
               'Prop2',obj.Prop1/obj.Prop3);
            groups = matlab.mixin.util.PropertyGroup(propList)
         else
            % Nonscalar case: call superclass method
            groups = getPropertyGroups@matlab.mixin.CustomDisplay(obj);
         end
      end
   end
end

Полные определения классов

Полные реализации класса см. в следующих разделах: