public override NSMenu MenuForEvent(NSEvent theEvent)
        {
            NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource;
            NSMenu menu = new NSMenu();

            if (SelectedRow >= (nint)0)
            {
                if (ds is AttributesEntryListView)
                {
                    VMDirSchemaAttributeEntryNode node = (ds as AttributesEntryListView).Entries[(int)SelectedRow];
                    NSMenuItem properties = new NSMenuItem(VMDirSchemaConstants.VMDIRSCHEMA_PROPERTIES, node.ShowProperties);
                    menu.AddItem(properties);
                }
                else if (ds is ObjectClassesListView)
                {
                    VMDirSchemaClassEntryNode node = (ds as ObjectClassesListView).Entries[(int)SelectedRow];
                    NSMenuItem properties          = new NSMenuItem(VMDirSchemaConstants.VMDIRSCHEMA_PROPERTIES, node.ShowProperties);
                    menu.AddItem(properties);
                }
                else
                {
                    //do nothing
                }
            }
            NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView);
            return(base.MenuForEvent(theEvent));
        }
        public NSObject ObjectValueForTableColumn(NSTableView table, NSTableColumn col, int row)
        {
            NSString value = NSString.Empty;

            try
            {
                if (Entries != null)
                {
                    VMDirSchemaAttributeEntryNode record = Entries[row];
                    switch (col.Identifier)
                    {
                    case VMDirSchemaConstants.VMDIRSCHEMA_NAME:
                        value = (NSString)record.attrType.Name;
                        break;

                    case VMDirSchemaConstants.VMDIRSCHEMA_ATTR_SYNTAX:
                        value = (NSString)record.attrType.Type;
                        break;

                    case VMDirSchemaConstants.VMDIRSCHEMA_DESC:
                        value = (NSString)record.attrType.Description;
                        break;
                    }
                }
            }
            catch (Exception)
            {
                value = NSString.Empty;
            }
            return(value);
        }