Browse Source

Now ClassBrowser tree nodes show their context menus independently.

pull/48/head
Andreas Weizel 12 years ago
parent
commit
c65b6cde05
  1. 10
      src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs
  2. 17
      src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs
  3. 5
      src/Main/Base/Project/Dom/ModelCollectionTreeNode.cs

10
src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs

@ -36,17 +36,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -36,17 +36,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
}
}
protected override void OnMouseUp(System.Windows.Input.MouseButtonEventArgs e)
protected override void OnContextMenuOpening(ContextMenuEventArgs e)
{
if (e.ChangedButton == MouseButton.Right) {
var treeNode = this.SelectedItem as ModelCollectionTreeNode;
if (treeNode != null) {
var model = treeNode.Model;
if (model is IEntityModel) {
var ctx = MenuService.ShowContextMenu(e.Source as UIElement, (IEntityModel) model, "/SharpDevelop/EntityContextMenu");
e.Handled = true;
}
}
treeNode.ShowContextMenu();
}
}
}

17
src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Windows.Media;
using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Utils;
using ICSharpCode.TreeView;
@ -220,6 +221,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -220,6 +221,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
if (target != null)
NavigationService.NavigateTo(target);
}
public override void ShowContextMenu()
{
var model = this.Model;
if (model is IEntityModel) {
var ctx = MenuService.ShowContextMenu(null, (IEntityModel) model, "/SharpDevelop/EntityContextMenu");
}
}
}
public class MemberTreeNode : ModelCollectionTreeNode
@ -282,5 +291,13 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -282,5 +291,13 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
if (target != null)
NavigationService.NavigateTo(target);
}
public override void ShowContextMenu()
{
var model = this.Model;
if (model is IEntityModel) {
var ctx = MenuService.ShowContextMenu(null, (IEntityModel) model, "/SharpDevelop/EntityContextMenu");
}
}
}
}

5
src/Main/Base/Project/Dom/ModelCollectionTreeNode.cs

@ -54,6 +54,11 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -54,6 +54,11 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
public virtual void ShowContextMenu()
{
// Do nothing in base class
}
#region Manage Children
protected override void LoadChildren()
{

Loading…
Cancel
Save