示例#1
0
 public virtual void Complete(VMState state)
 {
     Action action = GetCompleteAction(state);
     if (action == null)
     {
         return;
     }
     using (UndoTransaction tx = new UndoTransaction(UndoManager, true))
     {
         action();
     }
 }
示例#2
0
 public void RemoveCodeScheme()
 {
     if (SelectedCodeScheme == null)
     {
         return;
     }
     using (UndoTransaction tx = new UndoTransaction(UndoManager))
     {
         StudyUnit.RemoveCodeSchemeFromResponse(SelectedCodeScheme);
         SelectedCodeScheme.Codes.Clear();
         codeSchemes.Remove(SelectedCodeScheme);
         tx.Commit();
     }
     SelectedCodeScheme = null;
 }
示例#3
0
 public void RemoveQuestion()
 {
     using (UndoTransaction tx = new UndoTransaction(UndoManager))
     {
         StudyUnit.OnRemoveQuestion(SelectedQuestion);
         SelectedQuestions.Remove(SelectedQuestion);
         SelectedQuestionItem = null;
         ConceptVM concept = SelectedConcept;
         UpdateModel(false);
         SelectedConcept = concept;
         tx.Commit();
     }
 }
示例#4
0
 public BookVM SelectBookExternal(BookRelation relation)
 {
     SelectObjectWindowVM<BookVM> vm = new SelectObjectWindowVM<BookVM>(books);
     SelectObjectWindow window = new SelectObjectWindow(vm);
     BookVM book = SelectObjectWindow.Select(Resources.SelectBook, vm) as BookVM; //文献の選択
     if (book != null)
     {
         using (UndoTransaction tx = new UndoTransaction(UndoManager))
         {
             if (book.Book.FindRelation(relation) == null)
             {
                 //ViewModelはEditBookWindowが表示されるたびに作りなおされるのでここで生成する必要はない。
                 book.Book.BookRelations.Add(relation);
             }
             StudyUnit.OnRemoveBooks();
             tx.Commit();
         }
     }
     return book;
 }
示例#5
0
 public void RemoveBookExternal(BookVM targetBook)
 {
     if (targetBook == null)
     {
         return;
     }
     using (UndoTransaction tx = new UndoTransaction(UndoManager))
     {
         books.Remove(targetBook);
         StudyUnit.OnRemoveBooks();
         tx.Commit();
     }
     if (SelectedBook == targetBook)
     {
         SelectedBookItem = null;
     }
 }
示例#6
0
 public BookVM EditBookExternal(BookVM targetBook)
 {
     if (targetBook == null)
     {
         return null;
     }
     BookVM newBook = AddOrEditBook(targetBook.Book, null);
     if (newBook != null)
     {
         using (UndoTransaction tx = new UndoTransaction(UndoManager))
         {
             int index = books.IndexOf(targetBook);
             books.RemoveAt(index);
             books.Insert(index, newBook);
             StudyUnit.OnRemoveBooks();
             tx.Commit();
         }
     }
     return newBook;
 }
示例#7
0
 public BookVM AddBookExternal(BookRelation relation)
 {
     BookVM newBook = AddOrEditBook(null, relation);
     if (newBook != null)
     {
         using (UndoTransaction tx = new UndoTransaction(UndoManager))
         {
             books.Add(newBook);
             StudyUnit.OnRemoveBooks();
             tx.Commit();
         }
     }
     return newBook;
 }