internal ContextMenu GetMenu(TreeItemArgs args) { ContextMenu rtMenu = null; Debug.Assert(currentMenuCreator != null); currentMenuCreator.X_CurItemArgs = args; if (args == null) { args = new TreeItemArgs() { ItemType = TreeItemType.NotDefined, }; } switch (args.ItemType) { case TreeItemType.Database: rtMenu = currentMenuCreator.CreateMenuForDataBase(); break; case TreeItemType.Table: rtMenu = currentMenuCreator.CreateMenuForTable(); break; case TreeItemType.Column: rtMenu = currentMenuCreator.CreateMenuForColumn(); break; case TreeItemType.Index: rtMenu = currentMenuCreator.CreateMenuForIndex(); break; case TreeItemType.ColumnParentNode: rtMenu = currentMenuCreator.CreateMenuForColumnParentNode(); break; case TreeItemType.IndexParentNode: rtMenu = currentMenuCreator.CreateMenuForIndexParentNode(); break; case TreeItemType.StoredProcedure: rtMenu = currentMenuCreator.CreateMenuForStoredProducers(); break; case TreeItemType.StoredProcedureParentNode: rtMenu = currentMenuCreator.CreateMenuForSPParentNode(); break; case TreeItemType.SystemViewNode: rtMenu = currentMenuCreator.CreateMenuForSViewNode(); break; case TreeItemType.SystemView_SchemaNode: rtMenu = currentMenuCreator.CreateMenuForSV_SchemaNode(); break; case TreeItemType.SystemView_Schema_ColumnNode: rtMenu = currentMenuCreator.CreateMenuForSV_Schema_ColumnNode(); break; case TreeItemType.NotDefined: rtMenu = currentMenuCreator.CreateMenuForNotDefined(); break; case TreeItemType.ViewParent: rtMenu = currentMenuCreator.CreateMenuForNotDefined(); break; case TreeItemType.View: rtMenu = currentMenuCreator.CreateMenuForView(); break; case TreeItemType.TriggersParent: rtMenu = currentMenuCreator.CreateMenuForNotDefined(); break; case TreeItemType.Triggers: rtMenu = currentMenuCreator.CreateMenuForNotDefined(); break; default: rtMenu = currentMenuCreator.CreateMenuForNotDefined(); break; } if (rtMenu != null) { rtMenu.Tag = currentMenuCreator; } return(rtMenu); }