package com.idega.block.media.presentation; import java.util.HashMap; import java.util.Iterator; import com.idega.block.media.business.MediaConstants; import com.idega.core.file.data.ICFileType; import com.idega.core.file.data.ICMimeType; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWCacheManager; import com.idega.idegaweb.IWMainApplication; import com.idega.idegaweb.IWResourceBundle; import com.idega.idegaweb.presentation.IWAdminWindow; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.text.Text; import com.idega.presentation.ui.BackButton; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; /** * Title: com.idega.block.media.presentation.MimeTypeWindow * Description: A window for adding new mimetypes and associating them with filetypes and handlers * Copyright: Copyright (c) 2001 * Company: idega software * @author Eirikur S. Hrafnsson eiki@idega.is * @version 1.0 */ public class MimeTypeWindow extends IWAdminWindow{ private IWBundle iwb; private IWResourceBundle iwrb; private String mimeType = null; public MimeTypeWindow(){ } public MimeTypeWindow(String mimeType){ this.mimeType = mimeType; super.setEmpty(); } public void main(IWContext iwc){ setBackgroundColor(MediaConstants.MEDIA_VIEWER_BACKGROUND_COLOR); setAllMargins(0); this.iwrb = getResourceBundle(iwc); this.iwb = getBundle(iwc); setBackgroundColor("white"); /**@todo add localkey to bundle**/ setTitle(this.iwrb.getLocalizedString("mimetype.window.title","Add mimetype")); handleEvents(iwc); } private void handleEvents(IWContext iwc){ String action = iwc.getParameter(MediaConstants.MEDIA_ACTION_PARAMETER_NAME); if( action != null ){ //saving the mimetype if( action.equals(MediaConstants.MEDIA_ACTION_SAVE) ){ saveMimeType(iwc); } } else{//adding a mimetype addMimeTypeForm(iwc); } } private void saveMimeType(IWContext iwc){ this.mimeType = iwc.getParameter(MediaConstants.MEDIA_MIME_TYPE_PARAMETER_NAME); String mimeDescription = iwc.getParameter(MediaConstants.MEDIA_MIME_TYPE_DESCRIPTION_PARAMETER_NAME); int fileTypeId = Integer.parseInt(iwc.getParameter(MediaConstants.MEDIA_FILE_TYPE_PARAMETER_NAME)); try{ System.out.println("storing new mimetype"); ICMimeType mime = ((com.idega.core.file.data.ICMimeTypeHome)com.idega.data.IDOLookup.getHomeLegacy(ICMimeType.class)).createLegacy(); mime.setMimeTypeAndDescription(this.mimeType,mimeDescription); mime.setFileTypeId(fileTypeId); mime.insert(); } catch( Exception ex ){ ex.printStackTrace(System.out); add(this.iwrb.getLocalizedString("mimetype.window.errorinsave","Try again, an error occured while saving.")); add(new BackButton()); } } private void addMimeTypeForm(IWContext iwc){ if(this.mimeType==null) { this.mimeType = iwc.getParameter(MediaConstants.MEDIA_MIME_TYPE_PARAMETER_NAME); } //insert dropdowns and form Form form = new Form(); Table table = new Table(3,4); DropdownMenu typemenu = new DropdownMenu(MediaConstants.MEDIA_FILE_TYPE_PARAMETER_NAME); IWCacheManager cm = IWMainApplication.getIWCacheManager(); HashMap types = (HashMap) cm.getCachedTableMap(ICFileType.class); Iterator iter = types.keySet().iterator(); while (iter.hasNext()) { ICFileType type = (ICFileType) types.get(iter.next()); typemenu.addMenuElement(type.getID(),type.getDisplayName()); } HiddenInput mime = new HiddenInput(MediaConstants.MEDIA_MIME_TYPE_PARAMETER_NAME,this.mimeType); Text mimeText = new Text("Mimetype"); Text mimeTypeText = new Text(this.mimeType); Text mimeDescription = new Text(this.iwrb.getLocalizedString("mimetype.window.description","Description")); Text fileTypeText = new Text(this.iwrb.getLocalizedString("mimetype.window.filetype","File type")); TextInput descriptionInput = new TextInput(MediaConstants.MEDIA_MIME_TYPE_DESCRIPTION_PARAMETER_NAME); table.add(mime,1,1); table.add(mimeText,1,1); table.add(mimeDescription,1,2); table.add(fileTypeText,1,3); table.add(mimeTypeText,2,1); table.add(descriptionInput,2,2); table.add(typemenu,2,3); SubmitButton save = new SubmitButton(this.iwb.getImageButton(this.iwrb.getLocalizedString("mimetype.window.save","SAVE"))); table.add(new HiddenInput(MediaConstants.MEDIA_ACTION_PARAMETER_NAME,MediaConstants.MEDIA_ACTION_SAVE)); Link close = new Link(this.iwrb.getLocalizedString("mimetype.window.close","CLOSE")); close.setOnClick("window.close()"); close.setAsImageButton(true); table.add(close,2,4); table.add(save,2,4); form.add(table); add(form); } public String getBundleIdentifier(){ return MediaConstants.IW_BUNDLE_IDENTIFIER ; } }