function schema
%

% Copyright 2009-2012 The MathWorks, Inc.

hDeriveFromPackage = findpackage('DAStudio');
hDeriveFromClass   = findclass(hDeriveFromPackage, 'Object');
hCreateInPackage   = findpackage('DAStudio');

hThisClass = schema.class(hCreateInPackage, 'MEViewManager', hDeriveFromClass);


%% Public properties
p = schema.prop(hThisClass, 'Explorer', 'handle');
p = schema.prop(hThisClass, 'ActiveView', 'handle');
p.Visible = 'off';
p = schema.prop(hThisClass, 'IsCollapsed', 'bool');
p.Visible = 'off';
p.FactoryValue = true;
p = schema.prop(hThisClass, 'Timer', 'handle');
p.Visible = 'off';
% Current active domain name.
p = schema.prop(hThisClass, 'ActiveDomainName', 'string');
% Current domains available.
p = schema.prop(hThisClass, 'Domains', 'handle vector');
% Do we need to suggest a view or not?
p = schema.prop(hThisClass, 'SuggestionMode', 'string');
p.FactoryValue = 'auto';
p = schema.prop(hThisClass, 'VMProxy', 'handle');

% Customization of view manager
% Preferences file
p = schema.prop(hThisClass, 'PrefFileName', 'ustring');
p.FactoryValue = [prefdir filesep 'modelexplorerviews.mat'];
% Show objects count info hyperlink
p = schema.prop(hThisClass, 'ShowObjectInfo', 'bool');
% View Management dialog title.
p = schema.prop(hThisClass, 'DialogTitle', 'ustring');
p = schema.prop(hThisClass, 'EnableViewDomainMode', 'bool');
p = schema.prop(hThisClass, 'EnablePropertyScope', 'bool');
p = schema.prop(hThisClass, 'ShowFilterGUI', 'bool');
p.FactoryValue = false;
% Just to use ViewManager infrastructure w/o saving/loading.
p = schema.prop(hThisClass, 'Serialize', 'bool');
p.FactoryValue = true;

%% Private properties
p = schema.prop(hThisClass, 'METreeSelectionChangedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MEListSelectionChangedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MEViewModeChangedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MESearchPropertiesAddedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MEClosedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MEDeleteListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'ActiveViewListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'IsCollapsedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MEViewAddedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MEViewRemovedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MESortChangedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MEScopeChangedListener', 'handle');
p.Visible = 'off';

p = schema.prop(hThisClass, 'MATLABVersion','string');
p.FactoryValue = release_version;
p.Visible = 'off';

p = schema.prop(hThisClass, 'MEHeaderSizeChangedListener', 'handle');
p.Visible = 'off';

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

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

% Standalone dialog for view management
m = schema.method(hThisClass, 'getStandaloneDialogSchema');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {'mxArray'};

% Embedded dialog for view management.
m = schema.method(hThisClass, 'getEmbeddedDialogSchema');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {'mxArray'};

% Export Import management dialogs
m = schema.method(hThisClass, 'getExportImportDialogSchema');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string'};
s.OutputTypes = {'mxArray'};

% Adds the given view to the view manager hierarhcy.
m = schema.method(hThisClass, 'addView');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'handle'};
s.OutputTypes = {'bool'};

% Installs View Manager instance on Model Explorer.
m = schema.method(hThisClass, 'install');
s = m.Signature;
s.varargin    = 'on';
s.InputTypes  = {'handle', 'handle', 'bool'};
s.OutputTypes = {};

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

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

%
m = schema.method(hThisClass, 'eventHandler');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string', 'mxArray'};
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 header context menu
m = schema.method(hThisClass, 'getHeaderContextMenu');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'string'};
s.OutputTypes = {'handle'};

% menu actions
m = schema.method(hThisClass, 'customizeView');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'bool'};
s.OutputTypes = {};

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

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

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

% Returns the active view on the view manager.
m = schema.method(hThisClass, 'getActiveView');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {'handle'};

% Sets the given view as an active view.
m = schema.method(hThisClass, 'setActiveView');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'handle'};
s.OutputTypes = {};

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

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

%% Persistence
% load views from preferences
m = schema.method(hThisClass, 'load');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {};

% save views to preferences
m = schema.method(hThisClass, 'save');
s = m.Signature;
s.varargin    = 'on';
s.InputTypes  = {'handle', 'handle vector', 'ustring'};
s.OutputTypes = {};

% view manager customization
m = schema.method(hThisClass, 'customize');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {};

% reset to factory state
m = schema.method(hThisClass, 'reset');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {};

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

% create & install factory views
m = schema.method(hThisClass, 'getFactoryViews');
s = m.Signature;
s.varargin    = 'on';
s.InputTypes  = {'handle', 'ustring'};
s.OutputTypes = {'handle vector'};

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

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

%% MEView management
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 = {};

%% Domain Views
m = schema.method(hThisClass, 'getDomainString');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'mxArray'};
s.OutputTypes = {'string'};

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

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

%% View actions.
m = schema.method(hThisClass, 'copyView');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle', 'ustring', 'ustring'};
s.OutputTypes = {'handle', 'ustring'};

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

% Adds an internal name tag to a view.
m = schema.method(hThisClass, 'addInternalName');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle','handle'};
s.OutputTypes = {};

% Refresh on demand
m = schema.method(hThisClass, 'refresh');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {};

% Expand View Manager UI
m = schema.method(hThisClass, 'expand');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {};

% Collapse View Manager UI
m = schema.method(hThisClass, 'collapse');
s = m.Signature;
s.varargin    = 'off';
s.InputTypes  = {'handle'};
s.OutputTypes = {};

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

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

