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); } } } }
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); } } }
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); }
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); }
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); } }
public void Execute(IActionContext context) { AbstractViewPane viewPane = Core.LeftSidebar.GetPane(StandardViewPanes.ViewsCategories); if (viewPane != null) { viewPane.UpdateSelection(); } }
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); } }
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; }
/** * 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; } }
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); }
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); } } }
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; }
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); } } } }
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)); } }
/// <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); }
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); }
/// <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; }
/** * 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); }
/** * 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); }
public bool ContainsPane(string paneId) { AbstractViewPane pane = GetPane(paneId); return(pane != null); }