Example #1
0
        /**
         * Register a view pane that displays a portion of the resource tree.
         */

        public IResourceTreePane RegisterTreeViewPane(string paneID, string tabName, string caption, Image icon, IResource rootResource)
        {
            JetResourceTreePane pane = new JetResourceTreePane();

            pane.RootResource = rootResource;
            RegisterViewPane(paneID, tabName, caption, icon, pane);
            return(pane);
        }
Example #2
0
        /**
         * Registers a resource structure pane which has the root of the specified type
         * as the root of the ResourceTreeView.
         */

        public IResourceTreePane RegisterResourceStructureTreePane(string paneId, string tabId, string caption,
                                                                   Image icon, string rootResType)
        {
            JetResourceTreePane treePane = (JetResourceTreePane)RegisterResourceStructureTreePane(paneId, tabId, caption, icon,
                                                                                                  Core.ResourceTreeManager.GetRootForType(rootResType));

            treePane.RootResourceType = rootResType;
            return(treePane);
        }
Example #3
0
        /**
         * Registers a resource structure pane based on a ResourceTreeView.
         */

        public IResourceTreePane RegisterResourceStructureTreePane(string paneId, string tabId, string caption,
                                                                   Image icon, IResource rootResource)
        {
            JetResourceTreePane pane = new JetResourceTreePane();

            pane.RootResource     = rootResource;
            pane.RootResourceType = null;
            RegisterResourceStructurePane(paneId, tabId, caption, icon, pane);

            ViewsCategoriesPane viewsCategoriesPane = (ViewsCategoriesPane)GetPane(tabId, StandardViewPanes.ViewsCategories);

            viewsCategoriesPane.ShowWorkspaceOtherView = false;

            return(pane);
        }
Example #4
0
        [SetUp] public void SetUp()
        {
            _core    = new TestCore();
            _storage = _core.ResourceStore;

            _workspaceManager = Core.WorkspaceManager;

            _workspaceManager.RegisterWorkspaceType("Category",
                                                    new int[] { (Core.CategoryManager as CategoryManager).PropCategory }, WorkspaceResourceType.Filter);
            _workspace = _workspaceManager.CreateWorkspace("WS");

            _storage.ResourceTypes.Register("Folder", "Name");
            _storage.ResourceTypes.Register("Email", "Name");

            _treePane = new JetResourceTreePane();
        }
Example #5
0
        public void Register()
        {
            _bookmarkService = new BookmarkService();

            RegisterTypes();

            IUIManager uiMgr = Core.UIManager;

            uiMgr.RegisterWizardPane("Import Bookmarks", ImportBookmarksOptionsPane.StartupWizardPaneCreator, 1);
            uiMgr.RegisterOptionsGroup("Internet", "The Internet options enable you to control how [product name] works with several types of online content.");
            OptionsPaneCreator favoritesPaneCreator = FavoritesOptionsPane.FavoritesOptionsPaneCreator;

            uiMgr.RegisterOptionsPane("Internet", "Favorites", favoritesPaneCreator,
                                      "The Favorites options enable you to control how your Internet Explorer Favorites are imported and synchronized with Internet Explorer.");
            ImportBookmarksOptionsPane.AddPane(favoritesPaneCreator);

            if (OperaBookmarkProfile.OperaBookmarksPath().Length > 0)
            {
                OptionsPaneCreator operaPaneCreator = OperaOptionsPane.CreatePane;
                uiMgr.RegisterOptionsPane("Internet", "Opera Bookmarks", operaPaneCreator,
                                          "The Opera Bookmarks options enable you to control how your Opera Bookmarks are imported.");
                ImportBookmarksOptionsPane.AddPane(operaPaneCreator);
            }

            OptionsPaneCreator downloadOptionsPaneCreator = DownloadOptionsPane.DownloadOptionsPaneCreator;

            uiMgr.RegisterOptionsPane("Internet", "Web Pages", downloadOptionsPaneCreator,
                                      "The Web Pages options enable you to control how your bookmarked Web pages are downloaded.");
            IPropTypeCollection propTypes = Core.ResourceStore.PropTypes;
            int sourceId = propTypes["Source"].Id;

            propTypes.RegisterDisplayName(sourceId, "Web Bookmark");
            Core.TabManager.RegisterResourceTypeTab("Web", "Web", new[] { "Weblink", "Folder" }, sourceId, 4);
            uiMgr.RegisterResourceLocationLink("Weblink", _propParent, "Folder");
            uiMgr.RegisterResourceLocationLink("Folder", _propParent, "Folder");
            uiMgr.RegisterResourceSelectPane("Weblink", typeof(ResourceTreeSelectPane));
            Core.WorkspaceManager.RegisterWorkspaceType("Weblink",
                                                        new[] { Core.ResourceStore.PropTypes["Source"].Id }, WorkspaceResourceType.Container);
            Core.WorkspaceManager.RegisterWorkspaceFolderType("Folder", "Weblink", new[] { _propParent });
            IPluginLoader loader = Core.PluginLoader;

            loader.RegisterResourceDisplayer("Weblink", this);
            loader.RegisterStreamProvider("Weblink", this);
            loader.RegisterResourceUIHandler("Folder", this);
            loader.RegisterResourceUIHandler("Weblink", this);
            loader.RegisterResourceTextProvider(null, this);
            _favIconManager = (FavIconManager)Core.GetComponentImplementation(typeof(FavIconManager));

            Image img = Utils.TryGetEmbeddedResourceImageFromAssembly(Assembly.GetExecutingAssembly(), "Favorites.Icons.Favorites24.png");

            _favoritesTreePane = Core.LeftSidebar.RegisterResourceStructureTreePane("Favorites", "Web", "Bookmarks", img, "Weblink");
            _favoritesTreePane.WorkspaceFilterTypes = new[] { "Weblink", "Folder" };
            _favoritesTreePane.EnableDropOnEmpty(this);
            JetResourceTreePane realPane = (JetResourceTreePane)_favoritesTreePane;

            realPane.AddNodeDecorator(new WeblinkNodeDecorator());
            realPane.AddNodeFilter(new BookmarkProfileFilter());
            _favoritesTreePane.ToolTipCallback = DisplayWeblinkError;
            Core.LeftSidebar.RegisterViewPaneShortcut("Favorites", Keys.Control | Keys.Alt | Keys.B);

            Core.ResourceIconManager.RegisterResourceIconProvider("Weblink", this);
            Core.ResourceIconManager.RegisterPropTypeIcon(Core.ResourceStore.PropTypes["Source"].Id, LoadIconFromAssembly("favorites1.ico"));
            _emptyWeblinkIcon = LoadIconFromAssembly("weblink_empty.ico");
            _errorWeblinkIcon = LoadIconFromAssembly("weblink_error.ico");
            WebLinksPaneFilter filter = new WebLinksPaneFilter();

            Core.ResourceBrowser.RegisterLinksPaneFilter("Weblink", filter);
            Core.ResourceBrowser.RegisterLinksPaneFilter("Folder", filter);
            Core.ResourceBrowser.RegisterResourceDisplayForwarder("Weblink", ForwardWeblinkDisplay);
            Core.FilterEngine.RegisterRuleApplicableResourceType("Weblink");

            Core.RemoteControllerManager.AddRemoteCall("Favorites.ExportMozillaBookmarkChanges.1",
                                                       new RemoteExportMozillaBookmarkChangesDelegate(RemoteExportMozillaBookmarkChanges));
            Core.RemoteControllerManager.AddRemoteCall("Favorites.SetMozillaBookmarkId.1",
                                                       new RemoteSetMozillaBookmarkIdDelegate(RemoteSetMozillaBookmarkId));
            Core.RemoteControllerManager.AddRemoteCall("Favorites.RefreshMozillaBookmarks.1",
                                                       new RemoteRefreshBookmarksDelegate(RemoteRefreshBookmarks));
            Core.RemoteControllerManager.AddRemoteCall("Favorites.AnnotateWeblink.1",
                                                       new RemoteAnnotateWeblinkDelegate(RemoteAnnotateWeblink));

            Core.DisplayColumnManager.RegisterDisplayColumn("Weblink", 0,
                                                            new ColumnDescriptor(new[] { "Name", "DisplayName" }, 300, ColumnDescriptorFlags.AutoSize));
            Core.DisplayColumnManager.RegisterDisplayColumn("Weblink", 1, new ColumnDescriptor("LastUpdated", 120));

            /**
             * bookmark profiles
             */
            Core.PluginLoader.RegisterPluginService(_bookmarkService);
            _favoritesProfile = new IEFavoritesBookmarkProfile(_bookmarkService);
            _bookmarkService.RegisterProfile(_favoritesProfile);
            if (OperaBookmarkProfile.OperaBookmarksPath().Length > 0)
            {
                _operaProfile = new OperaBookmarkProfile(_bookmarkService);
                _bookmarkService.RegisterProfile(_operaProfile);
            }
            if (MozillaProfiles.PresentOnComputer)
            {
                OptionsPaneCreator mozillaPaneCreator = MozillaOptionsPane.MozillaOptionsPaneCreator;
                uiMgr.RegisterOptionsPane("Internet", "Mozilla Bookmarks", mozillaPaneCreator,
                                          "The Mozilla Bookmarks options enable you to select Mozilla or Firefox profile which bookmarks are imported.");
                ImportBookmarksOptionsPane.AddPane(mozillaPaneCreator);
                RegisterMozillaProfiles(MozillaProfiles.GetMozillaProfiles());
                RegisterMozillaProfiles(MozillaProfiles.GetFirefoxProfiles());
                RegisterMozillaProfiles(MozillaProfiles.GetFirefox09Profiles());
                RegisterMozillaProfiles(MozillaProfiles.GetAbsoluteFirefoxProfiles());
                MozillaBookmarkProfile.SetImportPropertiesOfProfiles();
            }
        }
Example #6
0
        /// <summary>
        /// The main function for switching resource type tabs and workspaces.
        /// </summary>
        private void UpdateSelectedTab()
        {
            if (Core.State == CoreState.ShuttingDown)
            {
                return;
            }

            using (new WaitCursorDisplayer())
            {
                if (TabChanging != null)
                {
                    TabChanging(this, EventArgs.Empty);
                }

                _resourceBrowser.UnhookResourceList(null);

                Trace.WriteLine("--- Start tab switch ---");
                if (_curTabState != null)
                {
                    _curTabState.SidebarState = _querySidebar.CurrentState;
                }

                TabFilter tabFilter = (TabFilter)_tabBar.SelectedTabTag;

                string   tabText          = _tabBar.GetTabText(_tabBar.SelectedIndex);
                string   tabName          = (_tabBar.SelectedIndex > 0) ? tabText : null;
                string[] tabResourceTypes = tabFilter.GetResourceTypes();
                string   tabId            = tabFilter.Id;

                Trace.WriteLine("Setting default resource browser columns");
                _resourceBrowser.SetCaptionPrefix(tabName, false);
                _resourceBrowser.DefaultColumns = (tabResourceTypes == null)
                                        ? null
                                        : (Core.DisplayColumnManager as DisplayColumnManager).GetColumnsForTypes(tabResourceTypes);

                Trace.WriteLine("Initializing tab state");
                bool newState = false;
                WorkspaceTabState tabStateKey = GetCurStateKey();
                TabState          state       = (TabState)_tabStates[tabStateKey];
                if (state == null)
                {
                    newState = true;
                    state    = new TabState();
                    _tabStates[tabStateKey] = state;
                }

                //_resourceBrowser.ResourceListView.Filters.BeginUpdate();

                Trace.WriteLine("Updating ResourceListView filters");

                _curTabFilter = tabFilter;

                UpdateResourceBrowserFilterList();
                _resourceBrowser.UpdatePerTabSettings();

                Trace.WriteLine("Showing panes in QuerySidebar");
                _querySidebar.ShowPanesForTab(tabId, state.SidebarState);

                ResourceTreePaneBase defaultViewPane = _querySidebar.DefaultViewPane as ResourceTreePaneBase;
                if (defaultViewPane != null)
                {
                    defaultViewPane.UnreadState = _curUnreadState;
                }
                JetResourceTreePane structurePane = _querySidebar.ResourceStructurePane as JetResourceTreePane;
                if (structurePane != null)
                {
                    structurePane.UnreadState = _curUnreadState;
                }

                Trace.WriteLine("Firing TabSwitch handler");
                if (TabChanged != null)
                {
                    TabChanged(this, EventArgs.Empty);
                }

                if (newState)
                {
                    Trace.WriteLine("Showing columns for resource list");
                    if (_resourceBrowser.DefaultColumns != null)
                    {
                        _resourceBrowser.ShowListViewColumns(_resourceBrowser.DefaultColumns);
                    }
                    else
                    {
                        _resourceBrowser.ShowColumnsForResourceList();
                    }

                    Trace.WriteLine("Selecting default view");
//  Debug
                    try
                    {
                        SelectDefaultView(tabId);
                    }
                    catch (NullReferenceException)
                    {
                        throw new ApplicationException("Illegal name of the View [" + tabId + "] while switching to [" + tabText + "]");
                    }
//  endDebug
                }
                else
                {
                    Trace.WriteLine("Selecting default view");
                    if (state.SidebarState != null &&
                        state.SidebarState.SelectedResource == null)
                    {
//  Debug
                        try
                        {
                            SelectDefaultView(tabId);
                        }
                        catch (NullReferenceException)
                        {
                            throw new ApplicationException("Illegal name of the View [" + tabId + "] while switching to [" + tabText + "]");
                        }
//  endDebug
                    }
                }
                Trace.WriteLine("Ending filters update");
                //_resourceBrowser.ResourceListView.Filters.EndUpdate();
                _curTabState = state;
                Trace.WriteLine("--- Done tab switch ---");
            }
        }