Способ настройки отображения объектов с помощью 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
Полные реализации класса см. в следующих разделах: