public static DatabaseTreeViewItem CreateTreeViewItemWithImage(string name, string imageName, bool showExpander, string toolTip = null, bool isRefreshable = false)
        {
            var stackpanel = new StackPanel {
                Orientation = Orientation.Horizontal, Margin = new System.Windows.Thickness(2)
            };

            stackpanel.Children.Add(ImageHelper.GetImageFromResource(imageName));
            stackpanel.Children.Add(new TextBlock {
                Text = " " + name
            });

            var databaseTreeViewItem = new DatabaseTreeViewItem
            {
                Header        = stackpanel,
                MetaData      = name,
                IsRefreshable = isRefreshable
            };

            databaseTreeViewItem.MouseRightButtonDown += DatabaseTreeViewItemMouseRightButtonDown;
            databaseTreeViewItem.ContextMenu           = new ContextMenu {
                Visibility = Visibility.Hidden
            };

            if (!string.IsNullOrWhiteSpace(toolTip))
            {
                databaseTreeViewItem.ToolTip = toolTip;
            }

            if (showExpander)
            {
                databaseTreeViewItem.AddLoadingChildNode(databaseTreeViewItem);
            }

            return(databaseTreeViewItem);
        }
Beispiel #2
0
        public static DatabaseTreeViewItem CreateTreeViewItemWithImageAndTooltip(string name, string imageName, bool showExpander, string toolTip)
        {
            var stackpanel = new StackPanel {
                Orientation = Orientation.Horizontal, Margin = new System.Windows.Thickness(2)
            };

            stackpanel.Children.Add(ImageHelper.GetImageFromResource(imageName));
            //
            stackpanel.Children.Add(new TextBlock {
                Text = " " + name, Foreground = Helpers.VSThemes.GetWindowText()
            });

            var databaseTreeViewItem = new DatabaseTreeViewItem {
                Header = stackpanel, MetaData = name
            };

            databaseTreeViewItem.MouseRightButtonDown += DatabaseTreeViewItemMouseRightButtonDown;
            databaseTreeViewItem.ContextMenu           = new ContextMenu {
                Visibility = Visibility.Hidden
            };
            if (!string.IsNullOrWhiteSpace(toolTip))
            {
                databaseTreeViewItem.ToolTip = toolTip;
            }
            if (showExpander)
            {
                databaseTreeViewItem.Items.Add("Loading...");
            }
            return(databaseTreeViewItem);
        }
        public static DatabaseTreeViewItem CreateTreeViewItemWithImageAndTooltip(string name, string imageName, bool showExpander, string toolTip)
        {
            var stackpanel = new StackPanel { Orientation = Orientation.Horizontal, Margin = new System.Windows.Thickness(2) };
            stackpanel.Children.Add(ImageHelper.GetImageFromResource(imageName));
            // 
            stackpanel.Children.Add(new TextBlock { Text = " " + name, Foreground = Helpers.VSThemes.GetWindowText()});

            var databaseTreeViewItem = new DatabaseTreeViewItem { Header = stackpanel, MetaData = name };
            databaseTreeViewItem.MouseRightButtonDown += DatabaseTreeViewItemMouseRightButtonDown;
            databaseTreeViewItem.ContextMenu = new ContextMenu { Visibility = Visibility.Hidden };
            if (!string.IsNullOrWhiteSpace(toolTip))
            {
                databaseTreeViewItem.ToolTip = toolTip;
            }
            if (showExpander) databaseTreeViewItem.Items.Add("Loading...");
            return databaseTreeViewItem;
        }
        public static DatabaseTreeViewItem CreateTreeViewItemWithImage(string name, string imageName, bool showExpander, string toolTip = null, bool isRefreshable = false)
        {
            var stackpanel = new StackPanel { Orientation = Orientation.Horizontal, Margin = new System.Windows.Thickness(2) };
            stackpanel.Children.Add(ImageHelper.GetImageFromResource(imageName));
            stackpanel.Children.Add(new TextBlock { Text = " " + name });

            var databaseTreeViewItem = new DatabaseTreeViewItem
                {
                    Header = stackpanel, 
                    MetaData = name, 
                    IsRefreshable = isRefreshable
                };

            databaseTreeViewItem.MouseRightButtonDown += DatabaseTreeViewItemMouseRightButtonDown;
            databaseTreeViewItem.ContextMenu = new ContextMenu { Visibility = Visibility.Hidden };

            if (!string.IsNullOrWhiteSpace(toolTip))
                databaseTreeViewItem.ToolTip = toolTip;

            if (showExpander)
                databaseTreeViewItem.AddLoadingChildNode(databaseTreeViewItem);

            return databaseTreeViewItem;
        }
        private void FillTableItems(KeyValuePair<string, string> database, DatabaseTreeViewItem parentItem, IList<string> nameList)
        {
            parentItem.Items.Clear();

            if (DescriptionCache != null)
            {
                var dbdesc = DescriptionCache.Where(dc => dc.Parent == null && dc.Object == null).Select(dc => dc.Description).SingleOrDefault();
                if (!string.IsNullOrWhiteSpace(dbdesc))
                {
                    if (parentItem.Parent is DatabaseTreeViewItem)
                    {
                        var dbItem = (DatabaseTreeViewItem)parentItem.Parent;
                        dbItem.ToolTip = dbItem.ToolTip.ToString() + Environment.NewLine + dbdesc;
                    }
                }
            }

            using (var _repository = RepoHelper.CreateRepository(database.Value))
            {
                var columns = _repository.GetAllColumns();
                foreach (var table in nameList)
                {
                    if (!Properties.Settings.Default.DisplayDescriptionTable && table.Equals("__ExtendedProperties"))
                    {
                        continue;
                    }
                    var item = TreeViewHelper.CreateTreeViewItemWithImage(table, "../Resources/table.png", true, null, true);
                    item.ContextMenu = new TableContextMenu(new MenuCommandParameters { Connectionstring = database.Value, Name = table, MenuItemType = MenuCommandParameters.MenuType.Table, Caption = database.Key }, this);
                    item.ToolTip = table;
                    if (DescriptionCache != null)
                    {
                        var desc = DescriptionCache.Where(dc => dc.Parent == null && dc.Object == table).Select(dc => dc.Description).SingleOrDefault();
                        if (!string.IsNullOrWhiteSpace(desc))
                        {
                            item.ToolTip = desc;
                        }
                    }
                    var tableColumns = (from col in columns
                                        where col.TableName == table
                                        select col).ToList<Column>();
                    parentItem.Items.Add(item);
                    item.Expanded += (s, e) => GetTableColumns(s, e, tableColumns, database);
                }
            }
        }
 private void FillSubItems(KeyValuePair<string, string> database, DatabaseTreeViewItem parentItem, IList<string> nameList)
 {
     parentItem.Items.Clear();
     foreach (var sub in nameList)
     {
         var item = TreeViewHelper.CreateTreeViewItemWithImage(sub, "../Resources/subs.png", false);
         item.ContextMenu = new SubscriptionsContextMenu(new MenuCommandParameters { Connectionstring = database.Value, Name = sub, MenuItemType = MenuCommandParameters.MenuType.Manage, Caption = database.Key }, this);
         parentItem.Items.Add(item);
     }
 }
        private void FillTableItems(KeyValuePair<string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, Exception ex, RoutedEventArgs args)
        {
            if (ex != null)
            {
                string error = Helpers.DataConnectionHelper.CreateEngineHelper(database.Value.DatabaseType).FormatError(ex);
                if (error.Contains("Minor Err.: 25028"))
                {
                    PasswordDialog pwd = new PasswordDialog();
                    pwd.ShowModal();
                    if (pwd.DialogResult.HasValue && pwd.DialogResult.Value == true && !string.IsNullOrWhiteSpace(pwd.Password))
                    {
                        database.Value.ConnectionString = database.Value.ConnectionString + ";Password="******"locale identifier")
                                    dbInfo.LCID = int.Parse(values.Value);
                                if (values.Key.ToLowerInvariant() == "encryption mode")
                                    dbInfo.EncryptionMode = values.Value;
                                if (string.IsNullOrWhiteSpace(dbInfo.EncryptionMode))
                                    dbInfo.EncryptionMode = "None";
                                if (values.Key.ToLowerInvariant() == "case sensitive")
                                    dbInfo.CaseSensitive = bool.Parse(values.Value);
                                if (values.Key == "DatabaseSize")
                                    dbInfo.Size = values.Value;
                                if (values.Key == "SpaceAvailable")
                                    dbInfo.SpaceAvailable = values.Value;
                                if (values.Key == "Created")
                                    dbInfo.Created = values.Value;
                                if (values.Key == "ServerVersion")
                                    dbInfo.ServerVersion = values.Value;
                            }
                            TrackSelection(dbInfo);
                        }
                    }
                    var tables = _repository.GetAllTableNames();
                    var columns = _repository.GetAllColumns();
                    var primaryKeys = _repository.GetAllPrimaryKeys();
                    var foreignKeys = _repository.GetAllForeignKeys();
                    var indexes = _repository.GetAllIndexes();

                    foreach (var table in tables)
                    {
                        if (!Properties.Settings.Default.DisplayDescriptionTable && table.Equals("__ExtendedProperties"))
                        {
                            continue;
                        }
                        var item = TreeViewHelper.CreateTreeViewItemWithImage(table, "../Resources/table_16xLG.png", true);
                        item.ContextMenu = new TableContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = table, MenuItemType = MenuType.Table }, _parentWindow);
                        item.ToolTip = table;
                        item.Tag = new TableInfo { Name = table, RowCount = _repository.GetRowCount(table) };
                        if (DescriptionCache != null)
                        {
                            var desc = DescriptionCache.Where(dc => dc.Parent == null && dc.Object == table).Select(dc => dc.Description).SingleOrDefault();
                            if (!string.IsNullOrWhiteSpace(desc))
                            {
                                item.ToolTip = desc;
                            }
                        }

                        var tableColumns = (from col in columns
                                            where col.TableName == table
                                            select col).ToList<Column>();
                        var tablePrimaryKeys = primaryKeys.Where(pk => pk.TableName == table).ToList();
                        var tableForeignKeys = foreignKeys.Where(fk => fk.ConstraintTableName == table).ToList();
                        var tableIndexes = indexes.Where(i => i.TableName == table).ToList();
                        parentItem.Items.Add(item);
                        item.Expanded += (s, e) => GetTableColumns(s, e, tableColumns, tableForeignKeys, tablePrimaryKeys, tableIndexes, database);
                    }
                }
            }
            catch (Exception ex2)
            {
                Helpers.DataConnectionHelper.SendError(ex2, database.Value.DatabaseType, false);
            }
        }
 private static void FillTriggerItems(KeyValuePair<string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, IList<ErikEJ.SqlCeScripting.Trigger> triggerList)
 {
     parentItem.Items.Clear();
     foreach (var trigger in triggerList)
     {
         var item = TreeViewHelper.CreateTreeViewItemWithImage(trigger.TriggerName, "../Resources/RunOutline.png", false);
         item.ContextMenu = new TriggerContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = trigger.TriggerName, MenuItemType = MenuType.Manage, Description = trigger.Definition }, _parentWindow);
         parentItem.Items.Add(item);
     }
 }
 private static void FillViewItems(KeyValuePair<string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, IList<View> viewList)
 {
     parentItem.Items.Clear();
     foreach (var view in viewList)
     {
         var item = TreeViewHelper.CreateTreeViewItemWithImage(view.ViewName, "../Resources/table_16xLG.png", false);
         item.ContextMenu = new ViewContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = view.ViewName, MenuItemType = MenuType.Manage, Description = view.Definition }, _parentWindow);
         parentItem.Items.Add(item);
     }
 }
 private static void FillScopeItems(KeyValuePair<string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, IList<string> scopeList)
 {
     parentItem.Items.Clear();
     foreach (var scope in scopeList)
     {
         var item = TreeViewHelper.CreateTreeViewItemWithImage(scope, "../Resources/Synchronize_16xLG.png", true);
         item.ContextMenu = new ScopesContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = scope, MenuItemType = MenuType.Manage }, _parentWindow);
         parentItem.Items.Add(item);
         var tables = SyncFxHelper.GetSqlCeScopeDefinition(database.Value.ConnectionString, scope).Select(s => s.TableName).Distinct();
         item.Expanded += (s, e) => GetScopeTables(s, e, tables, database);
     }
 }
 private static void FillSubItems(KeyValuePair<string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, IList<string> nameList)
 {
     parentItem.Items.Clear();
     foreach (var sub in nameList)
     {
         var item = TreeViewHelper.CreateTreeViewItemWithImage(sub, "../Resources/arrow_Sync_16xLG.png", false);
         item.ContextMenu = new SubscriptionsContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = sub, MenuItemType = MenuType.Manage }, _parentWindow);
         parentItem.Items.Add(item);
     }
 }