예제 #1
0
        private string SelectedNodeConnectionString(TreeView view)
        {
            var    nodes            = view.SelectedNodes.ToList <TreeNodeAdv>();
            string connectionString = String.Empty;

            if (nodes.Count != 1)
            {
                return(connectionString);
            }

            TreeNodeAdv node = nodes[0];

            if (view.Equals(_TablesWindow))
            {
                connectionString = (_PluginContext.Database as dynamic)
                                   .Database.TableDefs[node.ToString()].Connect;
            }

            if (view.Equals(_QueriesWindow))
            {
                connectionString = (_PluginContext.Database as dynamic)
                                   .Database.QueryDefs[node.ToString()].Connect;
            }

            return(connectionString);
        }
예제 #2
0
        private void HandleMenuItem(object sender, EventArgs arg)
        {
            ToolStripMenuItem item    = (ToolStripMenuItem)sender;
            var      contextMenuStrip = (ContextMenuStrip)item.GetCurrentParent();
            TreeView srcView          = GetFormFromMenu(contextMenuStrip);
            string   connectionString = SelectedNodeConnectionString(srcView);

            Clipboard.SetText(connectionString);
        }
예제 #3
0
        public void Initialize(IPluginContext2 context)
        {
            _PluginContext = context;

            _QueriesWindow = _PluginContext.SystemWindows
                             .Where <ISystemWindow>(w => w.Text == "Queries")
                             .Select <ISystemWindow, TreeView>(item => (TreeView)item)
                             .FirstOrDefault();

            _TablesWindow = _PluginContext.SystemWindows
                            .Where <ISystemWindow>(w => w.Text == "Tables")
                            .Select <ISystemWindow, TreeView>(item => (TreeView)item)
                            .FirstOrDefault();

            var treeViewType = typeof(TreeView);
            var propertyInfo = treeViewType.GetField("ItemsContextMenu", BindingFlags.Instance | BindingFlags.NonPublic);

            _QueriesContextMenu = (ContextMenuStrip)propertyInfo.GetValue(_QueriesWindow);
            _TablesContextMenu  = (ContextMenuStrip)propertyInfo.GetValue(_TablesWindow);

            var queriesMenuItem = AddContextMenuItem(_QueriesContextMenu);
            var tablesMenuItem  = AddContextMenuItem(_TablesContextMenu);

            CancelEventHandler contextMenuOpening = (s, e) =>
            {
                ContextMenuStrip menuStrip = (ContextMenuStrip)s;
                TreeView         srcView   = GetFormFromMenu(menuStrip);

                string connectionString = SelectedNodeConnectionString(srcView);
                queriesMenuItem.Enabled = !String.IsNullOrWhiteSpace(connectionString);
                tablesMenuItem.Enabled  = !String.IsNullOrWhiteSpace(connectionString);
            };

            _QueriesContextMenu.Opening += contextMenuOpening;
            _TablesContextMenu.Opening  += contextMenuOpening;
        }