📄 bookdbobserver.java
字号:
package com.ciash.bms.observer.impl;
import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JOptionPane;
import com.ciash.bms.db.manager.genus.impl.GenusDBManager;
import com.ciash.bms.entity.Book;
import com.ciash.bms.entity.User;
import com.ciash.bms.gui.uiInter.BookEditDialogUI;
import com.ciash.bms.gui.uiInter.SearchUI;
import com.ciash.bms.gui.updater.BookUpdater;
import com.ciash.bms.gui.updater.UserUpdater;
import com.ciash.bms.model.impl.BookModel;
import com.ciash.bms.model.impl.GenusModel;
import com.ciash.bms.observer.BookEditObserver;
/**
* 书籍管理观察者实例,实现了BookSearchDBObserver
*
* @see BookSearchDBObserver
*/
public class BookDBObserver extends BookSearchDBObserver implements
BookEditObserver {
private GenusModel genusModel;
private BookEditDialogUI bookEditDialogUI;
private BookModel bookModel;
private Vector updaters = new Vector();
public BookDBObserver(BookModel bookModel,
BookEditDialogUI bookEditDialogUI, SearchUI searchUI,
GenusModel genusModel) {
super(bookModel, searchUI);
this.bookEditDialogUI = bookEditDialogUI;
this.genusModel = genusModel;
this.bookModel = bookModel;
}
public BookDBObserver() {
}
public void addBook() {
try {
Collection c = genusModel.findAll();
Book b;
int result = 0;
do {
result = bookEditDialogUI.showDialog(c);
b = bookEditDialogUI.getBook();
} while (result == BookEditDialogUI.OK_OPTION
&& !bookModel.addBook(b));
if (result == BookEditDialogUI.OK_OPTION) {
update();
updateEditBook(b);
}
} catch (IllegalArgumentException e) {
JOptionPane.showMessageDialog(null, "还没有添加图书类别!请先添加图书分类!", "错误",
JOptionPane.ERROR_MESSAGE);
}
}
public void update() {
JOptionPane.showMessageDialog(null, "添加成功", "提示!",
JOptionPane.WARNING_MESSAGE);
}
public void addBookEditUpdater() {
}
public void editBook(Book book) {
bookEditDialogUI.showDialog(book, genusModel.findAll());
if (bookEditDialogUI.getOption() == BookEditDialogUI.OK_OPTION) {
int result = JOptionPane.showConfirmDialog(null, "确认保存么?", "提示",
JOptionPane.WARNING_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
Book b = bookEditDialogUI.getBook();
bookModel.update(b);
updateEditBook(b);
}
}
}
public GenusModel getGenusModel() {
return genusModel;
}
public void setGenusModel(GenusModel genusModel) {
this.genusModel = genusModel;
}
public BookEditDialogUI getBookEditDialogUI() {
return bookEditDialogUI;
}
public void setBookEditDialogUI(BookEditDialogUI bookEditDialogUI) {
this.bookEditDialogUI = bookEditDialogUI;
}
public BookModel getBookModel() {
return bookModel;
}
public void setBookModel(BookModel bookModel) {
this.bookModel = bookModel;
}
private Vector bookUpdaters = new Vector();
public void addBookUpdater(BookUpdater bookUpdater) {
bookUpdaters.add(bookUpdater);
}
private void updateEditBook(Book book) {
Iterator it = bookUpdaters.iterator();
while (it.hasNext()) {
BookUpdater update = (BookUpdater) it.next();
update.updateEditBook(book);
}
}
private void updateDeleteUser(Book book) {
Iterator it = bookUpdaters.iterator();
while (it.hasNext()) {
BookUpdater update = (BookUpdater) it.next();
update.updateDeleteBook(book);
}
}
public boolean deleteBook(Book book) {
int result = JOptionPane.showConfirmDialog(null, "确认删除吗?", "提示!",
JOptionPane.WARNING_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
bookModel.delete(book);
updateDeleteUser(book);
return true;
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -