예제 #1
0
파일: CoreActions.cs 프로젝트: mo5h/omeo
        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);
        }
예제 #2
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);
                    }
                }
            }
        }
예제 #3
0
파일: ContactsPlugin.cs 프로젝트: mo5h/omeo
        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);
        }
예제 #4
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);
         }
     }
 }
예제 #5
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);
            }
        }
예제 #6
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);
        }
예제 #7
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);
         }
     }
 }
예제 #8
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);
        }
예제 #9
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);
                    }
                }
            }
        }
예제 #10
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));
            }
        }