Browse Source

Now ClassBrowser tree nodes show their context menus independently.

pull/48/head
Andreas Weizel 12 years ago
parent
commit
c65b6cde05
  1. 14
      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

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

@ -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;
var treeNode = this.SelectedItem as ModelCollectionTreeNode; if (treeNode != null) {
if (treeNode != null) { treeNode.ShowContextMenu();
var model = treeNode.Model;
if (model is IEntityModel) {
var ctx = MenuService.ShowContextMenu(e.Source as UIElement, (IEntityModel) model, "/SharpDevelop/EntityContextMenu");
e.Handled = true;
}
}
} }
} }
} }

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

@ -4,6 +4,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Windows.Media; using System.Windows.Media;
using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Utils; using ICSharpCode.NRefactory.Utils;
using ICSharpCode.TreeView; using ICSharpCode.TreeView;
@ -220,6 +221,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
if (target != null) if (target != null)
NavigationService.NavigateTo(target); 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 public class MemberTreeNode : ModelCollectionTreeNode
@ -282,5 +291,13 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
if (target != null) if (target != null)
NavigationService.NavigateTo(target); 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
} }
} }
public virtual void ShowContextMenu()
{
// Do nothing in base class
}
#region Manage Children #region Manage Children
protected override void LoadChildren() protected override void LoadChildren()
{ {

Loading…
Cancel
Save