Example #1
0
        static public void RegisterWizardPane(string header, OptionsPaneCreator creator, int order)
        {
            if (_registeredPanes.Contains(header))
            {
                throw new InvalidOperationException(
                          "Startup Wizard Pane '" + header + "' is already registered.");
            }
            int index = header.LastIndexOf('/');

            if (index > 0)
            {
                string parentHeader = header.Substring(0, index);
                if (!_registeredPanes.Contains(parentHeader))
                {
                    throw new InvalidOperationException(
                              "Can't register Startup Wizard Pane '" + header + "' because parent pane '" +
                              parentHeader + "' was not registered.");
                }
            }
            _registeredPanes[header] = new Pair(order, creator);
            if (_activeWizard != null)
            {
                CreatePane(header);
            }
        }
Example #2
0
        static private OptionsPaneWizardAdapter CreatePane(string fullHeader)
        {
            Pair pair  = (Pair)_registeredPanes[fullHeader];
            int  order = (int)pair.First;
            OptionsPaneCreator creator      = (OptionsPaneCreator)pair.Second;
            string             parentHeader = string.Empty;
            string             header       = fullHeader;
            int index = fullHeader.LastIndexOf('/');

            if (index > 0)
            {
                parentHeader = fullHeader.Substring(0, index);
                header       = fullHeader.Substring(index + 1);
            }
            OptionsPaneWizardAdapter pane = new OptionsPaneWizardAdapter(header, creator);

            pane.IsStartupPane = true;
            if (parentHeader.Length == 0)
            {
                _activeWizard.RegisterPane(order, pane);
            }
            else
            {
                OptionsPaneWizardAdapter parentPane = (OptionsPaneWizardAdapter)_activePanes[parentHeader];
                if (parentPane == null)
                {
                    parentPane = CreatePane(parentHeader);
                }
                parentPane.RegisterPane(order, pane);
            }
            _activePanes[fullHeader] = pane;
            return(pane);
        }
Example #3
0
        public void Register()
        {
            _folderChanged = SelectedFolderChanged;
            _fileRenamed   = SelectedFolderRenamed;

            RegisterTypes();

            IUIManager         uiMgr           = Core.UIManager;
            OptionsPaneCreator filePaneCreator = SetFoldersForm.SetFoldersFormCreator;

            uiMgr.RegisterOptionsGroup("Folders & Files", "The Folders & Files options enable you to control the indexing of folders and files.");
            uiMgr.RegisterOptionsPane("Folders & Files", "Indexed Folders", filePaneCreator,
                                      "The Indexed Folders options enable you to specify what folders on your computer should be indexed by [product name], or specifically excluded from indexing.");
            uiMgr.RegisterWizardPane("Indexed Folders", filePaneCreator, 0);
            uiMgr.RegisterOptionsPane("Folders & Files", "File Options", FileOptionsPane.FileOptionsPaneCreator,
                                      "The File Options enable you to control the indexing and display of hidden files, and to specify the extensions of files that [product name] should treat as plain text files.");
            uiMgr.RegisterResourceSelectPane(_folderResourceType, typeof(FileFoldersSelectorPane));
            Core.TabManager.RegisterResourceTypeTab("Files", "Files", new[] { _folderResourceType }, _propParentFolder, 5);

            IResource filesRoot = FoldersCollection.Instance.FilesRoot;
            Image     img       = Utils.TryGetEmbeddedResourceImageFromAssembly(Assembly.GetExecutingAssembly(), "FilePlugin.Icons.Folders24.png");

            _pane = Core.LeftSidebar.RegisterResourceStructureTreePane("FileFolders", "Files", "Indexed Folders", img, filesRoot);
            _pane.ParentProperty = _propParentFolder;
            _pane.AddNodeFilter(new FoldersFilter());
            _pane.WorkspaceFilterTypes = new[] { _folderResourceType };
            Core.ResourceTreeManager.SetResourceNodeSort(filesRoot, "DisplayName");
            Core.LeftSidebar.RegisterViewPaneShortcut("FileFolders", Keys.Control | Keys.Alt | Keys.I);

            IPluginLoader loader = Core.PluginLoader;

            loader.RegisterStreamProvider(_folderResourceType, this);
            loader.RegisterResourceUIHandler(_folderResourceType, this);
            loader.RegisterResourceDragDropHandler(_folderResourceType, new DragDropLinkAdapter(this));

            Core.UIManager.RegisterResourceLocationLink(_folderResourceType, 0, _folderResourceType);

            Core.ResourceIconManager.RegisterPropTypeIcon(_propParentFolder, LoadIconFromAssembly("file.ico"));
            Core.ResourceIconManager.RegisterResourceIconProvider(_folderResourceType, this);

            Core.ResourceBrowser.RegisterLinksPaneFilter("FileFolder", new FileFolderLinksFilter());

            ((FileResourceManager)Core.FileResourceManager).RegisterFileTypeColumns(_folderResourceType);

            LoadResourceIcons();

            _filesProcessor            = new FileAsyncProcessor();
            _filesProcessor.ThreadName = "Files AsyncProcessor";
            Core.UIManager.RegisterIndicatorLight("Files Processor", _filesProcessor, 60,
                                                  LoadIconFromAssembly("files_idle.ico"),
                                                  LoadIconFromAssembly("files_busy.ico"),
                                                  LoadIconFromAssembly("files_stuck.ico"));

            Core.ResourceStore.LinkAdded        += ResourceStore_LinkAdded;
            Core.ResourceBrowser.ContentChanged += ResourceBrowser_ContentChanged;
        }
Example #4
0
        private static void RegisterOptionsPanes()
        {
            IUIManager uiManager = Core.UIManager;

            uiManager.RegisterOptionsGroup("MS Outlook", "This option group contains several pages of setting that control the way [product name] works with Microsoft Outlook's e-mail client.");

            OptionsPaneCreator outlookPaneCreator = OutlookOptionsPane.OutlookOptionsPaneCreator;

            uiManager.RegisterOptionsPane("MS Outlook", STR.OUTLOOK_GENERAL, outlookPaneCreator,
                                          "The Outlook General options enable you to control e-mail delivery, change e-mail addresses that [product name] recognizes as yours, control the display of embedded pictures, control the marking of messages after forwards or replies, and to create [product name] categories from Outlook mailing lists.");

            uiManager.RegisterWizardPane(STR.OUTLOOK_GENERAL, OutlookOptionsPane.OutlookOptionsPaneCreator, 3);

            if (Core.ResourceStore.GetAllResources(STR.MAPIInfoStore).Count > 1)
            {
                uiManager.RegisterOptionsPane("MS Outlook", "Outlook Information Stores", OutlookOptionsPane_InfoStores.CreateOptionsPane,
                                              "The Outlook Information Stores options enable you to select which information stores are included in indexing.");

                uiManager.RegisterWizardPane("Outlook Information Stores", OutlookOptionsPane_InfoStores.CreateOptionsPane, 4);
            }
            else
            {
                OutlookSession.OutlookProcessor.SynchronizeFolderStructure();
                OutlookSession.OutlookProcessor.SynchronizeOutlookAddressBooks();
            }

            OptionsPaneCreator outlookPaneCreatorIgnoredFolders = OutlookOptionsPane_IgnoredFolders.OptionsPaneCreator;

            uiManager.RegisterOptionsPane("MS Outlook", STR.OUTLOOK_FOLDERS, outlookPaneCreatorIgnoredFolders,
                                          "The Outlook Folders options enable you specify which Outlook folders are indexed by [product name].");
            uiManager.RegisterWizardPane(STR.OUTLOOK_FOLDERS, outlookPaneCreatorIgnoredFolders, 5);

            OptionsPaneCreator outlookPaneCreatorAddressBooks = OutlookOptionsPane_AddressBooks.OptionsPaneCreator;

            uiManager.RegisterOptionsPane("MS Outlook", STR.OUTLOOK_ADDRESS_BOOKS, outlookPaneCreatorAddressBooks,
                                          "The Address Books options enable you to select which Outlook address books are accessible from within [product name].");
            uiManager.RegisterWizardPane(STR.OUTLOOK_ADDRESS_BOOKS, outlookPaneCreatorAddressBooks, 6);

            OptionsPaneCreator outlookPaneCreatorTasks = OutlookOptionsPane_Tasks.OptionsPaneCreator;

            uiManager.RegisterOptionsPane("MS Outlook", STR.OUTLOOK_TASKS_PANE, outlookPaneCreatorTasks,
                                          "The Tasks options enable you to select which Outlook task folders are accessible from within [product name].");
            uiManager.RegisterWizardPane(STR.OUTLOOK_TASKS_PANE, outlookPaneCreatorTasks, 7);
        }
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
 internal PreviewSubscriptionsPaneAdapter(string header, OptionsPaneCreator creator) : base(header, creator)
 {
 }
Example #7
0
 public static void AddPane(OptionsPaneCreator paneCreator)
 {
     _creators.Add(paneCreator);
 }
Example #8
0
        public void Register()
        {
            _thePlugin      = this;
            _folderWatchers = new HashMap();
            _dbLocations    = new HashSet();
            _icqContacts    = new ArrayList();
            _icqMessages    = new ArrayList();
            _idResources    = new IntHashSet();

            RegisterTypes();

            IUIManager uiMgr = Core.UIManager;

            uiMgr.RegisterOptionsGroup("Instant Messaging", "The Instant Messaging options enable you to control how [product name] works with supported instant messaging programs.");
            OptionsPaneCreator icqPaneCreator = ICQOptionsPane.ICQOptionsPaneCreator;

            uiMgr.RegisterOptionsPane("Instant Messaging", "ICQ", icqPaneCreator,
                                      "The ICQ options enable you to specify which ICQ accounts should be indexed, and how [product name] should build conversations from ICQ messages.");
            uiMgr.AddOptionsChangesListener("Instant Messaging", "ICQ", ICQOptionsChanged);

            if (UINsCollection.GetUINs().Count > 0)
            {
                uiMgr.RegisterWizardPane("ICQ", icqPaneCreator, 10);
                Core.TabManager.RegisterResourceTypeTab("IM", "IM", _icqConversationResName, 2);
                _correspondentPane            = new CorrespondentCtrl();
                _correspondentPane.IniSection = "ICQ";
                _correspondentPane.SetCorresponentFilterList(Core.ResourceStore.FindResourcesWithProp(null, "ICQAcct"));

                Image img = Utils.TryGetEmbeddedResourceImageFromAssembly(Assembly.GetExecutingAssembly(), "ICQPlugin.Icons.Correspondents24.png");
                Core.LeftSidebar.RegisterResourceStructurePane("ICQCorrespondents", "IM", "ICQ Correspondents", img, _correspondentPane);
                Core.LeftSidebar.RegisterViewPaneShortcut("ICQCorrespondents", Keys.Control | Keys.Alt | Keys.Q);
            }

            IPluginLoader  loader        = Core.PluginLoader;
            IActionManager actionManager = Core.ActionManager;

            loader.RegisterResourceDisplayer(_icqConversationResName, this);
            actionManager.RegisterLinkClickAction(new ConversationLinkClickAction(), _icqConversationResName, null);
            _conversationManager = new IMConversationsManager(_icqConversationResName, "ICQ Conversation", "Subject",
                                                              GetConversationTimeSpan(), _propICQAcct, _propFromICQ, _propToICQ, this);
            _conversationManager.ReverseMode = GetReverseMode();
            SaveConversationAction saveConvAction = new SaveConversationAction(_conversationManager, _propNickName);

            actionManager.RegisterContextMenuAction(saveConvAction, ActionGroups.ITEM_OPEN_ACTIONS, ListAnchor.Last,
                                                    "Save to File...", null, _icqConversationResName, null);
            actionManager.RegisterActionComponent(saveConvAction, "SaveAs", _icqConversationResName, null);
            EmailConversationAction mailConvAction = new EmailConversationAction(_conversationManager, _propNickName);

            actionManager.RegisterContextMenuAction(mailConvAction, ActionGroups.ITEM_OPEN_ACTIONS, ListAnchor.Last,
                                                    "Send by Email", null, _icqConversationResName, null);
            actionManager.RegisterActionComponent(mailConvAction, "SendByMail", _icqConversationResName, null);
            loader.RegisterResourceSerializer(_icqAccountResName, new ICQAccountSerializer());
            loader.RegisterResourceTextProvider(_icqConversationResName, _conversationManager);
            loader.RegisterResourceTextProvider(_contactResName, this);

            Core.ResourceBrowser.RegisterLinksPaneFilter(_icqConversationResName, new ItemRecipientsFilter());
            Core.ResourceBrowser.RegisterLinksGroup("Accounts", new[] { _propICQAcct }, ListAnchor.First);

            //  Upgrade information about ICQ address book - set its
            //  ContentType property so that it could be filtered out when
            //  this plugin is switched off.
            IResource ab = Core.ResourceStore.FindUniqueResource("AddessBook", "Name", "ICQ Contacts");

            if (ab != null)
            {
                ab.SetProp("ContentType", _icqConversationResName);
            }

            Core.ResourceBrowser.SetDefaultViewSettings("IM", AutoPreviewMode.Off, true);
        }
Example #9
0
 public OptionsPaneWizardAdapter(string header, OptionsPaneCreator creator)
 {
     _header  = header;
     _creator = creator;
 }