function schema
%

% Copyright 2009-2014 The MathWorks, Inc.

hCreateInPackage = findpackage('DAStudio');
hThisClass       = schema.class(hCreateInPackage, 'MEView');


%% Public properties
p = schema.prop(hThisClass, 'Name', 'ustring');
p = schema.prop(hThisClass, 'ViewManager', 'handle');
p = schema.prop(hThisClass, 'Properties', 'handle vector');
p = schema.prop(hThisClass, 'Description', 'ustring');
p = schema.prop(hThisClass, 'ReleaseChanges', 'string');

%% Private properties
p = schema.prop(hThisClass, 'PropertiesListener', 'handle');
p.Visible = 'off';
p = schema.prop(hThisClass, 'MEViewPropertyListeners', 'handle vector');
p.Visible = 'off';
p = schema.prop(hThisClass, 'GroupChangedListener', 'handle');
p.Visible = 'off';
p = schema.prop(hThisClass, 'FilterTypes', 'string vector');
p.Visible = 'off';
p.FactoryValue = {};

p = schema.prop(hThisClass, 'InternalName', 'ustring');
p.Visible = 'off';
p = schema.prop(hThisClass, 'GroupName', 'string');
p.Visible = 'on';
p = schema.prop(hThisClass, 'SortName', 'string');
p.Visible = 'on';
p = schema.prop(hThisClass, 'SortOrder', 'string');
p.Visible = 'on';
% If this flag is set to true, provide factory view definition.
p = schema.prop(hThisClass, 'IsFactoryView', 'bool');
p.Visible = 'off';
p.FactoryValue = false;

%% Hooks for ME
% DDG UI for view
m = schema.method(hThisClass, 'getDialogSchema');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {'mxArray'};

% control of rows
m = schema.method(hThisClass, 'shouldShow');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'handle'};
s.OutputTypes = {'bool'};

% control of columns
m = schema.method(hThisClass, 'getHeaderLabels');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {'string'};

m = schema.method(hThisClass, 'getHeaderOrder');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string vector'};
s.OutputTypes = {'string'};

% control of columns
m = schema.method(hThisClass, 'setHeaderWidth');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string'};
s.OutputTypes = {};

% control of header context menu
m = schema.method(hThisClass, 'getHeaderContextMenu');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string'};
s.OutputTypes = {'handle'};

%% MEView methods
m = schema.method(hThisClass, 'enableLiveliness');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {};

m = schema.method(hThisClass, 'disableLiveliness');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {};

% Adds the given property to a view
m = schema.method(hThisClass, 'addProperty');
s = m.Signature;
s.varargin    = 'on';
s.InputTypes  = {'handle', 'string vector', 'string'};
s.OutputTypes = {};

% Removes a given property from a view
m = schema.method(hThisClass, 'removeProperty');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string vector'};
s.OutputTypes = {};

% Returns true if view has a property, false otherwise
m = schema.method(hThisClass, 'hasProperty');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string'};
s.OutputTypes = {'bool'};

% Returns true if view has a property, false otherwise
m = schema.method(hThisClass, 'getProperty');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string'};
s.OutputTypes = {'handle'};


