Example #1
0
        public void AddRelation()
        {
            BookRelationVM newRelation = SelectRelation(null);

            if (newRelation != null)
            {
                if (!bookRelations.Contains(newRelation))
                {
                    bookRelations.Add(newRelation);
                }
                SelectedRelationItem = newRelation;
            }
        }
Example #2
0
 public void Init(BookRelation fromRelation)
 {
     foreach (BookRelation relationModel in Book.BookRelations)
     {
         BookRelationVM relation = CreateRelation(relationModel);
         bookRelations.Add(relation);
     }
     if (fromRelation != null && FindExistRelation(fromRelation) == null)
     {
         Book.BookRelations.Add(fromRelation);
         bookRelations.Add(CreateRelation(fromRelation));
     }
     modelSyncher = new ModelSyncher <BookRelationVM, BookRelation>(this, bookRelations, Book.BookRelations);
 }
Example #3
0
        public void EditRelation()
        {
            if (SelectedRelation == null)
            {
                return;
            }
            BookRelationVM newRelation = SelectRelation(SelectedRelation.BookRelation);

            if (newRelation != null)
            {
                if (!bookRelations.Contains(newRelation))
                {
                    int index = bookRelations.IndexOf(SelectedRelation);
                    bookRelations.RemoveAt(index);
                    bookRelations.Insert(index, newRelation);
                }
                SelectedRelationItem = newRelation;
            }
        }
Example #4
0
        private BookRelationVM CreateRelation(BookRelation relationModel)
        {
            ObservableCollection <ITitleProvider> objects = StudyUnit.RelatedMetaData(relationModel.BookRelationType);
            string         typeName     = BookRelationItem.GetLabel(relationModel.BookRelationType);
            ITitleProvider obj          = SelectMetaDataWindowVM.Find(objects, relationModel.MetadataId);
            string         metaDataName = null;

            if (obj != null)
            {
                metaDataName = obj.Title;
            }
            BookRelationVM relation = new BookRelationVM(relationModel)
            {
                Parent       = this,
                TypeName     = typeName,
                MetaDataName = metaDataName
            };

            return(relation);
        }
Example #5
0
        private BookRelationVM SelectRelation(BookRelation selectedRelationModel)
        {
            BookRelationType type       = BookRelationType.Abstract;
            string           metaDataId = null;

            if (selectedRelationModel != null)
            {
                type       = selectedRelationModel.BookRelationType;
                metaDataId = selectedRelationModel.MetadataId;
            }
            SelectMetaDataWindowVM vm = new SelectMetaDataWindowVM(type, metaDataId)
            {
                Parent = this
            };

            vm.Init();
            SelectMetaDataWindow window = new SelectMetaDataWindow(vm);

            window.Owner = Window;
            BookRelationVM relation = null;

            if (window.ShowDialog() == true)
            {
                BookRelation relationModel = new BookRelation();
                relationModel.BookRelationType = vm.BookRelationType;
                ITitleProvider selectedObject = vm.SelectedObject as ITitleProvider;
                if (selectedObject != null)
                {
                    relationModel.MetadataId = selectedObject.Id;
                }
                relation = FindExistRelation(relationModel);
                if (relation == null)
                {
                    relation = CreateRelation(relationModel);
                }
            }
            return(relation);
        }
 private BookRelationVM CreateRelation(BookRelation relationModel)
 {
     ObservableCollection<ITitleProvider> objects = StudyUnit.RelatedMetaData(relationModel.BookRelationType);
     string typeName = BookRelationItem.GetLabel(relationModel.BookRelationType);
     ITitleProvider obj = SelectMetaDataWindowVM.Find(objects, relationModel.MetadataId);
     string metaDataName = null;
     if (obj != null)
     {
         metaDataName = obj.Title;
     }
     BookRelationVM relation = new BookRelationVM(relationModel)
     {
         Parent = this,
         TypeName = typeName,
         MetaDataName = metaDataName
     };
     return relation;
 }