private void RenameItemThreaded(object state)
        {
            object[] objs = state as object[];

            ViewNode            node     = objs[0] as ViewNode;
            string              newName  = objs[1] as string;
            IEditSchemaProvider provider = (IEditSchemaProvider)node.View.SchemaProvider;

            if (provider.IsValidName(newName))
            {
                provider.RenameView(node.View, newName);
                node.Refresh();
            }
            else
            {
                DispatchService.GuiDispatch(delegate() {
                    MessageService.ShowError(String.Format(
                                                 "Unable to rename view '{0}' to '{1}'!",
                                                 node.View.Name, newName
                                                 ));
                });
            }
            node.Refresh();
        }
        public override string GetNodeName(ITreeNavigator thisNode, object dataObject)
        {
            ViewNode node = dataObject as ViewNode;

            return(node.View.Name);
        }
        public override bool HasChildNodes(ITreeBuilder builder, object dataObject)
        {
            ViewNode node = dataObject as ViewNode;

            return(node.ConnectionContext.SchemaProvider.IsSchemaActionSupported(SchemaType.ViewColumn, SchemaActions.Schema));
        }