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