package com.idega.block.dictionary.presentation; import java.rmi.RemoteException; import javax.ejb.FinderException; import com.idega.block.dictionary.business.DictionaryBusiness; import com.idega.block.dictionary.data.Word; 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.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 WordEditor extends IWAdminWindow{ private int _wordID = -1; private boolean _update = false; private boolean _save = false; private Word _word; private final static String IW_BUNDLE_IDENTIFIER="com.idega.block.dictionary"; private IWBundle _iwb; private IWResourceBundle _iwrb; public WordEditor(){ 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_word","Add word")); try { this._wordID = Integer.parseInt(iwc.getParameter(DictionaryBusiness.PARAMETER_WORD_ID)); } catch (NumberFormatException e) { this._wordID = -1; } String mode = iwc.getParameter(DictionaryBusiness.PARAMETER_MODE); if ( mode.equalsIgnoreCase(DictionaryBusiness.PARAMETER_EDIT) ) { if ( this._wordID != -1 ) { this._update = true; this._word = getDictionaryBusiness().getWord(this._wordID); if ( this._word == null ) { this._update = false; } } processForm(); } else if ( mode.equalsIgnoreCase(DictionaryBusiness.PARAMETER_NEW) ) { processForm(); } else if ( mode.equalsIgnoreCase(DictionaryBusiness.PARAMETER_DELETE) ) { deleteWord(); } else if ( mode.equalsIgnoreCase(DictionaryBusiness.PARAMETER_SAVE) ) { saveWord(iwc); } } private void processForm() throws FinderException,RemoteException,IDOException { TextInput word = new TextInput(DictionaryBusiness.PARAMETER_WORD); word.setLength(24); TextArea description = new TextArea(DictionaryBusiness.PARAMETER_DESCRIPTION,54,9); DropdownMenu menu = getDictionaryBusiness().getCategoryMenu(); ImageInserter imageInsert = new ImageInserter(DictionaryBusiness.PARAMETER_IMAGE_ID); imageInsert.setMaxImageWidth(130); imageInsert.setHasUseBox(false); if ( this._update ) { if ( this._word.getWord() != null ) { word.setContent(this._word.getWord()); } if ( this._word.getDescription() != null ) { description.setContent(this._word.getDescription()); } if ( this._word.getCategoryID() != -1 ) { menu.setSelectedElement(String.valueOf(this._word.getCategoryID())); } if ( this._word.getImageID() != -1 ) { imageInsert.setImageId(this._word.getImageID()); } } addLeft(this._iwrb.getLocalizedString("word","Word")+":",word,true); addLeft(this._iwrb.getLocalizedString("description","Description")+":",description,true); addLeft(this._iwrb.getLocalizedString("category","Category")+":",menu,true); addRight(this._iwrb.getLocalizedString("image","Image")+":",imageInsert,true,false); addHiddenInput(new HiddenInput(DictionaryBusiness.PARAMETER_WORD_ID,Integer.toString(this._wordID))); addSubmitButton(new CloseButton(this._iwrb.getLocalizedImageButton("close","CLOSE"))); addSubmitButton(new SubmitButton(this._iwrb.getLocalizedImageButton("save","SAVE"),DictionaryBusiness.PARAMETER_MODE,DictionaryBusiness.PARAMETER_SAVE)); } private void saveWord(IWContext iwc) { iwc.removeSessionAttribute(DictionaryBusiness.PARAMETER_IMAGE_ID); String name = iwc.getParameter(DictionaryBusiness.PARAMETER_WORD); String description = iwc.getParameter(DictionaryBusiness.PARAMETER_DESCRIPTION); String categoryID = iwc.getParameter(DictionaryBusiness.PARAMETER_CATEGORY_ID); String imageID = iwc.getParameter(DictionaryBusiness.PARAMETER_IMAGE_ID); getDictionaryBusiness().saveWord(this._wordID,categoryID,name,description,imageID); setParentToReload(); close(); } private void deleteWord() { getDictionaryBusiness().deleteWord(this._wordID); setParentToReload(); close(); } public String getBundleIdentifier(){ return IW_BUNDLE_IDENTIFIER; } private DictionaryBusiness getDictionaryBusiness(){ return DictionaryBusiness.getDictionaryBusinessInstace(); } }