Beispiel #1
0
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Установка свойств по группированию
 /// </summary>
 /// <param name="model">Модель</param>
 /// <param name="over">Другой элемент</param>
 //---------------------------------------------------------------------------------------------------------
 public void SetGroupProperties(ICubeXModel model, ICubeXModel over)
 {
     if (mIsGroupHierarchy)
     {
         if (over != null)
         {
             if (over is ICubeXModelOwned)
             {
                 if (model is ICubeXModelOwned)
                 {
                     ICubeXModelOwned model_owned = model as ICubeXModelOwned;
                     ICubeXModelOwned over_owned  = over as ICubeXModelOwned;
                     model_owned.SetPropertyValueFromGroupingHierarchy(over_owned.GetGroupingFromHierarchyOfOwner());
                 }
             }
         }
         else
         {
         }
     }
 }
Beispiel #2
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Бросание модели над коллекцией моделей
            /// </summary>
            /// <param name="model">Модель</param>
            /// <param name="item">Коллекция</param>
            /// <param name="args">Аргументы события</param>
            /// <returns>Статус обработки события</returns>
            //---------------------------------------------------------------------------------------------------------
            public Boolean DropModelOverCollectionModel(ICubeXModel model, TreeViewItem item, DragEventArgs args)
            {
                ICubeXCollectionModel collection_model = item.DataContext as ICubeXCollectionModel;

                // Если коллекция поддерживает данную модель
                if (collection_model != null && collection_model.IsSupportModel(model as ICubeXModelOwned))
                {
                    // Проверка на поддержку операции добавления
                    ICubeXCollectionSupportAdd operation_add = item.DataContext as ICubeXCollectionSupportAdd;
                    if (operation_add != null)
                    {
                        if (args.Effects == DragDropEffects.Move)
                        {
                            ICubeXModelOwned model_owned = model as ICubeXModelOwned;

                            SetGroupProperties(model_owned, operation_add.IModels[0] as ICubeXModelOwned);

                            operation_add.AddExistingModel(model_owned);
                        }
                        else
                        {
                            if (args.Effects == DragDropEffects.Copy)
                            {
                                ICubeXModelOwned model_owned = model.Clone() as ICubeXModelOwned;

                                SetGroupProperties(model_owned, operation_add.IModels[0] as ICubeXModelOwned);

                                operation_add.AddExistingModel(model_owned);
                            }
                        }
                    }

                    return(true);
                }

                return(false);
            }
Beispiel #3
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Событие постоянно возникает при перетаскивании данных над объектом-приемником
            /// </summary>
            /// <param name="sender">Источник события</param>
            /// <param name="args">Аргументы события</param>
            //---------------------------------------------------------------------------------------------------------
            private void OnTreeView_DragOver(Object sender, DragEventArgs args)
            {
                if (args.Data.GetDataPresent(nameof(ICubeXModel)))
                {
                    ICubeXModel model = args.Data.GetData(nameof(ICubeXModel)) as ICubeXModel;

                    // Над этим элементом находится перетаскиваемый объект
                    TreeViewItem over_item = ((DependencyObject)args.OriginalSource).FindVisualParent <TreeViewItem>();
                    if (over_item != null)
                    {
                        ICubeXCollectionModel collection_model = over_item.DataContext as ICubeXCollectionModel;
                        if (collection_model != null && collection_model.IsSupportModel(model as ICubeXModelOwned))
                        {
                        }
                        else
                        {
                            ICubeXModelOwned model_owned = over_item.DataContext as ICubeXModelOwned;
                            if (model_owned != null)
                            {
                                ICubeXCollectionModel model_owned_collection = model_owned.IOwner;
                                if (model_owned_collection != null && model_owned_collection.IsSupportModel(model as ICubeXModelOwned))
                                {
                                }
                                else
                                {
                                    args.Effects = DragDropEffects.None;
                                }
                            }
                            else
                            {
                                args.Effects = DragDropEffects.None;
                            }
                        }
                    }
                }
            }
 Boolean ICubeXCollectionModel.IsSupportModel(ICubeXModelOwned model)
 {
     throw new NotImplementedException();
 }
 public void RemoveModel(ICubeXModelOwned model)
 {
     throw new NotImplementedException();
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Проверка на поддержку модели
 /// </summary>
 /// <remarks>
 /// Поддержка модели подразумевает возможность добавить ее в список элементов по различным критериям
 /// </remarks>
 /// <param name="model">Модель</param>
 /// <returns>Статус поддержки модели</returns>
 //---------------------------------------------------------------------------------------------------------
 public override Boolean IsSupportModel(ICubeXModelOwned model)
 {
     return(model is CContractSet);
 }
Beispiel #7
0
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Проверка на поддержку модели
 /// </summary>
 /// <remarks>
 /// Поддержка модели подразумевает возможность добавить ее в список элементов по различным критериям
 /// </remarks>
 /// <param name="model">Модель</param>
 /// <returns>Статус поддержки модели</returns>
 //---------------------------------------------------------------------------------------------------------
 public override Boolean IsSupportModel(ICubeXModelOwned model)
 {
     return(model is CFinancingEntity || model is CFinancingEntitySet);
 }
Beispiel #8
0
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Проверка на поддержку модели
 /// </summary>
 /// <remarks>
 /// Поддержка модели подразумевает возможность добавить ее в список элементов по различным критериям
 /// </remarks>
 /// <param name="model">Модель</param>
 /// <returns>Статус поддержки модели</returns>
 //---------------------------------------------------------------------------------------------------------
 public override Boolean IsSupportModel(ICubeXModelOwned model)
 {
     return(model is ICubeXModelHierarchyView);
 }
Beispiel #9
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Бросание модели над другой моделью
            /// </summary>
            /// <param name="model">Модель</param>
            /// <param name="item">Модель</param>
            /// <param name="args">Аргументы события</param>
            /// <returns>Статус обработки события</returns>
            //---------------------------------------------------------------------------------------------------------
            public Boolean DropModelOverModel(ICubeXModel model, TreeViewItem item, DragEventArgs args)
            {
                // Элемент находится над моделей
                ICubeXModelOwned model_over = item.DataContext as ICubeXModelOwned;

                if (model_over != null)
                {
                    // Сначала проверяем возможность вставки в конкретное место
                    ICubeXCollectionSupportInsert operation_insert = model_over.IOwner as ICubeXCollectionSupportInsert;
                    if (operation_insert != null && operation_insert.IsSupportModel(model as ICubeXModelOwned))
                    {
                        if (args.Effects == DragDropEffects.Move)
                        {
                            ICubeXModelOwned model_owned = model as ICubeXModelOwned;

                            SetGroupProperties(model_owned, model_over);

                            operation_insert.InsertAfterModel(model_over, model_owned);
                        }
                        else
                        {
                            if (args.Effects == DragDropEffects.Copy)
                            {
                                ICubeXModelOwned model_owned = model.Clone() as ICubeXModelOwned;

                                SetGroupProperties(model_owned, model_over);

                                operation_insert.InsertAfterModel(model_over, model_owned);
                            }
                        }
                    }
                    else
                    {
                        // Проверяем возможность простого добавления
                        ICubeXCollectionSupportAdd operation_add = model_over.IOwner as ICubeXCollectionSupportAdd;
                        if (operation_add != null && operation_add.IsSupportModel(model as ICubeXModelOwned))
                        {
                            if (args.Effects == DragDropEffects.Move)
                            {
                                ICubeXModelOwned model_owned = model as ICubeXModelOwned;

                                SetGroupProperties(model_owned, model_over);

                                operation_add.AddExistingModel(model_owned);
                            }
                            else
                            {
                                if (args.Effects == DragDropEffects.Copy)
                                {
                                    ICubeXModelOwned model_owned = model.Clone() as ICubeXModelOwned;

                                    SetGroupProperties(model_owned, model_over);

                                    operation_add.AddExistingModel(model_owned);
                                }
                            }
                        }
                    }
                }

                return(false);
            }