/// <summary>
        /// The method called by walkinside, just before the plugin is removed from walkinside environment.
        /// </summary>
        /// <param name="viewer">The context of the viewer when plugin is created.</param>
        /// <returns>True if destruction of plugin succeeded.</returns>
        public bool DestroyPlugin( IVRViewerSdk viewer )
        {
            _avevaManager.OnClosing();

            viewer.ProjectManager.OnProjectOpen -= new VRProjectEventHandler( ProjectManager_OnProjectOpen );
            viewer.ProjectManager.OnProjectClose -= new VRProjectEventHandler( ProjectManager_OnProjectClose );
            viewer.ProjectManager.OnBranchSelect -= new VROnBranchSelectedEventHandler( ProjectManager_OnBranchSelect );

            viewer.UI.UnregisterVRFORM( m_ToolStripItem1, typeof( AssetView ) );
            viewer.UI.PluginMenu.DropDownItems.Remove( m_ToolStripItem1 );
            m_ToolStripItem1 = null;

            _avevaManager = null;
            Root = null;

            return true;
        }
        void ProjectManager_OnProjectOpen( object o, VRProjectEventArgs e )
        {
            IVRBranch[] rootarray = e.Project.ProjectManager.CurrentProject.BranchManager.GetBranchesByType( 0 );
            if( rootarray.Length > 0 )
            {
                Root = rootarray[0];
                _avevaManager = new AssetViewManager();

                IVRSelection first = CurrentViewer.CreateSelection();
                first.Add( Root.Manager.GetBranch( 35626 ) );
                first.GoTo();
                first.Dispose();
            }
        }