Пользовательский интерфейс CustomDisplay

Отображение командного окна

MATLAB® отображает информацию в командном окне, когда оператор, который не отключен с точкой с запятой, возвращает переменную. Например, этот оператор создает структуру с полем, которое содержит номер 7.

a.field1 = 7

MATLAB отображает имя переменной, класс и значение.

a = 

  struct with fields:

    field1: 7

MATLAB предоставляет пользовательским классам подобную функциональность отображения. Пользовательские классы могут настроить, как MATLAB отображает объекты класса с помощью API, обеспеченного matlab.mixin.CustomDisplay класс. Чтобы использовать этот API, выведите свой класс из matlab.mixin.CustomDisplay.

Отображение объектов по умолчанию

MATLAB добавляет методы по умолчанию под названием disp и display ко всем классам MATLAB, которые не реализуют их собственные методы с теми именами. Эти методы не отображаются, но создают простое отображение по умолчанию.

Простое отображение по умолчанию состоит из следующих частей:

  • Заголовок, показывающий имя класса и размерности для нескалярных массивов.

  • Список всех нескрытых публичных свойств, показанных в порядке определения в классе.

Фактическое отображение зависит от того, является ли объект скаляром или нескалярный. Кроме того, существуют специальные отображения для скалярного указателя на массивы удаленного объекта и пустого объекта. Объекты во всех этих состояниях отображены по-другому, если объекты не имеют никаких свойств.

details функция создает значение по умолчанию подробное отображение. Подробное отображение добавляет эти элементы в простое отображение:

  • Использование полностью определенных имен классов

  • Соединитесь с handle класс, если объект является указателем

  • Ссылки на methods, events, и superclasses функции выполняются на объекте.

Смотрите Класс со Значением по умолчанию Отображение объектов для примера того, как MATLAB отображает объекты.

Свойства, отображенные по умолчанию

MATLAB отображает свойства объектов, которые сделали, чтобы общественность получила доступ, и не скрыты (см. Атрибуты свойств). Наследованные абстрактные свойства исключены из отображения. Когда отображаемый объект является скаляром, любые динамические свойства, присоединенные к объекту, также включены.

Класс CustomDisplay

matlab.mixin.CustomDisplay класс обеспечивает интерфейс, который можно использовать, чтобы настроить отображение объекта для класса. Чтобы использовать этот интерфейс, выведите свой класс из CustomDisplay:

classdef MyClass < matlab.mixin.CustomDisplay

CustomDisplay классом является HandleCompatible, таким образом, можно использовать его и в сочетании со значением и обработать суперклассы.

Примечание

Вы не можете использовать matlab.mixin.CustomDisplay выводить пользовательское отображение для классов перечисления.

disp, отображение и детали

CustomDisplay интерфейс не позволяет вам заменять dispОтображение, и details. Вместо этого замените любую комбинацию методов индивидуальной настройки, заданных с этой целью.

Методы для настройки Отображения объектов

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

  • Сборка Part builder methods строки используется для стандартного отображения. Замените любой из этих методов, чтобы изменить соответствующие части отображения.

  • State handler methods называется для объектов в определенных состояниях, как скаляр, нескалярный, и так далее. Замените любой из этих методов, чтобы обработать объекты в определенном состоянии.

Все эти методы имеют защищенный доступ и должны быть заданы, как защищено в вашем подклассе CustomDisplay (то есть, Access = protected).

Части Отображения объектов

Существует три части что состав отображение стандартного объекта — заголовок, список свойств и нижний колонтитул

Например, вот отображение стандартного объекта для containers.Map объект:

Отображение объекта по умолчанию не включает нижний колонтитул. Подробное отображение предоставляет больше информации:

Можно настроить, как MATLAB отображает объекты в результате выражений, что экранные объекты в командном окне, такие как неотключенные операторы, которые возвращают объекты или вызовы disp и display. Результаты, отображенные при вызове details на объекте или объектном массиве не изменяются CustomDisplay API.

Методы Part Builder

Каждая часть отображения объекта имеет связанный метод, который собирает соответствующую часть отображения.

МетодЦельЗначение по умолчанию
getHeader

Создайте текст, используемый для заголовка.

Возвращает char векторы, [class(obj), ' with properties:'] соединение имени класса к справке раскрывается

getPropertyGroups

Задайте то, как и что свойства отображают, включая порядок, значения и группировку.

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

getFooter

Создайте текст, используемый для нижнего колонтитула.

Существует два нижних колонтитула:

  • Простое отображение — Возвращает пустой char вектор

  • Подробное отображение — Отвечает на соединенные звонки к methods, events, и superclasses для этого класса

Объектные состояния, которые влияют на отображение

Существует четыре объектных состояния, которые влияют, как MATLAB отображает объекты:

  • Допустимый скалярный объект

  • Нескалярный объектный массив

  • Массив пустого объекта

  • Скалярный указатель на удаленный объект

Методы обработчиков состояния

Каждое объектное состояние имеет связанный метод, который MATLAB вызывает, отображая объекты, которые находятся в том конкретном состоянии.

Метод обработчиков состоянияТребовавшийся объект в этом состоянии
displayScalarObject

(isa(obj,'handle') && isvalid(obj)) && prod(size(obj)) == 1

displayNonScalarObject

prod(size(obj)) > 1

displayEmptyObject

prod(size(obj)) == 0

displayScalarHandleToDeletedObject

isa(obj,'handle') && isscalar(obj) && ~isvalid(obj)

Служебные методы

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

Если экран компьютера не поддерживает гипертекстовое соединение, строки возвращены без ссылок.

МетодВходные параметры Выходные параметры

convertDimensionsToString

Массив доступного объекта

Объектные размерности преобразованы в char вектор; определенный путем вызова size(obj)

displayPropertyGroups

PropertyGroup массив

Отображает заголовки и заданные группы свойства

getClassNameForHeader

Объект

Простое имя класса соединяется с документацией объекта

getDeletedHandleText

'none'

Текст 'handle to deleted' соединенный с документацией относительно удаленных указателей

getDetailedFooter

Объект

Текст, содержащий фразу 'Methods, Events, Superclasses', с каждой ссылкой, выполняющей соответствующую команду на входном объекте

getDetailedHeader

Объект

Текст, содержащий соединенное имя класса, соединитесь, чтобы обработать страницу (если класс Handle) и 'with properties:'

getHandleText

'none'

Текст 'handle' соединенный с разделом документации, которая описывает объекты указателя

getSimpleHeader

Объект

Текст, содержащий соединенное имя класса и фразу 'with properties:'

Похожие темы