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.Review;
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.SubmitButton;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.TextInput;
public class ReviewEditor extends IWAdminWindow{
private int _reviewID = -1;
private int _bookID = -1;
private boolean _update = false;
private boolean _save = false;
private int _objectID = -1;
private Review _review;
private final static String IW_BUNDLE_IDENTIFIER="com.idega.block.book";
private IWBundle _iwb;
private IWResourceBundle _iwrb;
public ReviewEditor(){
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_review","Add publisher"));
try {
this._reviewID = Integer.parseInt(iwc.getParameter(BookBusiness.PARAMETER_REVIEW_ID));
}
catch (NumberFormatException e) {
this._reviewID = -1;
}
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._reviewID != -1 ) {
this._update = true;
this._review = getBookBusiness().getReview(this._reviewID);
if ( this._review == null ) {
this._update = false;
}
}
processForm();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_NEW) ) {
processForm();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_DELETE) ) {
deleteReview();
}
else if ( mode.equalsIgnoreCase(BookBusiness.PARAMETER_SAVE) ) {
saveReview(iwc);
}
}
private void processForm() throws FinderException,RemoteException {
TextInput reviewerName = new TextInput(BookBusiness.PARAMETER_NAME);
reviewerName.setLength(24);
TextArea bookReview = new TextArea(BookBusiness.PARAMETER_DESCRIPTION,54,8);
DropdownMenu menu = new DropdownMenu(BookBusiness.PARAMETER_RATING);
for ( int a = 1; a <= 10; a++ ) {
menu.addMenuElement(a,String.valueOf(a));
if ( a == 5 ) {
menu.setSelectedElement(String.valueOf(a));
}
}
if ( this._update ) {
if ( this._review.getName() != null ) {
reviewerName.setContent(this._review.getName());
}
if ( this._review.getReview() != null ) {
bookReview.setContent(this._review.getReview());
}
if ( this._review.getRating() != -1 ) {
menu.setSelectedElement(String.valueOf(this._review.getRating()));
}
}
addLeft(this._iwrb.getLocalizedString("reviewer_name","Name")+":",reviewerName,true);
addLeft(this._iwrb.getLocalizedString("review","Review")+":",bookReview,true);
addLeft(this._iwrb.getLocalizedString("rating","Rating")+":"+Text.NON_BREAKING_SPACE,menu,false);
addHiddenInput(new HiddenInput(BookBusiness.PARAMETER_REVIEW_ID,Integer.toString(this._reviewID)));
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 saveReview(IWContext iwc) {
String name = iwc.getParameter(BookBusiness.PARAMETER_NAME);
String description = iwc.getParameter(BookBusiness.PARAMETER_DESCRIPTION);
String rating = iwc.getParameter(BookBusiness.PARAMETER_RATING);
getBookBusiness().saveReview(this._reviewID,this._bookID,name,description,rating);
setParentToReload();
close();
}
private void deleteReview() {
getBookBusiness().deleteReview(this._reviewID);
setParentToReload();
close();
}
public String getBundleIdentifier(){
return IW_BUNDLE_IDENTIFIER;
}
private BookBusiness getBookBusiness(){
return BookBusiness.getBookBusinessInstace();
}
}