Ejemplo n.º 1
0
        /// <summary>
        /// Добавление таблицы в группу. Если таблица уже есть в группе ничего не происходит
        /// </summary>
        /// <param name="group">Ссылка на группу</param>
        /// <param name="table">Ссылка на таблицу</param>
        /// <pparam name="index">Новая позиция</pparam>
        protected virtual void MGroupAddTable(AbsM.IGroupM group, AbsM.ILayerM table, int?index = null)
        {
            var pgGroup = group as AbsM.GroupM;

            if (pgGroup == null)
            {
                return;
            }
            var tables = AbsM.GroupM.GetTables(pgGroup);

            if (!group.Tables.Contains(table))
            {
                if (index == null)
                {
                    tables.Add(table);
                }
                else
                {
                    if (index <= tables.Count)
                    {
                        tables.Insert(index.Value, table);
                    }
                    else
                    {
                        Debug.Fail("Неправильно указан индекс", "AddTableIntoGroup");
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Изменяет позицию таблицы в группе.
        /// Не чего не происходит если:
        /// Таблицы нет или позиция совпадает с текущей
        /// </summary>
        /// <param name="group">Ссылка на группу</param>
        /// <param name="table">Ссылка на таблицу</param>
        /// <param name="index">Новая позиция</param>
        protected virtual void MGroupMoveTable(AbsM.IGroupM group, AbsM.ILayerM table, int index)
        {
            var pgGroup = group as AbsM.GroupM;

            if (pgGroup == null)
            {
                return;
            }
            var tables = AbsM.GroupM.GetTables(pgGroup);

            if (group.Tables.Contains(table))
            {
                int old_index = tables.IndexOf(table);
                if (old_index != index)
                {
                    if (index < tables.Count)
                    {
                        tables.Move(old_index, index);
                    }
                    else
                    {
                        Debug.Fail("Неправильно указан индекс", "MoveTableIntoGroup");
                    }
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Удаление таблицы из группы. Если таблицы нет в группе ничего не происходит
        /// </summary>
        /// <param name="group">Ссылка на группу</param>
        /// <param name="table">Ссылка на таблицу</param>
        protected virtual void MGroupRemoveTable(AbsM.IGroupM group, AbsM.ILayerM table)
        {
            var pgGroup = group as AbsM.GroupM;

            if (pgGroup == null)
            {
                return;
            }
            var tables = AbsM.GroupM.GetTables(pgGroup);

            if (group.Tables.Contains(table))
            {
                tables.Remove(table);
            }
        }