//========================================================================================= CompletionVariantList Get_Variants_For_Items_1(List <SourceInfo> sources) { CompletionVariantList items = null; //Колонки из указанных источников foreach (var oSource in sources) { string sSchema = !string.IsNullOrEmpty(oSource.Schema) ? oSource.Schema : this.DefaultSchema; var names = this.InfoProvider.GetColumnsFor(this.DropBrackets(sSchema), this.DropBrackets(oSource.Name)); items = CompletionVariantList.Combine(items, names, DataBaseLevel.Columns); } //Указанные источники (таблицы) foreach (var oSource in sources) { string sName = !string.IsNullOrEmpty(oSource.Alias) ? oSource.Alias : oSource.Name; items = CompletionVariantList.Combine(items, sName, DataBaseLevel.Table); } //Таблицы из схемы по умолчанию { var names = this.InfoProvider.GetObjectsInSchema(this.DropBrackets(this.DefaultSchema)); items = CompletionVariantList.Combine(items, names, DataBaseLevel.Table); } //Схемы { var names = this.InfoProvider.GetSchemas(); items = CompletionVariantList.Combine(items, names, DataBaseLevel.Schema); } return(items); }
//========================================================================================= public void AddRange(CompletionVariantList variants) { foreach (var oItem in variants) { this.Add(oItem.Text, (DataBaseLevel)oItem.ImageIndex); } }
//========================================================================================= CompletionVariantList Get_Variants_For_Items_2(string first, List <SourceInfo> sources) { SourceInfo oCurrentSource = null; foreach (var oSource in sources) { string sKey = !string.IsNullOrEmpty(oSource.Alias) ? oSource.Alias : oSource.Name; if (string.Compare(sKey, first, true) == 0) { oCurrentSource = oSource; break; } } if (oCurrentSource != null) { string sSchema = !string.IsNullOrEmpty(oCurrentSource.Schema) ? oCurrentSource.Schema : this.DefaultSchema; var names = this.InfoProvider.GetColumnsFor(this.DropBrackets(sSchema), this.DropBrackets(oCurrentSource.Name)); return(CompletionVariantList.Combine(null, names, DataBaseLevel.Columns)); } CompletionVariantList items = null; { var names = this.InfoProvider.GetColumnsFor(this.DefaultSchema, this.DropBrackets(first)); items = CompletionVariantList.Combine(items, names, DataBaseLevel.Columns); } { var names = this.InfoProvider.GetObjectsInSchema(this.DropBrackets(first)); items = CompletionVariantList.Combine(items, names, DataBaseLevel.Table); } return(items); }
//========================================================================================= CompletionVariantList Get_Variants_For_Items_3(string first, string second, List <SourceInfo> sources) { SourceInfo oCurrentSource = null; foreach (var oSource in sources) { if (string.IsNullOrEmpty(oSource.Alias) && string.Compare(oSource.Schema, first, true) == 0 && string.Compare(oSource.Name, second, true) == 0 ) { oCurrentSource = oSource; break; } } if (oCurrentSource != null) { return(CompletionVariantList.Combine(null, this.InfoProvider.GetColumnsFor(this.DropBrackets(oCurrentSource.Schema), this.DropBrackets(oCurrentSource.Name)), DataBaseLevel.Columns)); } else { return(CompletionVariantList.Combine(null, this.InfoProvider.GetColumnsFor(this.DropBrackets(first), this.DropBrackets(second)), DataBaseLevel.Columns)); } }
//========================================================================================= public override CompletionVariantList GetVariants() { CompletionVariantList items = null; var names = this.InfoProvider.GetColumnsFor(this.Schema, this.Table); items = CompletionVariantList.Combine(items, names, DataBaseLevel.Columns); return(items); }
//========================================================================================= public static CompletionVariantList Combine(CompletionVariantList list, string name, DataBaseLevel type) { if (string.IsNullOrEmpty(name)) { return(list); } if (list == null) { list = new CompletionVariantList(); } list.Add(name, type); return(list); }
//========================================================================================= public static CompletionVariantList Combine(CompletionVariantList list, List <string> names, DataBaseLevel type) { if (names == null || names.Count == 0) { return(list); } if (list == null) { list = new CompletionVariantList(); } list.AddRange(names, type); return(list); }
//========================================================================================= CompletionVariantList Get_Variants_For_Sources_1() { CompletionVariantList items = null; { var names = this.InfoProvider.GetSchemas(); items = CompletionVariantList.Combine(items, names, DataBaseLevel.Schema); } { var names = this.InfoProvider.GetObjectsInSchema(this.DefaultSchema); items = CompletionVariantList.Combine(items, names, DataBaseLevel.Table); } return(items); }
//========================================================================================= /// <summary>Отображает список всех вариантов.</summary> void ShowVariants(TextPoint tokenStart, Point point, CompletionVariantList items) { if (items == null || items.Count == 0) { if (this.IsVariantsVisible) { this.HideVariants(); } return; } this.TokenStart = tokenStart; this.FormWithList.LoadVariants(items); this.ShowVariants(point); }
//================================================================================== /// <summary>Загружает варианты в ListView.</summary> internal void LoadVariants(CompletionVariantList items) { listItems.Items.Clear(); if (items == null) { return; } foreach (CompletionVariant item in items) { ListViewItem lvItem = new ListViewItem(item.Text, item.ImageIndex) { ToolTipText = item.Tooltip }; listItems.Items.Add(lvItem); } this.listItems.SelectItem(0); }
//========================================================================================= /// <summary>Ищет единственный элемент по заданной строке. Если их 0 или больше 1, возвращает null.</summary> int?FindAloneItemByKey(CompletionVariantList items, string key) { // Количество элементов с вхождением заданной строки int iFoundCount = 0; // Индекс последнего совпавшего элемента int iItemId = 0; for (int i = 0; i < items.Count; i++) { if (items[i].Text.StartsWith(key, true, null)) { iFoundCount++; iItemId = i; } } if (iFoundCount != 1) { return(null); } return(iItemId); }
//========================================================================================= CompletionVariantList Get_Variants_For_Sources_2(string schema) { var names = this.InfoProvider.GetObjectsInSchema(this.DropBrackets(schema)); return(CompletionVariantList.Combine(null, names, DataBaseLevel.Table)); }