Example #1
0
        public static void EditTable()
        {
            IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (srv == null)
            {
                MessageService.ShowError("No object explorer available!");
                return;
            }

            if (srv.SelNode == null || srv.SelNode.ConnParams == null)
            {
                MessageService.ShowError("Database data is not available!");
                return;
            }
            int type = srv.SelNode.Type;

            if (type != DBObjectType.UserTable)
            {
                MessageService.ShowError("Selected node is not a user defined table!");
                return;
            }

            frmTableEdit frm = new frmTableEdit();

            frm.Caption                   = String.Format("{0} ({1} on {2})", srv.SelNode.Name, srv.SelNode.ServerName, srv.SelNode.DatabaseName);
            frm.ConnectionParams          = srv.SelNode.ConnParams.CreateCopy();
            frm.ConnectionParams.Database = srv.SelNode.DatabaseName;

            frm.TableEdit.ModifyTable(frm.ConnectionParams, srv.SelNode.id);
            HostServicesSingleton.HostServices.ShowForm(frm, AddInDockState.Document);
        }
Example #2
0
        public static void ShowIndexes( )
        {
            IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (srv == null)
            {
                MessageService.ShowError("No object explorer available!");
                return;
            }

            if (srv.SelNode == null || srv.SelNode.ConnParams == null)
            {
                MessageService.ShowError("Database data is not available!");
                return;
            }
            int type = srv.SelNode.Type;

            if (type != DBObjectType.UserTable && type != DBObjectType.SystemTable && type != DBObjectType.View)
            {
                MessageService.ShowError("Selected node can not have indexes!");
                return;
            }

            frmIndexes frm = new frmIndexes();

            frm.Caption                   = "Indexes: " + srv.SelNode.Name + " {" + srv.SelNode.ConnParams.InfoDbServer + "}";
            frm.ConnectionParams          = srv.SelNode.ConnParams.CreateCopy();
            frm.ConnectionParams.Database = srv.SelNode.DatabaseName;
            frm._indexList.ObjectId       = srv.SelNode.id;
            frm._indexList.ObjectName     = srv.SelNode.Name;
            frm._indexList.ObjectOwner    = srv.SelNode.Owner;
            frm.LoadIndexes();

            HostServicesSingleton.HostServices.ShowForm(frm, AddInDockState.Document);
        }
        public void Open(string serverName, string fullName, Urn urn, string text)
        {
            string key = urn.ToString();
            IObjectExplorerService objExplorer = ServiceCache.ServiceProvider.GetService(typeof(IObjectExplorerService)) as IObjectExplorerService;
            var test = ServiceCache.ServiceProvider.GetService(typeof(IObjectExplorerService)) as IObjectExplorerService;

            var node = objExplorer.FindNode(key);

            if (node != null)
            {
                objExplorer.SynchronizeTree(node);
            }

            Document existingDocument;

            if (_openedDocuments.TryGetValue(key, out existingDocument))
            {
                existingDocument.Activate();
            }
            else if (text != null)
            {
                var script = ServiceCache.ScriptFactory.CreateNewBlankScript(ScriptType.Sql) as SqlScriptEditorControl;
                script.EditorText     = text;
                _openedDocuments[key] = _applicationObject.ActiveDocument;

                string fullPath = Properties.Settings.Default.ResolveProjectRoot();
                if (!fullPath.EndsWith("\\"))
                {
                    fullPath += '\\';
                }
                fullPath += serverName + '\\' + fullName.Replace('.', '\\').Replace(':', '_') + ".sql";
                _applicationObject.ActiveDocument.Save(fullPath);
            }
        }
Example #4
0
		public static void ShowBulkCopyDialog()
		{
			IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;
			if (srv == null)
			{
				MessageService.ShowError("No object explorer available!");
				return;
			}

			if (srv.SelNode == null || srv.SelNode.ConnParams == null)
			{
				MessageService.ShowError("Database data is not available!");
				return;
			}

			if (String.IsNullOrEmpty(srv.SelNode.ConnParams.Database))
			{
				MessageService.ShowError("Selected node is not a database or child of a database!");
				return;
			}

			ConnectionParams cp = srv.SelNode.ConnParams.CreateCopy();
			cp.Database = srv.SelNode.DatabaseName;
			ShowBulkCopyDialog(cp);
		}
Example #5
0
        private void ActionContextOnCurrentContextChanged(object sender, EventArgs e)
        {
            try
            {
                INodeInformation[] nodes;
                INodeInformation   node;
                int nodeCount;
                IObjectExplorerService objectExplorer = GetService(typeof(IObjectExplorerService)) as ObjectExplorerService;

                if (objectExplorer != null)
                {
                    objectExplorer.GetSelectedNodes(out nodeCount, out nodes);
                    node = nodeCount > 0 ? nodes[0] : null;

                    if (node != null)
                    {
                        MenuItemAbstract menuItem = Factories.MenuItemFactory.CreateMenuItem(node);
                        AddMenuItemToHierarchyObject(node, menuItem);
                    }
                }
            }
            #pragma warning disable 0169
#pragma warning disable CS0168 // Variable is declared but never used
            catch (Exception ObjectExplorerContextException)
#pragma warning restore CS0168 // Variable is declared but never used
            {
                //MessageBox.Show("ObjectExplorerContextException: " + ObjectExplorerContextException.Message);
            }
            #pragma warning restore 0169
        }
Example #6
0
        public static DialogResult ShowAttachDatabaseDialog(  )
        {
            IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (srv == null)
            {
                MessageService.ShowError("No object explorer available!");
                return(DialogResult.Abort);
            }

            if (srv.SelNode == null || srv.SelNode.ConnParams == null)
            {
                MessageService.ShowError("Database data is not available!");
                return(DialogResult.Abort);
            }

            if (String.IsNullOrEmpty(srv.SelNode.ConnParams.Database))
            {
                MessageService.ShowError("Selected node is not a database or child of a database!");
                return(DialogResult.Abort);
            }

            frmAttachDatabase frm = new frmAttachDatabase();

            frm.ConnectionParams = srv.SelNode.ConnParams.CreateCopy();
            frm.Text             = "Attach Database {" + frm.ConnectionParams.Server + "}";
            return(frm.ShowDialog());
        }
Example #7
0
        public static void ShowServerLocks()
        {
            IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (srv == null)
            {
                MessageService.ShowError("No object explorer available!");
                return;
            }

            if (srv.SelNode == null || srv.SelNode.ConnParams == null)
            {
                MessageService.ShowError("Server data is not available!");
                return;
            }

            frmServerLocks frm = new frmServerLocks();

            frm.Caption          = "Locks {" + srv.SelNode.ServerName + "}";
            frm.ConnectionParams = srv.SelNode.ConnParams;
            frm.LoadServerLocks();

            HostServicesSingleton.HostServices.ShowForm(frm, AddInDockState.Document);
            frm.timer1.Enabled = true;
        }
Example #8
0
        public static DialogResult ShowNewDatabaseDialog( )
        {
            IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (srv == null)
            {
                MessageService.ShowError("No object explorer available!");
                return(DialogResult.Abort);
            }

            if (srv.SelNode == null || srv.SelNode.ConnParams == null)
            {
                MessageService.ShowError("Database data is not available!");
                return(DialogResult.Abort);
            }


            frmNewDatabase frm = new frmNewDatabase();

            frm.Caption = "New Database {" + srv.SelNode.ConnParams.Server + "}";
            ConnectionParams cp = srv.SelNode.ConnParams.CreateCopy();

            cp.Database          = "master";
            frm.ConnectionParams = cp;
            cp = null;

            return(frm.ShowDialog());
        }
Example #9
0
        public static void ShowUdtList( )
        {
            IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (srv == null)
            {
                MessageService.ShowError("No object explorer available!");
                return;
            }

            if (srv.SelNode == null || srv.SelNode.ConnParams == null)
            {
                MessageService.ShowError("Database data is not available!");
                return;
            }

            if (String.IsNullOrEmpty(srv.SelNode.ConnParams.Database))
            {
                MessageService.ShowError("Selected node is not a database or child of a database!");
                return;
            }

            frmUdtList frm = new frmUdtList();

            frm.Caption                   = "Udt : " + srv.SelNode.ServerName + " { " + srv.SelNode.DatabaseName + "}";
            frm.ConnectionParams          = srv.SelNode.ConnParams.CreateCopy();
            frm.ConnectionParams.Database = srv.SelNode.DatabaseName;
            frm.LoadUdtList();
            HostServicesSingleton.HostServices.ShowForm(frm, AddInDockState.Document);
        }
Example #10
0
        public static void ShowAllForeignKeys( )
        {
            IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (srv == null)
            {
                MessageService.ShowError("No object explorer available!");
                return;
            }

            if (srv.SelNode == null || srv.SelNode.ConnParams == null)
            {
                MessageService.ShowError("Database data is not available!");
                return;
            }

            if (String.IsNullOrEmpty(srv.SelNode.ConnParams.Database))
            {
                MessageService.ShowError("Selected node is not a database or child of a database!");
                return;
            }


            frmAllForeignKeys frm = new frmAllForeignKeys();

            ConnectionParams cp = srv.SelNode.ConnParams.CreateCopy();

            cp.Database          = srv.SelNode.DatabaseName;
            frm.ConnectionParams = cp;
            frm.Caption          = String.Format("Foreign Keys ({0} on {1})", srv.SelNode.ServerName, srv.SelNode.DatabaseName);
            cp = null;

            frm.LoadKeys();
            HostServicesSingleton.HostServices.ShowForm(frm, AddInDockState.Document);
        }
Example #11
0
        public IObjectExplorerService GetObjectExplorer()
        {
            if (_objExplorer == null)
            {
                _objExplorer = (IObjectExplorerService)ServiceCache.ServiceProvider.GetService(typeof(IObjectExplorerService));
            }

            return(_objExplorer);
        }
Example #12
0
        public override void Run( )
        {
            base.Run();
            IObjectExplorerService srv = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (srv == null)
            {
                MessageService.ShowError("No object explorer available!");
                return;
            }

            if (srv.SelNode == null || srv.SelNode.ConnParams == null || String.IsNullOrEmpty(srv.SelNode.ConnParams.Database))
            {
                MessageService.ShowError("Database data is not available!");
                return;
            }

            if (srv.SelNode.Type != DBObjectType.UserTable)
            {
                MessageService.ShowError("Selected node is not a user defined table!");
                return;
            }


            ConnectionParams cp = srv.SelNode.ConnParams.CreateCopy();

            cp.Database = srv.SelNode.DatabaseName;

            TableWrapper tbl = new TableWrapper(cp);

            tbl.ID = srv.SelNode.id;
            tbl.LoadProperties();
            //tbl.Name = srv.SelNode.Name;

            string newName = srv.SelNode.Name;

            if (InputDialog.ShowDialog("Rename Table", "New Name", ref newName) != DialogResult.OK)
            {
                return;
            }

            if (tbl.Name.ToLowerInvariant() == newName.ToLowerInvariant())
            {
                return;
            }

            try
            {
                tbl.Rename(newName);
                srv.ChangeObjectName(srv.SelNode.Node, newName);
                srv.LoadNodeData(srv.SelNode.Node, true);
            }
            catch (Exception ex)
            {
                MessageService.ShowError(ex.Message);
            }
        }
Example #13
0
        void _hostServices_ActiveContentChanged(object sender, EventArgs e)
        {
            if (sender is IScriptEditor)
            {
                if (sender == _scriptEditor)
                {
                    return;
                }

                UnsubscribeFromTextEditorEvents();
                UnSubscribeFromScriptEditorEvents();

                _scriptEditor = sender as IScriptEditor;
                _textEditor   = _scriptEditor;

                SubscribeToScriptEditorEvents();
                SubscribeToTextEditorEvents();
            }
            else if (sender is ITextEditor)
            {
                if (sender == _textEditor)
                {
                    return;
                }

                UnsubscribeFromTextEditorEvents();
                UnSubscribeFromScriptEditorEvents();

                _textEditor   = sender as ITextEditor;
                _scriptEditor = null;

                SubscribeToTextEditorEvents();
            }
            else if (sender is IObjectExplorerService)
            {
                if (sender == _objectExplorer)
                {
                    return;
                }

                UnSubscribeFromObjectExplorerEvents();
                _objectExplorer = sender as IObjectExplorerService;
                SubscribeToObjectExplorerEvents();
            }
            else if (sender is IProjectExplorerServices)
            {
                if (sender == _projectExplorer)
                {
                    return;
                }

                UnSubscribeToProjectExplorerEvents();
                _projectExplorer = sender as IProjectExplorerServices;
                SubscribeToProjectExplorerEvents();
            }
        }
Example #14
0
        void _objectExplorer_AfterObjectExplorerClosed(object sender, EventArgs e)
        {
            if (_objectExplorer != sender)
            {
                return;
            }

            UnSubscribeFromObjectExplorerEvents();
            _objectExplorer = null;
            AddMessage("ObjectExplorer closed.");
        }
Example #15
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FetchXml2SqlCommand"/> class.
        /// Adds our command handlers for menu (commands must exist in the command table file)
        /// </summary>
        /// <param name="package">Owner package, not null.</param>
        /// <param name="commandService">Command service to add command to, not null.</param>
        private FetchXml2SqlCommand(Sql4CdsPackage package, OleMenuCommandService commandService, IObjectExplorerService objectExplorer, DTE2 dte) : base(package, dte)
        {
            commandService  = commandService ?? throw new ArgumentNullException(nameof(commandService));
            _objectExplorer = objectExplorer;

            var menuCommandID = new CommandID(CommandSet, CommandId);
            var menuItem      = new OleMenuCommand(this.Execute, menuCommandID);

            menuItem.BeforeQueryStatus += QueryStatus;
            commandService.AddCommand(menuItem);
        }
Example #16
0
 private void ActionContextOnCurrentContextChanged(object sender, EventArgs e)
 {
     try
     {
         INodeInformation[] nodes;
         int nodeCount;
         IObjectExplorerService objectExplorer = (ObjectExplorerService)this.ServiceProvider.GetService(typeof(IObjectExplorerService));
         objectExplorer.GetSelectedNodes(out nodeCount, out nodes);
         var node = nodeCount > 0 ? nodes[0] : null;
         if (node != null)
         {
             if (node.UrnPath == "Server")
             {
                 if (!IsServerMenuAdded)
                 {
                     var          tableMenu    = (HierarchyObject)node.GetService(typeof(IMenuHandler));
                     PropertyInfo treeViewProp = objectExplorer.GetType().GetProperty("Tree", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase);
                     if (treeViewProp != null)
                     {
                         var treeView = (TreeView)treeViewProp.GetValue(objectExplorer, null);
                         var item     = new ServerMenuItem(treeView);
                         tableMenu.AddChild(string.Empty, item);
                         treeView.AfterExpand += FilterDataBase;
                         treeView.AfterSelect += (o, args) =>
                         {
                             selectedNode = args.Node;
                         };
                     }
                     IsServerMenuAdded = true;
                 }
             }
         }
         if (!IsSearchBarAdded)
         {
             PropertyInfo treeViewProp = objectExplorer.GetType().GetProperty("Tree", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase);
             var          treeView     = (TreeView)treeViewProp.GetValue(objectExplorer, null);
             var          searchNode   = new SearchNode(treeView, "search bar");
             treeView.Nodes.Insert(0, searchNode);
             treeView.Controls.Add(searchNode.TextBox);
             searchNode.TextBox.AutoSize = false;
             searchNode.TextBox.Size     = new Size(treeView.Bounds.Width, searchNode.Bounds.Height);
             searchNode.TextBox.KeyDown += OnKeyDown;
             IsSearchBarAdded            = true;
         }
         if (IsSearchBarAdded && IsServerMenuAdded)
         {
             contextService.ActionContext.CurrentContextChanged -= ActionContextOnCurrentContextChanged;
         }
     }
     catch (Exception objectExplorerContextException)
     {
         MessageBox.Show(objectExplorerContextException.Message);
     }
 }
Example #17
0
        /// <summary>
        /// Gets the object explorer selected nodes.
        /// </summary>
        /// <returns></returns>
        private INodeInformation[] GetObjectExplorerSelectedNodes()
        {
            IObjectExplorerService objExplorer = ServiceCache.GetObjectExplorer();
            int arraySize;

            INodeInformation[] nodes;

            objExplorer.GetSelectedNodes(out arraySize, out nodes);

            return(nodes);
        }
Example #18
0
 public IObjectExplorerService GetObjectExplorer()
 {
     if (_objExplorer == null)
     {
         _objExplorer = (IObjectExplorerService)Package.GetService(typeof(IObjectExplorerService));
         //_objExplorer = (IObjectExplorerService) ServiceCache.ServiceProvider.GetService(typeof(IObjectExplorerService));
     }
     //Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService
     //Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer
     return(_objExplorer);
 }
Example #19
0
        public static INodeInformation FindSelectedDatabaseNode(IObjectExplorerService explorerService)
        {
            var selectedNode = FindSelectedNode(explorerService);

            if (selectedNode == null)
            {
                return(null);
            }

            return(FindParentDatabaseNode(selectedNode));
        }
        public ServerConnectionService(IScriptFactory scriptFactory, IObjectExplorerService objectExplorerService)
        {
            if (scriptFactory == null)
            {
                throw new ArgumentNullException("scriptFactory");
            }
            if (objectExplorerService == null)
            {
                throw new ArgumentNullException("objectExplorerService");
            }

            _scriptFactory         = scriptFactory;
            _objectExplorerService = objectExplorerService;
        }
Example #21
0
        public static INodeInformation FindSelectedNode(IObjectExplorerService explorerService)
        {
            int arraySize;

            INodeInformation[] array;
            explorerService.GetSelectedNodes(out arraySize, out array);

            if (arraySize == 0)
            {
                return(null);
            }

            return(array[0]);
        }
Example #22
0
        public static void SelectNode(IObjectExplorerService explorerService, HierarchyTreeNode node)
        {
            IServiceProvider provider = node as IServiceProvider;

            if (provider != null)
            {
                INodeInformation containedItem = provider.GetService(typeof(INodeInformation)) as INodeInformation;

                if (containedItem != null)
                {
                    explorerService.SynchronizeTree(containedItem);
                }
            }
        }
Example #23
0
        private void SelectNode(HierarchyTreeNode node)
        {
            IServiceProvider provider = node as IServiceProvider;

            if (provider != null)
            {
                INodeInformation containedItem = provider.GetService(typeof(INodeInformation)) as INodeInformation;

                if (containedItem != null)
                {
                    IObjectExplorerService objExplorer = GetObjectExplorer();
                    objExplorer.SynchronizeTree(containedItem);
                }
            }
        }
Example #24
0
        private void InitializeObjectExplorer( )
        {
            if (_objectExplorer != null)
            {
                UnSubscribeFromObjectExplorerEvents();
            }

            _objectExplorer = GetCurrentObjectExplorer();
            if (_objectExplorer == null)
            {
                AddError("ObjectExplorer is null!");
            }
            else
            {
                SubscribeToObjectExplorerEvents();
            }
        }
Example #25
0
        private void AddControlEdit()
        {
            IObjectExplorerService objectExplorer = (ObjectExplorerService)this.ServiceProvider.GetService(typeof(IObjectExplorerService));
            var      treeViewProp = objectExplorer.GetType().GetProperty("Tree", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase);
            var      treeView     = (TreeView)treeViewProp.GetValue(objectExplorer, null);
            TreeNode node         = new TreeNode("xxx");


            treeView.Nodes.Add(node);
            node.BeginEdit();
            //try
            //{
            //    var Dte = (DTE2)this.ServiceProvider.GetService(typeof(DTE));
            //    var commandBars = (CommandBars)Dte.CommandBars;
            //    CommandBar standard = commandBars["MenuBar"];
            //    var control = standard.Controls.Add(MsoControlType.msoControlEdit, Type.Missing, Type.Missing, 1, true);
            //    control.Caption = "Test";
            //}
            //catch (Exception e)
            //{
            //    MessageBox.Show(e.Message);
            //}
        }
Example #26
0
        public static bool CheckCondition( )
        {
            if (HostServicesSingleton.HostServices == null || HostServicesSingleton.HostServices.ObjectExplorerService == null)
            {
                return(false);
            }

            IObjectExplorerService service = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (service == null)
            {
                return(false);
            }

            ObjectExplorerNode node = service.SelNode;

            if (node == null || node.ConnParams == null)
            {
                return(false);
            }

            return(String.IsNullOrEmpty(node.DatabaseName) ? false : true);
        }
Example #27
0
        public static bool CheckCondition()
        {
            if (HostServicesSingleton.HostServices == null || HostServicesSingleton.HostServices.ObjectExplorerService == null)
            {
                return(false);
            }

            IObjectExplorerService service = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (service == null)
            {
                return(false);
            }

            ObjectExplorerNode node = service.SelNode;

            if (node == null)
            {
                return(false);
            }

            return((node.Type == DBObjectType.UserTable || node.Type == DBObjectType.SystemTable || node.Type == DBObjectType.View) ? true : false);
        }
Example #28
0
        public static HierarchyTreeNode GetObjectHierarchyNode(IObjectExplorerService explorerService, string serverName, string dbName, IReadOnlyCollection <string> dbRelativePath)
        {
            var server   = GetServerHierarchyNode(explorerService, serverName);
            var rootNode = server.Hierarchy.Root;

            var pathSegments = new List <string> {
                "Databases", dbName
            }.Concat(dbRelativePath);

            foreach (var pathSegment in pathSegments)
            {
                EnumerateChildrenSynchronously(rootNode);
                var parentPath  = rootNode.GetInvariantPath();
                var currentPath = parentPath + "/" + pathSegment;

                rootNode = rootNode.Nodes.OfType <HierarchyTreeNode>().SingleOrDefault(p => p.GetInvariantPath() == currentPath);
                if (rootNode == null)
                {
                    throw new Exception($"Could not unfold path: {currentPath}");
                }
            }

            return(rootNode);
        }
Example #29
0
 public SQLMenuItem(IObjectExplorerService objExp, SSMSHelperPackage Package)
 {
     objectExplorer = objExp;
     package        = Package;
 }
Example #30
0
        private void ChangeTableId(long oldId, long newId)
        {
            IObjectExplorerService srvc = HostServicesSingleton.HostServices.ObjectExplorerService;

            srvc.ChangeObjectID(_cp.Server.ToLowerInvariant(), _cp.Database.ToLowerInvariant(), oldId, newId);
        }