% cb_guiClosed callback for closing the LTPDAprefs GUI
%
% Parameters:
%       first  - LTPDAprefs object
%       second - Source object (here: java LTPDAPrefsGui)
%       third  - Event Object (here: WindowEvent)
%
% Version:
%     $Id: cb_guiClosed.m,v 1.4 2011/04/27 12:45:49 hewitson Exp $
%

function cb_guiClosed(varargin)
  ltpdaPrefs = varargin{1};
  
  if ~isempty(ltpdaPrefs) && isvalid(ltpdaPrefs)
    %--- called when window is closed
    h = handle(ltpdaPrefs.gui, 'callbackproperties');
    set(h, 'WindowClosedCallback', []);
    %--- Add extension path button
    h = handle(ltpdaPrefs.gui.getPrefsTabPane().getExtensionsPanel().getAddPathBtn(), 'callbackproperties');
    set(h, 'ActionPerformedCallback', []);
    %--- Remove extension path button
    h = handle(ltpdaPrefs.gui.getPrefsTabPane().getExtensionsPanel().getRemovePathBtn(), 'callbackproperties');
    set(h, 'ActionPerformedCallback', []);
    %--- Plot preferences changed
    h = handle(ltpdaPrefs.gui.getPrefs().getPlotPrefs(), 'callbackproperties');
    set(h, 'PropertyChangeCallback', []);
        
    ltpdaPrefs.gui.setPrefs([]);
    
    %--- It is also necessary to destroy the GUI with the destructor 'delete'
    delete(ltpdaPrefs);
    
  end
  
  java.lang.System.gc
  clear();
  
end
