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.Author;
import com.idega.block.media.presentation.ImageInserter;
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.ui.CloseButton;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.TextInput;
public class AuthorEditor extends IWAdminWindow{
private int _authorID = -1;
private boolean _update = false;
private boolean _save = false;
private int _objectID = -1;
private Author _author;
private final static String IW_BUNDLE_IDENTIFIER="com.idega.block.book";
private IWBundle _iwb;
private IWResourceBundle _iwrb;
public AuthorEditor(){
setWidth(500);
setHeight(300);
setUnMerged();
}
public void main(IWContext iwc) throws Exception {
this._iwb = getBundle(iwc);
this._iwrb = getResourceBundle(iwc);
addTitle(this._iwrb.getLocalizedString("add_author","Add author"));
try {
this._authorID = Integer.parseInt(iwc.getParameter(BookBusiness.PARAMETER_AUTHOR_ID));
}
catch (NumberFormatException e) {
this._authorID = -1;
}
String mode = iwc.getParameter(BookBusiness.PARAMETER_MODE);
if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_EDIT) ) {
if ( this._authorID != -1 ) {
this._update = true;
this._author = getBookBusiness().getAuthor(this._authorID);
if ( this._author == null ) {
this._update = false;
}
}
processForm();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_NEW) ) {
processForm();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_DELETE) ) {
deleteAuthor();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_SAVE) ) {
saveAuthor(iwc);
}
}
private void processForm() throws FinderException,RemoteException {
TextInput authorName = new TextInput(BookBusiness.PARAMETER_NAME);
authorName.setLength(24);
TextArea authorDescription = new TextArea(BookBusiness.PARAMETER_DESCRIPTION,54,12);
ImageInserter imageInsert = new ImageInserter(BookBusiness.PARAMETER_IMAGE_ID);
imageInsert.setMaxImageWidth(130);
imageInsert.setHasUseBox(false);
if ( this._update ) {
if ( this._author.getName() != null ) {
authorName.setContent(this._author.getName());
}
if ( this._author.getDescription() != null ) {
authorDescription.setContent(this._author.getDescription());
}
if ( this._author.getImage() != -1 ) {
imageInsert.setImageId(this._author.getImage());
}
}
addLeft(this._iwrb.getLocalizedString("author_name","Author name")+":",authorName,true);
addLeft(this._iwrb.getLocalizedString("book_description","Description")+":",authorDescription,true);
addRight(this._iwrb.getLocalizedString("image","Image")+":",imageInsert,true,false);
addHiddenInput(new HiddenInput(BookBusiness.PARAMETER_AUTHOR_ID,Integer.toString(this._authorID)));
addSubmitButton(new CloseButton(this._iwrb.getLocalizedImageButton("close","CLOSE")));
addSubmitButton(new SubmitButton(this._iwrb.getLocalizedImageButton("save","SAVE"),BookBusiness.PARAMETER_MODE,BookBusiness.PARAMETER_SAVE));
}
private void saveAuthor(IWContext iwc) {
String name = iwc.getParameter(BookBusiness.PARAMETER_NAME);
String description = iwc.getParameter(BookBusiness.PARAMETER_DESCRIPTION);
String imageID = iwc.getParameter(BookBusiness.PARAMETER_IMAGE_ID);
getBookBusiness().saveAuthor(this._authorID,name,description,imageID);
setParentToReload();
close();
}
private void deleteAuthor() {
getBookBusiness().deleteAuthor(this._authorID);
setParentToReload();
close();
}
public String getBundleIdentifier(){
return IW_BUNDLE_IDENTIFIER;
}
private BookBusiness getBookBusiness(){
return BookBusiness.getBookBusinessInstace();
}
}