* Makefile.am:
[monodevelop.git] / main / src / addins / MonoDevelop.DesignerSupport / MonoDevelop.DesignerSupport.Projects / ComponentNodeBuilder.cs
blobff41a989061dc8dc972be02285bbedacb70662d2
2 using System;
3 using MonoDevelop.Core;
4 using MonoDevelop.Projects;
5 using MonoDevelop.Ide.Gui;
6 using MonoDevelop.Ide.Gui.Pads;
7 using MonoDevelop.DesignerSupport.PropertyGrid;
8 using MonoDevelop.Ide.Gui.Components;
10 namespace MonoDevelop.DesignerSupport.Projects
12 class ComponentNodeBuilder: NodeBuilderExtension
14 public override bool CanBuildNode (Type dataType)
16 return true;
19 public override Type CommandHandlerType {
20 get { return typeof(ComponentNodeCommandHandler); }
24 class ComponentNodeCommandHandler: NodeCommandHandler, IPropertyPadProvider
26 public object GetActiveComponent ()
28 return CurrentNode.DataItem;
31 public object GetProvider ()
33 return null;
36 public void OnEndEditing (object obj)
40 public void OnChanged (object obj)
42 // Don't use the CurrentNode property here since it may not be properly initialized when the event is fired.
43 ITreeNavigator nav = Tree.GetNodeAtObject (obj);
44 if (nav != null) {
45 IWorkspaceFileObject ce = (IWorkspaceFileObject) nav.GetParentDataItem (typeof(IWorkspaceFileObject), true);
46 if (ce != null) {
47 IdeApp.ProjectOperations.Save (ce);
48 return;