Mercurial > hg > ltpda
diff m-toolbox/classes/@LTPDARepositoryManager/LTPDARepositoryManager.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/@LTPDARepositoryManager/LTPDARepositoryManager.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,166 @@ +% LTPDARepositoryManager creates the LTPDA Repository Manager. +% +% CALL: +% >> LTPDARepositoryManager +% +% M Hewitson 08-01-10 +% +% $Id: LTPDARepositoryManager.m,v 1.14 2011/02/03 13:46:23 ingo Exp $ +% + + +classdef LTPDARepositoryManager < handle + %------------------------------------------------ + %---------- Private read-only Properties -------- + %------------------------------------------------ + properties (SetAccess = private, GetAccess = public) + manager = []; + gui = []; + selector = []; + timerDisconnect = []; + timerClearPass = []; + h1; + h2; + h3; + h4; + h5; + h6; + h7; + h8; + h9; + end + + properties (Constant = true, GetAccess = private) + DISCONNECT = 60; + end + + %----------------------------------------- + % Public methods + %----------------------------------------- + methods + + %----------------------------------------- + % Constructor + %----------------------------------------- + function wb = LTPDARepositoryManager(varargin) + + twb = getappdata(0, 'LTPDARepositoryManager'); + + if isa(twb, mfilename) + + wb = twb; + + else + + switch nargin + case 0 + % Create a new repository manager + wb.manager = mpipeline.repository.RepositoryManager(); + % Create timer which disconnects the open connections + wb.timerDisconnect = LTPDARepositoryManager.startTimer('LTPDA_disconnectConnections', @LTPDARepositoryManager.cb_timerDisconnect, wb.DISCONNECT); + % Create timer which clears the password + prefs = getappdata(0, 'LTPDApreferences'); + expiry = double(prefs.getRepoPrefs.getExpiry); + wb.timerClearPass = LTPDARepositoryManager.startTimer('LTPDA_clearPassword', @LTPDARepositoryManager.cb_timerClearPassord, expiry); + pause(0.1); + end + + % Store the manager in the application workspace + setappdata(0, 'LTPDARepositoryManager', wb); + + wb.updatePrefs(); + + end + end % End constructor + + %----------------------------------------- + % Destructor + %----------------------------------------- + function delete(h) + disp('*** Deleting repository manager') + if ~isempty(h) + disp(' - closing repository connections') + h.manager.closeAllConnections(); + h.deleteTimer('timerClearPass'); + h.deleteTimer('timerDisconnect'); + % close gui + if ~isempty(h.gui) + h.gui.dispose(); + end + end + end + + + function initGUI(wb) + + % Create a new GUI + wb.gui = mpipeline.repository.RepositoryManagerGUI([], wb.manager); + % Create new selector + wb.selector = mpipeline.repository.ConnectionSelector([], wb.manager); + + %--- called when window is closed + wb.h1 = handle(wb.gui, 'callbackproperties'); + wb.h1.WindowClosedCallback = @LTPDARepositoryManager.cb_guiClosed; + + + end + + end % End public methods + + methods + varargout = display(varargin) + varargout = updatePrefs(varargin) + varargout = restartTimers(varargin) + varargout = showGui(varargin) + varargout = listConnections(varargin) + + varargout = deleteTimer(varargin) + end + + methods (Static=true) + + % Callback methods + varargout = cb_timerDisconnect(varargin) + varargout = cb_timerClearPassord(varargin) + varargout = cb_newConnection(varargin) + varargout = cb_guiClosed(varargin) + + % Timer methods + varargout = startTimer(varargin) + varargout = resetTimer(varargin) + + % Helper Methods + varargout = getSinfo(varargin) + varargout = executeQuery(varargin) + varargout = copyObjects(varargin) + + function ii = getInfo(varargin) + ii = utils.helper.generic_getInfo(varargin{:}, 'LTPDARepositoryManager'); + end + + % Return the plist for a particular parameter set + function out = getDefaultPlist(set) + out = plist(); + end + + function out = VEROUT() + out = '$Id: LTPDARepositoryManager.m,v 1.14 2011/02/03 13:46:23 ingo Exp $'; + end + + function out = SETS() + out = {'Default'}; + end + + function obj = initObjectWithSize(n,m) + obj = LTPDARepositoryManager.newarray([n m]); + end + + end + %------------------------------------------------ + % Private static methods + %------------------------------------------------ + methods(Access=private, Static=true) + end + +end +