package com.idega.block.book.presentation;
import java.rmi.RemoteException;
import javax.ejb.FinderException;
import com.idega.block.book.business.BookBusiness;
import com.idega.block.book.data.Book;
import com.idega.block.media.presentation.ImageInserter;
import com.idega.data.IDOException;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.idegaweb.presentation.IWAdminWindow;
import com.idega.presentation.IWContext;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.CloseButton;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.SelectionBox;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.TextInput;
public class BookEditor extends IWAdminWindow{
private int _bookID = -1;
private boolean _update = false;
private boolean _save = false;
private int _objectID = -1;
private Book _book;
private final static String IW_BUNDLE_IDENTIFIER="com.idega.block.book";
private IWBundle _iwb;
private IWResourceBundle _iwrb;
public BookEditor(){
setWidth(500);
setHeight(550);
setUnMerged();
}
public void main(IWContext iwc) throws Exception {
this._iwb = getBundle(iwc);
this._iwrb = getResourceBundle(iwc);
addTitle(this._iwrb.getLocalizedString("add_book","Add book"));
try {
this._bookID = Integer.parseInt(iwc.getParameter(BookBusiness.PARAMETER_BOOK_ID));
}
catch (NumberFormatException e) {
this._bookID = -1;
}
String mode = iwc.getParameter(BookBusiness.PARAMETER_MODE);
if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_EDIT) ) {
if ( this._bookID != -1 ) {
this._update = true;
this._book = getBookBusiness().getBook(this._bookID);
if ( this._book == null ) {
this._update = false;
}
}
processForm();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_NEW) ) {
processForm();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_DELETE) ) {
deleteBook();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_SAVE) ) {
saveBook(iwc);
}
}
private void processForm() throws IDOException,FinderException,RemoteException {
TextInput bookName = new TextInput(BookBusiness.PARAMETER_NAME);
bookName.setLength(24);
TextArea bookDescription = new TextArea(BookBusiness.PARAMETER_DESCRIPTION,54,12);
TextInput bookYear = new TextInput(BookBusiness.PARAMETER_YEAR);
bookYear.setLength(4);
bookYear.setMaxlength(4);
DropdownMenu publisher = getBookBusiness().getPublisherMenu();
SelectionBox authors = getBookBusiness().getAuthorMenu(this._bookID);
SelectionBox categories = getBookBusiness().getCategoryMenu(this._book);
ImageInserter imageInsert = new ImageInserter(BookBusiness.PARAMETER_IMAGE_ID);
imageInsert.setMaxImageWidth(130);
imageInsert.setHasUseBox(false);
if ( this._update ) {
if ( this._book.getName() != null ) {
bookName.setContent(this._book.getName());
}
if ( this._book.getDescription() != null ) {
bookDescription.setContent(this._book.getDescription());
}
if ( this._book.getYear() != 0 ) {
bookYear.setContent(String.valueOf(this._book.getYear()));
}
if ( this._book.getPublisherID() != -1 ) {
publisher.setSelectedElement(String.valueOf(this._book.getPublisherID()));
}
if ( this._book.getImage() != -1 ) {
imageInsert.setImageId(this._book.getImage());
}
}
addLeft(this._iwrb.getLocalizedString("book_name","Book name")+":",bookName,true);
addLeft(this._iwrb.getLocalizedString("book_description","Description")+":",bookDescription,true);
addLeft(this._iwrb.getLocalizedString("book_year","Publish year")+":"+Text.NON_BREAKING_SPACE,bookYear,false);
addLeft(this._iwrb.getLocalizedString("book_publisher","Publisher")+":"+Text.NON_BREAKING_SPACE,publisher,false);
addLeft(this._iwrb.getLocalizedString("book_authors","Authors")+":",authors,true);
addLeft(this._iwrb.getLocalizedString("book_categories","Categories")+":",categories,true);
addRight(this._iwrb.getLocalizedString("image","Image")+":",imageInsert,true,false);
addHiddenInput(new HiddenInput(BookBusiness.PARAMETER_BOOK_ID,Integer.toString(this._bookID)));
addSubmitButton(new CloseButton(this._iwrb.getLocalizedImageButton("close","CLOSE")));
addSubmitButton(new SubmitButton(this._iwrb.getLocalizedImageButton("save","SAVE"),BookBusiness.PARAMETER_MODE,BookBusiness.PARAMETER_SAVE));
}
private void saveBook(IWContext iwc) {
String bookName = iwc.getParameter(BookBusiness.PARAMETER_NAME);
String bookDescription = iwc.getParameter(BookBusiness.PARAMETER_DESCRIPTION);
String bookYear = iwc.getParameter(BookBusiness.PARAMETER_YEAR);
String bookImageID = iwc.getParameter(BookBusiness.PARAMETER_IMAGE_ID);
String bookPublisher = iwc.getParameter(BookBusiness.PARAMETER_PUBLISHER_ID);
String[] bookAuthors = iwc.getParameterValues(BookBusiness.PARAMETER_AUTHORS);
String[] bookCategories = iwc.getParameterValues(BookBusiness.PARAMETER_CATEGORIES);
getBookBusiness().saveBook(this._bookID,bookName,bookDescription,bookYear,bookImageID,bookPublisher,bookAuthors,bookCategories);
setParentToReload();
close();
}
private void deleteBook() {
getBookBusiness().deleteBook(this._bookID);
setParentToReload();
close();
}
public String getBundleIdentifier(){
return IW_BUNDLE_IDENTIFIER;
}
private BookBusiness getBookBusiness(){
return BookBusiness.getBookBusinessInstace();
}
}