function schema
% SCHEMA Defines properties for @TreeManager class


%% Get handles of associated packages and classes
hCreateInPackage = findpackage('tsexplorer');

%% Construct class
c = schema.class( hCreateInPackage, 'TreeManager' );

%% Properties
%% Root node of the tree managed by this class
p = schema.prop(c, 'Root', 'handle');
set(p, 'AccessFlags.PublicSet', 'on');

%% Component handles
schema.prop(c, 'Tree', 'MATLAB array');
schema.prop(c, 'Treepanel', 'MATLAB array');

%% Dialog posistions
schema.prop(c, 'DialogPosition', 'MATLAB array');
schema.prop(c, 'HelpDialogPosition', 'MATLAB array');

%% Context menu
schema.prop(c, 'Cmenulistener', 'MATLAB array');

%% Handle of Figure frame
p = schema.prop(c, 'Figure', 'MATLAB array');
set(p, 'AccessFlags.PublicSet', 'on', ...
       'AccessFlags.Serialize', 'off');

%% Handle of Java Tree Explorer panel
schema.prop(c, 'Panel', 'MATLAB array');
schema.prop(c, 'HelpPanel', 'MATLAB array');

%% Partition panel
schema.prop(c, 'Margin', 'MATLAB array');

%% Structure for storing node specific Java handles.
p = schema.prop(c, 'Handles', 'MATLAB array');
set(p, 'AccessFlags.PublicSet', 'off', ...
       'AccessFlags.Serialize', 'off');

%% Handles of permanent listeners.
p = schema.prop(c, 'Listeners', 'handle vector');
% set(p, 'AccessFlags.PublicSet', 'on', ...
%        'AccessFlags.Serialize', 'off');

%% Menu handles
schema.prop(c,'Menus','MATLAB array');

%% Visibility
schema.prop(c, 'Visible', 'on/off');

