Ejemplo n.º 1
0
        //=========================================================================================
        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);
        }
Ejemplo n.º 2
0
 //=========================================================================================
 public void AddRange(CompletionVariantList variants)
 {
     foreach (var oItem in variants)
     {
         this.Add(oItem.Text, (DataBaseLevel)oItem.ImageIndex);
     }
 }
Ejemplo n.º 3
0
        //=========================================================================================
        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);
        }
Ejemplo n.º 4
0
        //=========================================================================================
        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);
        }
Ejemplo n.º 6
0
 //=========================================================================================
 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);
 }
Ejemplo n.º 7
0
 //=========================================================================================
 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);
 }
Ejemplo n.º 8
0
        //=========================================================================================
        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);
        }
Ejemplo n.º 9
0
        //=========================================================================================
        /// <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);
        }
Ejemplo n.º 10
0
        //==================================================================================
        /// <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);
        }
Ejemplo n.º 11
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);
        }
Ejemplo n.º 12
0
        //=========================================================================================
        CompletionVariantList Get_Variants_For_Sources_2(string schema)
        {
            var names = this.InfoProvider.GetObjectsInSchema(this.DropBrackets(schema));

            return(CompletionVariantList.Combine(null, names, DataBaseLevel.Table));
        }