/// <summary> /// Called by the framework when the designer is being initialized with the designed control /// </summary> /// <param name="component"></param> public override void Initialize(IComponent component) { base.Initialize(component); if (Control is TreeView) { try { m_oSelectionService = (ISelectionService) GetService(typeof (ISelectionService)); } catch { } try { m_oSelectionService.SelectionChanged += new EventHandler(this.OnSelectionServiceChanged); } catch { } try { m_oDesignerHost = (IDesignerHost) GetService(typeof (IDesignerHost)); } catch { } try { m_oMenuService = (IMenuCommandService) GetService(typeof (IMenuCommandService)); } catch { } try { m_oDesignerSerializationService = (IDesignerSerializationService) GetService(typeof (IDesignerSerializationService)); } catch { } try { m_oToolboxService = (IToolboxService) GetService(typeof (IToolboxService)); } catch { } try { m_oUIService = (IUIService) GetService(typeof (IUIService)); } catch { } try { m_oComponentChangeService = (IComponentChangeService) GetService(typeof (IComponentChangeService)); } catch { } m_oTreeView = (TreeView) Control; m_oTreeView.m_bFocus = true; m_oTreeView.ClearAllSelection(); m_oTreeView.DesignerHost = m_oDesignerHost; m_oTreeView.IsDesignMode = true; if (m_bFirstTime == true) { OnComponentCreated(m_oTreeView); m_bFirstTime = false; } try { m_oComponentAddedHandler = new ComponentEventHandler(this.OnComponentAdded); } catch { } try { m_oComponentRemovingHandler = new ComponentEventHandler(this.OnComponentRemoving); } catch { } try { m_oComponentChangeService.ComponentAdded += m_oComponentAddedHandler; } catch { } try { m_oComponentChangeService.ComponentRemoving += m_oComponentRemovingHandler; } catch { } try { m_oNodeParentChanged = new EventHandler(this.OnNodeParentChanged); } catch { } try { m_oOldCmdCopy = m_oMenuService.FindCommand(StandardCommands.Copy); } catch { } try { m_oOldCmdPaste = m_oMenuService.FindCommand(StandardCommands.Paste); } catch { } try { m_oOldCmdCut = m_oMenuService.FindCommand(StandardCommands.Cut); } catch { } try { m_oOldBringFront = m_oMenuService.FindCommand(StandardCommands.BringToFront); } catch { } try { m_oOldSendBack = m_oMenuService.FindCommand(StandardCommands.SendToBack); } catch { } try { m_oOldAlignGrid = m_oMenuService.FindCommand(StandardCommands.AlignToGrid); } catch { } try { m_oOldLockControls = m_oMenuService.FindCommand(StandardCommands.LockControls); } catch { } try { m_oOldDelete = m_oMenuService.FindCommand(StandardCommands.Delete); } catch { } try { m_oNewCmdCopy = new MenuCommand(new EventHandler(this.OnMenuCopy), StandardCommands.Copy); } catch { } try { m_oNewCmdPaste = new MenuCommand(new EventHandler(this.OnMenuPaste), StandardCommands.Paste); } catch { } if (TreeViewDesigner.MenuAdded == false) { try { m_oMenuService.RemoveCommand(m_oOldCmdCopy); } catch { } try { m_oMenuService.RemoveCommand(m_oOldCmdPaste); } catch { } try { m_oMenuService.AddCommand(m_oNewCmdCopy); } catch { } try { m_oMenuService.AddCommand(m_oNewCmdPaste); } catch { } TreeViewDesigner.MenuAdded = true; } m_oTreeView.Invalidate(); #region action menus #region node menu m_oActionMenuNode = new ActionMenuNative(); m_oActionMenuNode.Width = 170; m_oActionMenuNode.Title = "Node Action Menu"; ActionMenuGroup oMenuGroup = m_oActionMenuNode.AddMenuGroup("Editing"); oMenuGroup.Expanded = true; m_oActionMenuNode.AddMenuItem(oMenuGroup, "Add Node"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Delete Node"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Add Panel"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "-"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Clear Content"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Delete TreeView"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "-"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Copy"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Paste"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "-"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Properties"); oMenuGroup = m_oActionMenuNode.AddMenuGroup("Arranging"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Expand"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Collapse"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Move Top"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Move Bottom"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Move Up"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Move Down"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Move Left"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Move Right"); oMenuGroup = m_oActionMenuNode.AddMenuGroup("Color Schemes"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Default"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Forest"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Gold"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Ocean"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Rose"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Silver"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Sky"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Sunset"); m_oActionMenuNode.AddMenuItem(oMenuGroup, "Wood"); m_oActionMenuNode.ItemClick += new ActionMenuNative.ItemClickEventHandler(this.OnActionMenuNodeItemClicked); #endregion #region TreeView menu m_oActionMenuTreeView = new ActionMenuNative(); m_oActionMenuTreeView.Width = 170; m_oActionMenuTreeView.Title = "TreeView Action Menu"; oMenuGroup = m_oActionMenuTreeView.AddMenuGroup("Editing"); oMenuGroup.Expanded = true; m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Add Node"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Color Scheme Picker..."); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "-"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Clear Content"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Delete TreeView"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "-"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Copy"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Paste"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "-"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Properties"); oMenuGroup = m_oActionMenuTreeView.AddMenuGroup("Arranging"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Expand All"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Collapse All"); oMenuGroup = m_oActionMenuTreeView.AddMenuGroup("Layout"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Bring to Front"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Send to Back"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Align to Grid"); m_oActionMenuTreeView.AddMenuItem(oMenuGroup, "Lock Controls"); m_oActionMenuTreeView.ItemClick += new ActionMenuNative.ItemClickEventHandler(this.OnActionMenuTreeViewItemClicked); #endregion #endregion // enable the drag drop operations m_oTreeView.AllowDrop = true; this.EnableDragDrop(true); m_oTreeView.CollapseAll(); m_oSelector.SelectionService = m_oSelectionService; m_oSelector.TreeView = m_oTreeView; } }