Example #1
0
        public void Execute(IActionContext context)
        {
            IResource resultContact;

            if (context.SelectedResources.Count == 1)
            {
                IResourceList candidates = ContactManager.GetContactsForMerging(context.SelectedResources[0]);
                if (candidates.Count == 0)
                {
                    candidates = null;
                }
                resultContact = ShowMergeDialog(candidates, context.SelectedResources);
            }
            else
            {
                resultContact = ShowMergeDialog(context.SelectedResources, null);
            }

            if (resultContact != null)
            {
                if (Core.TabManager.CurrentTab.Name == "Contacts")
                {
                    Core.ResourceBrowser.SelectResource(resultContact);
                }
                else
                {
                    AbstractViewPane pane = Core.LeftSidebar.GetPane(StandardViewPanes.Correspondents);
                    if (pane != null)
                    {
                        pane.SelectResource(resultContact, false);
                    }
                }
            }
        }
Example #2
0
 public void DisplayResourceInContext(IResource res)
 {
     if (!res.HasProp(Core.Props.Parent))
     {
         if (MessageBox.Show(Core.MainWindow, "You are not subscribed to " + res.DisplayName +
                             ". Would you like to subscribe?", "Subscribe to Newsgroup",
                             MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
         {
             SubscribeForm.SubscribeToGroups();
         }
     }
     else
     {
         Core.UIManager.BeginUpdateSidebar();
         try
         {
             if (!Core.TabManager.ActivateTab("News"))
             {
                 return;
             }
             Core.LeftSidebar.ActivateViewPane("Newsgroups");
         }
         finally
         {
             Core.UIManager.EndUpdateSidebar();
         }
         AbstractViewPane pane = Core.LeftSidebar.GetPane("Newsgroups");
         if (pane != null)
         {
             pane.SelectResource(res, false);
         }
     }
 }
Example #3
0
        public void DisplayResourceInContext(IResource res)
        {
            Core.UIManager.BeginUpdateSidebar();
            if (!Core.TabManager.ActivateTab("Contacts"))
            {
                return;
            }

            IResource addressBook = res.GetLinkProp(AddressBook.PropInAddressBook);

            if (addressBook != null)
            {
                Core.LeftSidebar.ActivateViewPane("AddressBooks");
                Core.UIManager.EndUpdateSidebar();
                AbstractViewPane pane = Core.LeftSidebar.GetPane("AddressBooks");
                if (pane != null)
                {
                    pane.SelectResource(addressBook, false);
                }
            }
            else
            {
                IResource allView = Core.ResourceStore.FindUniqueResource("SearchView", Core.Props.Name, "All");
                if (allView != null)
                {
                    Core.LeftSidebar.ActivateViewPane(StandardViewPanes.ViewsCategories);
                    Core.UIManager.EndUpdateSidebar();
                    Core.LeftSidebar.DefaultViewPane.SelectResource(allView);
                }
            }

            Core.ResourceBrowser.SelectResource(res);
        }
Example #4
0
        public override void Execute(IActionContext context)
        {
            //  ShowCorrespondence can be issued on resources of both "Contact"
            //  and "ContactName" types.
            IResource contact = context.SelectedResources[0];

            if (contact.Type == "ContactName")
            {
                contact = contact.GetLinkProp(Core.ContactManager.Props.LinkBaseContact);
            }

            Core.UIManager.BeginUpdateSidebar();

            IResource ws = Core.WorkspaceManager.ActiveWorkspace;

            if (ws != null && !contact.HasLink("InWorkspace", ws))
            {
                Core.WorkspaceManager.ActiveWorkspace = null;
            }

            Core.TabManager.CurrentTabId = "All";
            Core.LeftSidebar.ActivateViewPane(StandardViewPanes.Correspondents);
            Core.UIManager.EndUpdateSidebar();
            AbstractViewPane viewPane = Core.LeftSidebar.GetPane(StandardViewPanes.Correspondents);

            viewPane.SelectResource(contact, false);
        }
Example #5
0
        public void RegisterPane(AbstractViewPane pane, string id, string caption, Image icon)
        {
            PaneCaption paneCaption = new PaneCaption();

            paneCaption.Text           = caption;
            paneCaption.Dock           = DockStyle.Top;
            paneCaption.CaptionButtons = PaneCaptionButtons.Minimize;
            paneCaption.Click         += OnPaneCaptionClick;
            paneCaption.MinimizeClick += OnPaneMinimize;
            paneCaption.ColorScheme    = _colorScheme;
            _contentPane.Controls.Add(paneCaption);
            _contentPane.Controls.SetChildIndex(paneCaption, 0);

            int paneHeight = pane.Height;

            SidebarPaneBackground background = new SidebarPaneBackground();

            background.SetContents(pane);
            background.ColorScheme = _colorScheme;
            background.Dock        = DockStyle.Top;
            background.Visible     = false;
            background.Height      = 0;
            _contentPane.Controls.Add(background);
            _contentPane.Controls.SetChildIndex(background, 0);

            pane.ShowSelection = false;
            pane.Enter        += OnPaneEnter;
            pane.Leave        += OnPaneLeave;

            Splitter paneSplitter = new Splitter();

            paneSplitter.Dock   = DockStyle.Top;
            paneSplitter.Height = 3;
            _contentPane.Controls.Add(paneSplitter);
            _contentPane.Controls.SetChildIndex(paneSplitter, 0);

            PaneData paneData = new PaneData(id, background, pane, paneCaption, paneSplitter, paneHeight);

            paneCaption.Tag = paneData;

            IColorSchemeable schemeable = pane as IColorSchemeable;

            if (schemeable != null)
            {
                schemeable.ColorScheme = _colorScheme;
            }

            ToolStripButton button = _paneButtons.AddButton(paneData, icon, caption);

            button.CheckedChanged += OnToolbarButtonClicked;

            AdjustDockAndSplitters(null, false);
            if (PaneAdded != null)
            {
                PaneAdded(this, EventArgs.Empty);
            }
        }
Example #6
0
        public void Execute(IActionContext context)
        {
            AbstractViewPane viewPane = Core.LeftSidebar.GetPane(StandardViewPanes.ViewsCategories);

            if (viewPane != null)
            {
                viewPane.UpdateSelection();
            }
        }
Example #7
0
        private static void RedisplayResource(IResource res)
        {
            AbstractViewPane viewPane = Core.LeftSidebar.GetPane(Core.LeftSidebar.ActivePaneId);

            if (viewPane.SelectedResource == res)
            {
                // force redisplay of resource
                viewPane.SelectResource(res, false);
            }
        }
Example #8
0
 public PaneData(string paneID, SidebarPaneBackground paneBackground, AbstractViewPane pane,
                 PaneCaption paneCaption, Splitter paneSplitter, int paneHeight)
 {
     PaneId         = paneID;
     PaneBackground = paneBackground;
     Pane           = pane;
     PaneCaption    = paneCaption;
     PaneSplitter   = paneSplitter;
     PaneHeight     = paneHeight;
 }
Example #9
0
        /**
         * Registers a resource pane that will display the resource structure (and will
         * be combined with the "Views and Categories" pane) on the specified resource type tab.
         */

        public void RegisterResourceStructurePane(string paneId, string tabId, string caption,
                                                  Image icon, AbstractViewPane viewPane)
        {
            RegisterActivateAction(tabId, paneId, caption);
            AddPane(tabId, paneId, viewPane, caption, icon);
            RegisterResourceStructurePane(tabId, paneId);

            if (viewPane is JetResourceTreePane)
            {
                ViewsCategoriesPane viewsCategoriesPane = (ViewsCategoriesPane)GetPane(tabId, StandardViewPanes.ViewsCategories);
                viewsCategoriesPane.ShowWorkspaceOtherView = false;
            }
        }
Example #10
0
        public void ActivatePane(string paneId)
        {
            AbstractViewPane pane = GetPane(paneId);

            pane.Focus();

            // hack (see #5371, #5746)
            IResource selResource = pane.SelectedResource;

            if (selResource != null)
            {
                pane.SelectResource(selResource, false);
            }
            _paneButtons.SetButtonPressed(paneId, true);
        }
Example #11
0
 private void UpdateResourcePanes()
 {
     if (Core.TabManager.CurrentTab.Name == "Contacts")
     {
         Core.ResourceBrowser.SelectResource(resultContacts[0]);
     }
     else
     {
         AbstractViewPane pane = Core.LeftSidebar.GetPane(StandardViewPanes.Correspondents);
         if (pane != null && resultContacts.Count > 0)
         {
             pane.SelectResource(resultContacts[0], false);
         }
     }
 }
Example #12
0
        protected AbstractBrowseState(IResource ownerResource)
        {
            _activeTab = Core.TabManager.CurrentTabId;

            string activePaneID = Core.LeftSidebar.ActivePaneId;

            if (activePaneID != null)
            {
                AbstractViewPane viewPane = Core.LeftSidebar.GetPane(activePaneID);
                if (viewPane != null && viewPane.SelectedResource == ownerResource)
                {
                    _activeSidebarPane = activePaneID;
                }
            }

            _ownerResource = ownerResource;
            _tag           = null;
        }
Example #13
0
        private static void OnPaneCaptionClick(object sender, EventArgs e)
        {
            PaneCaption      caption = (PaneCaption)sender;
            AbstractViewPane pane    = ((PaneData)caption.Tag).Pane;

            if (!pane.ContainsFocus)
            {
                pane.Focus();

                // HACK: Remove when all panes are converted to JetListView
                if (!(pane is ResourceTreePaneBase))
                {
                    IResource node = pane.SelectedResource;
                    if (node != null)
                    {
                        pane.SelectResource(node, false);
                    }
                }
            }
        }
Example #14
0
        public bool Show(ResourceBrowser owner)
        {
            if (_discarded)
            {
                return(false);
            }

            Core.UIManager.BeginUpdateSidebar();
            if (!Core.TabManager.ActivateTab(_activeTab))
            {
                Core.UIManager.EndUpdateSidebar();
                return(false);
            }

            if (_ownerResource != null && _activeSidebarPane != null)
            {
                AbstractViewPane pane = Core.LeftSidebar.ActivateViewPane(_activeTab, _activeSidebarPane);
                Core.UIManager.EndUpdateSidebar();
                if (pane == null)
                {
                    // DoEvents() could have happened when activating pane and caused switch to other pane
                    // (OM-11136)
                    return(false);
                }
                pane.SelectResource(_ownerResource, false);
                if (_selectedResource != null)
                {
                    owner.SelectResource(_selectedResource);
                }

                return(true);
            }
            else
            {
                Core.UIManager.EndUpdateSidebar();
                return(DoShow(owner));
            }
        }
Example #15
0
        /// <summary>
        /// Selects the default resource for the specified tab.
        /// </summary>
        private void SelectDefaultView(string tabID)
        {
            AbstractViewPane defaultPane = _querySidebar.DefaultViewPane as AbstractViewPane;

            IResource res = (IResource)_defaultSelectedResources[tabID];

            if (res != null)
            {
                string paneID = _querySidebar.GetResourceStructurePaneId(tabID);
                if (paneID != null)
                {
                    AbstractViewPane viewPane = _querySidebar.GetPane(paneID);
                    if (viewPane != null && viewPane.SelectResource(res, false))
                    {
                        viewPane.Select();
                        return;
                    }
                }

                if (defaultPane.SelectResource(res, false))
                {
                    _querySidebar.Select();
                    return;
                }
            }

            if (_defaultViewResource != null)
            {
                if (defaultPane.SelectResource(_defaultViewResource, false))
                {
                    defaultPane.Select();
                    return;
                }
            }

            Core.ResourceBrowser.DisplayResourceList(null, Core.ResourceStore.EmptyResourceList,
                                                     "", null);
        }
Example #16
0
        public AbstractViewPane ActivateViewPane(string tabId, string paneId)
        {
            VerticalSidebar sidebar = _activeSidebar;

            if (sidebar == null || sidebar != _tabSidebars [tabId])
            {
                return(null);
            }

            AbstractViewPane pane = sidebar.GetPane(paneId);

            if (pane == null)
            {
                return(null);
            }

            sidebar.ActivatePane(paneId);
            if (_activeSidebar != sidebar)
            {
                // one more check for tab switch caused by message processing during activation
                return(null);
            }
            return(pane);
        }
Example #17
0
        /// <summary>
        /// Shows the sidebar for the specified tab.
        /// </summary>
        public void ShowPanesForTab(string tabId, SidebarState state)
        {
            _currentTabID = tabId;
            Core.UIManager.BeginUpdateSidebar();

            VerticalSidebar sidebar = GetSidebar(tabId);

            if (sidebar != _activeSidebar)
            {
                _newActiveSidebar = sidebar;
                if (!_populatedSidebars.Contains(tabId))
                {
                    _populatedSidebars.Add(tabId);
                    sidebar.PopulateViewPanes();

                    if (state == null)
                    {
                        sidebar.BeginUpdate();
                        AbstractViewPane pane = sidebar.GetPane(StandardViewPanes.ViewsCategories);
                        if (pane != null)
                        {
                            sidebar.ActivatePane(StandardViewPanes.ViewsCategories);
                        }

                        string structurePaneID = (string)_resourceStructurePanes [tabId];
                        if (structurePaneID != null)
                        {
                            sidebar.ActivatePane(structurePaneID);
                        }
                        sidebar.EndUpdate();
                    }
                }
                sidebar.UpdateActiveWorkspace();
                if (state != null)
                {
                    sidebar.CurrentState = state;
                }

                if (_activeSidebar != null)
                {
                    _activeSidebar.ExpandedChanged -= OnActiveSidebarExpandedChanged;
                }
                sidebar.ExpandedChanged += OnActiveSidebarExpandedChanged;
                Expanded = sidebar.Expanded;
//                Width = Expanded ? ExpandedWidth : sidebar.CollapsedWidth;
                Width = Expanded ? ExpandedWidth : 0;
            }
            else
            {
                sidebar.UpdateActiveWorkspace();
                if (state != null)
                {
                    sidebar.CurrentState = state;
                }
            }

            if (sidebar != _activeSidebar)
            {
                sidebar.Visible = true;
                if (_activeSidebar != null)
                {
                    _activeSidebar.Visible = false;
                }
                _activeSidebar = sidebar;
                if (ContainsFocus)
                {
                    _activeSidebar.FocusActivePane();
                }
            }

            Core.UIManager.EndUpdateSidebar();
            _newActiveSidebar = null;
        }
Example #18
0
        /**
         * Registers a pane to be shown in the sidebar for the specified tab.
         */

        public void AddPane(string tabID, string paneID, AbstractViewPane viewPane, string caption, Image icon)
        {
            VerticalSidebar sidebar = GetSidebar(tabID);

            sidebar.RegisterPane(viewPane, paneID, caption, icon);
        }
Example #19
0
        /**
         * Registers a view pane that will be shown in the sidebar.
         */

        public void RegisterViewPane(string paneID, string tabID, string caption, Image icon, AbstractViewPane viewPane)
        {
            RegisterActivateAction(tabID, paneID, caption);
            AddPane(tabID, paneID, viewPane, caption, icon);
        }
Example #20
0
        public bool ContainsPane(string paneId)
        {
            AbstractViewPane pane = GetPane(paneId);

            return(pane != null);
        }