상속: IDisposable
예제 #1
0
파일: BarControl.cs 프로젝트: netide/netide
        protected BarControl(IServiceProvider serviceProvider, NiCommandBar bar, IBarControl control)
        {
            if (serviceProvider == null)
                throw new ArgumentNullException("serviceProvider");
            if (bar == null)
                throw new ArgumentNullException("bar");

            _menuManager = (NiMenuManager)serviceProvider.GetService(typeof(INiMenuManager));
            _env = (NiEnv)serviceProvider.GetService(typeof(INiEnv));

            Bar = bar;
            Bar.AppearanceChanged += Bar_AppearanceChanged;

            var objectWithSite = control as INiObjectWithSite;
            if (objectWithSite != null)
                ErrorUtil.ThrowOnFailure(objectWithSite.SetSite(serviceProvider));

            Control = control;
            Control.Tag = this;
            Control.QueryStatus += (s, e) => _menuManager.QueryStatus(Bar);

            UpdateItem();

            _groupManager = new GroupManager(Bar, serviceProvider, Control);
        }
예제 #2
0
        public void Dispose()
        {
            if (!_disposed)
            {
                Bar.AppearanceChanged -= Bar_AppearanceChanged;

                if (_groupManager != null)
                {
                    _groupManager.Dispose();
                    _groupManager = null;
                }

                if (Control != null)
                {
                    Control.Dispose();
                    Control = null;
                }

                _disposed = true;
            }
        }
예제 #3
0
        public PopupControl(IServiceProvider serviceProvider, NiCommandBarPopup control, ToolStripItemDisplayStyle defaultDisplayStyle)
            : base(serviceProvider, control, defaultDisplayStyle)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }

            _serviceProvider = serviceProvider;
            _groupManager    = new GroupManager(NiCommand, serviceProvider, Item);
            _menuManager     = (NiMenuManager)serviceProvider.GetService(typeof(INiMenuManager));

            var objectWithSite = Item as INiObjectWithSite;

            if (objectWithSite != null)
            {
                ErrorUtil.ThrowOnFailure(objectWithSite.SetSite(serviceProvider));
            }

            Item.QueryStatus += (s, e) => _menuManager.QueryStatus(NiCommand);
        }
예제 #4
0
파일: BarControl.cs 프로젝트: netide/netide
        public void Dispose()
        {
            if (!_disposed)
            {
                Bar.AppearanceChanged -= Bar_AppearanceChanged;

                if (_groupManager != null)
                {
                    _groupManager.Dispose();
                    _groupManager = null;
                }

                if (Control != null)
                {
                    Control.Dispose();
                    Control = null;
                }

                _disposed = true;
            }
        }