コード例 #1
0
        public override void Dispose()
        {
            ActiveDock = null;
            if (HelpersTileview != null)
            {
                HelpersTileview.Clear();
            }
            if (DockletsTileview != null)
            {
                DockletsTileview.Clear();
            }

            helpertiles.ForEach(to => to.Dispose());
            helpertiles.Clear();
            docklettiles.ForEach(to => to.Dispose());
            docklettiles.Clear();

            base.Dispose();
        }
コード例 #2
0
        void RefreshDocklets()
        {
            if (DockletsTileview == null)
            {
                return;
            }

            AbstractDockItemProvider selectedProvider = null;
            DockletTile selectedTile = (DockletTile)DockletsTileview.CurrentTile();

            if (selectedTile != null)
            {
                selectedProvider = selectedTile.Provider;
            }

            DockletsTileview.Clear();
            docklettiles.ForEach(tile => tile.Dispose());
            docklettiles.Clear();

            if (ActiveDock == null)
            {
                return;
            }

            string query = DockletSearch.InnerEntry.Text.ToLower();
            // build a list of DockletTiles, starting with the currently active tiles for the active dock,
            // and the available addins
            DockletTile currentTile = null;

            foreach (AbstractDockItemProvider provider in ActiveDock.Preferences.ItemProviders)
            {
                string providerID = PluginManager.AddinIDFromProvider(provider);
                if (string.IsNullOrEmpty(providerID))
                {
                    continue;
                }

                docklettiles.Add(new DockletTile(providerID, provider));
                if (provider == selectedProvider)
                {
                    currentTile = docklettiles.Last();
                }
            }

            docklettiles = docklettiles.Concat(PluginManager.AvailableProviderIDs.Select(id => new DockletTile(id))).ToList();

            if (docklet_show_cmb.Active == (int)DockletShowStates.Active)
            {
                docklettiles = docklettiles.Where(t => t.Enabled).ToList();
            }
            else if (docklet_show_cmb.Active == (int)DockletShowStates.Disabled)
            {
                docklettiles = docklettiles.Where(t => !t.Enabled).ToList();
            }

            docklettiles = docklettiles.Where(t => t.Description.ToLower().Contains(query) || t.Name.ToLower().Contains(query)).ToList();

            foreach (DockletTile docklet in docklettiles)
            {
                DockletsTileview.AppendTile(docklet);
            }

            if (currentTile != null)
            {
                DockletsTileview.Select(docklettiles.IndexOf(currentTile));
            }
        }