X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletModuleImages.java;h=23642640bf3d66a75ebfce7a8ba6205e4cff0a05;hb=8297c34c7a424107fd7d1980b6e8e5a3ae26494b;hp=ac7d7468fb106c101550fdecae2ffff104db7990;hpb=574a7677790a9cdafda0bbeba4d262abfbf3470e;p=mir.git diff --git a/source/mircoders/servlet/ServletModuleImages.java b/source/mircoders/servlet/ServletModuleImages.java index ac7d7468..23642640 100755 --- a/source/mircoders/servlet/ServletModuleImages.java +++ b/source/mircoders/servlet/ServletModuleImages.java @@ -1,334 +1,69 @@ +/* + * Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Mir is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with any library licensed under the Apache Software License, + * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library + * (or with modified versions of the above that use the same license as the above), + * and distribute linked combinations including the two. You must obey the + * GNU General Public License in all respects for all of the code used other than + * the above mentioned libraries. If you modify this file, you may extend this + * exception to your version of the file, but you are not obligated to do so. + * If you do not wish to do so, delete this exception statement from your version. + */ package mircoders.servlet; -import java.io.*; -import java.sql.*; -import java.util.*; -import java.net.*; -import javax.servlet.*; -import javax.servlet.http.*; - -import freemarker.template.*; -import com.oreilly.servlet.multipart.*; -import com.oreilly.servlet.*; - -import mir.servlet.*; -import mir.module.*; -import mir.misc.*; -import mir.entity.*; -import mir.storage.*; - -import mircoders.entity.*; -import mircoders.storage.*; -import mircoders.module.*; +import mir.log.LoggerWrapper; +import mir.servlet.ServletModule; +import mir.storage.StorageObjectFailure; +import mircoders.module.ModuleImages; +import mircoders.storage.DatabaseImages; +import mircoders.global.*; /* - * ServletModuleBilder - - * liefert HTML fuer Bilder - * + * ServletModuleImages - * - * @author RK + * @version $Id: ServletModuleImages.java,v 1.26.2.2 2003/09/03 17:49:40 zapata Exp $ + * @author RK, the mir-coders group */ -public class ServletModuleImages extends mir.servlet.ServletModule +public class ServletModuleImages extends ServletModuleUploadedMedia { - - private static ModuleMediafolder mediafolderModule; - private static DatabaseRights dbRights; - private static DatabaseImageFormat dbImageFormat; - private static DatabaseImageType dbImageType; - private static DatabaseImageColor dbImageColor; - private static DatabaseImageLayout dbImageLayout; - // Singelton / Kontruktor private static ServletModuleImages instance = new ServletModuleImages(); public static ServletModule getInstance() { return instance; } private ServletModuleImages() { - theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Bilder.Logfile")); - templateListString = MirConfig.getProp("ServletModule.Bilder.ListTemplate"); - templateObjektString = MirConfig.getProp("ServletModule.Bilder.ObjektTemplate"); - templateConfirmString = MirConfig.getProp("ServletModule.Bilder.ConfirmTemplate"); - try { - mainModule = new ModuleImages(DatabaseImages.getInstance()); - mediafolderModule = new ModuleMediafolder(DatabaseMediafolder.getInstance()); - dbRights = DatabaseRights.getInstance(); - dbImageFormat = DatabaseImageFormat.getInstance(); - dbImageColor = DatabaseImageColor.getInstance(); - dbImageType = DatabaseImageType.getInstance(); - dbImageLayout = DatabaseImageLayout.getInstance(); - } - catch (StorageObjectException e) { - theLog.printDebugInfo("servletmodulebilder konnte nicht initialisiert werden"); - } - } - - - public void insert(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException - { - try { - WebdbMultipartRequest mp = new WebdbMultipartRequest(req); - HashMap parameters = mp.getParameters(); - MpRequest mpReq = (MpRequest)mp.requestList.get(0); - byte[] imageData=mpReq.getMedia(); - String fileName=mpReq.getFilename(); - String contentType= mpReq.getContentType(); - - EntityUsers user = _getUser(req); - parameters.put("date", StringUtil.date2webdbDate(new GregorianCalendar())); - parameters.put("to_publisher", user.getId()); - parameters.put("is_produced", "0"); - if (!parameters.containsKey("is_published")) - parameters.put("is_published","0"); - - String id = mainModule.add(parameters); - EntityImages entImage = (EntityImages)mainModule.getById(id); - - if (imageData!=null && fileName!=null) { - String fileType = "-1"; - if (contentType.equals("image/jpeg")) fileType="0"; - if (contentType.equals("image/gif")) fileType="1"; - if (fileType != "-1") - entImage.setImage(imageData, fileType); - else - theLog.printError("Wrong file uploaded!"); - } - _edit(id, req, res); - } - catch (IOException e) { throw new ServletModuleException("upload -- ioexception " + e.toString());} - catch (ModuleException e) { throw new ServletModuleException("upload -- moduleexception " + e.toString());} - - } - - public void update(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException - { + super(); + logger = new LoggerWrapper("ServletModule.Images"); + moduleName = "Images"; try { - WebdbMultipartRequest mp = new WebdbMultipartRequest(req); - HashMap parameters = mp.getParameters(); - MpRequest mpReq = (MpRequest)mp.requestList.get(0); - byte[] imageData=mpReq.getMedia(); - String fileName=mpReq.getFilename(); - String contentType=mpReq.getContentType(); - - EntityUsers user = _getUser(req); - parameters.put("to_publisher", user.getId()); - parameters.put("is_produced", "0"); - if (!parameters.containsKey("is_published")) - parameters.put("is_published","0"); - - String id = mainModule.set(parameters); - EntityImages entImage = (EntityImages)mainModule.getById(id); - - if (imageData!=null && fileName!=null) { - String fileType = "-1"; - if (contentType.equals("image/jpeg")) fileType="0"; - if (contentType.equals("image/gif")) fileType="1"; - if (fileType != "-1") - entImage.setImage(imageData, fileType); - else - theLog.printError("Wrong file uploaded!"); - } - _edit(id, req, res); - } - catch (IOException e) { throw new ServletModuleException("upload -- ioexception " + e.toString());} - catch (ModuleException e) { throw new ServletModuleException("upload -- moduleexception " + e.toString());} - - } - - - public void showimg(HttpServletRequest req, HttpServletResponse res) - throws ServletModuleException - { - String idParam = req.getParameter("id"); - if (idParam!=null && !idParam.equals("")) { - try { - EntityImages entImage =(EntityImages)mainModule.getById(idParam); - res.setContentType("image/jpeg"); // testweise - ServletOutputStream out = res.getOutputStream(); // wichtig, dass vorher kein res.getwriter() gelaufen ist - - byte[] outbytes = entImage.getImage(); - out.write(outbytes); - out.close(); - } - - catch (IOException e) {throw new ServletModuleException(e.toString());} - catch (ModuleException e) {throw new ServletModuleException(e.toString());} - catch (Exception e) {throw new ServletModuleException(e.toString());} - } - else theLog.printDebugInfo("id nicht angeben."); - // darf keine exception werfen - } - - public void showicon(HttpServletRequest req, HttpServletResponse res) - throws ServletModuleException - { - String idParam = req.getParameter("id"); - if (idParam!=null && !idParam.equals("")) { - try { - EntityImages entImage =(EntityImages)mainModule.getById(idParam); - res.setContentType("image/jpeg"); // testweise - ServletOutputStream out = res.getOutputStream(); // wichtig, dass vorher kein res.getwriter() gelaufen ist - - byte[] outbytes = entImage.getIcon(); - out.write(outbytes); - out.close(); - } - - catch (IOException e) {throw new ServletModuleException(e.toString());} - catch (ModuleException e) {throw new ServletModuleException(e.toString());} - catch (Exception e) {throw new ServletModuleException(e.toString());} - } - else throw new ServletModuleException("id nicht angeben."); - } - - public void list(HttpServletRequest req, HttpServletResponse res) - throws ServletModuleException - { - // Parameter auswerten - SimpleHash mergeData = new SimpleHash(); - String query_text = req.getParameter("query_text"); - mergeData.put("query_text",query_text); - if (query_text!=null) mergeData.put("query_text_encoded",URLEncoder.encode(query_text)); - String query_field = req.getParameter("query_field"); - mergeData.put("query_field",query_field); - String query_is_published = req.getParameter("query_is_published"); - mergeData.put("query_is_published",query_is_published); - String query_media_folder = req.getParameter("query_media_folder"); - mergeData.put("query_media_folder",query_media_folder); - String offset = req.getParameter("offset"); - if (offset==null || offset.equals("")) offset="0"; - mergeData.put("offset",offset); - - String order = req.getParameter("order"); - if (order==null) order="webdb_lastchange desc"; - - // if in connection mode to content - String cid = req.getParameter("cid"); - mergeData.put("cid",cid); - - - // sql basteln - String whereClause=""; boolean isFirst=true; - if (query_text!=null && !query_text.equalsIgnoreCase("")) { - whereClause += "lower("+query_field+") like lower('%"+query_text+"%')"; isFirst=false;} - if (query_is_published != null && !query_is_published.equals("")) { - if (isFirst==false) whereClause+=" and "; - whereClause += "is_published='"+query_is_published+"'"; - isFirst=false; - } - if (query_media_folder != null && !query_media_folder.equals("")) { - if (isFirst==false) whereClause+=" and "; - whereClause += "to_media_folder='"+query_media_folder+"'"; - } - //theLog.printDebugInfo("sql-whereclause: " + whereClause + " order: " + order + " offset: " + offset); - - // fetch und ausliefern - try { - mergeData.put("mediafolderPopupData", mediafolderModule.getPopupData()); - mergeData.put("mediafolderHashdata", mediafolderModule.getHashData()); - if (query_text!=null || query_is_published!=null || query_media_folder!=null) { - EntityList theList = mainModule.getByWhereClause(whereClause, order, (new Integer(offset)).intValue(),10); - if (theList != null) { - mergeData.put("contentlist",HTMLTemplateProcessor.makeSimpleList(theList)); - if(theList.getOrder()!=null) { - mergeData.put("order", theList.getOrder()); - mergeData.put("order_encoded", URLEncoder.encode(theList.getOrder())); - } - mergeData.put("count", (new Integer(theList.getCount())).toString()); - mergeData.put("from", (new Integer(theList.getFrom())).toString()); - mergeData.put("to", (new Integer(theList.getTo())).toString()); - if (theList.hasNextBatch()) - mergeData.put("next", (new Integer(theList.getNextBatch())).toString()); - if (theList.hasPrevBatch()) - mergeData.put("prev", (new Integer(theList.getPrevBatch())).toString()); - } - } - // raus damit - HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateListString, mergeData, res.getWriter()); - } - catch (ModuleException e) {throw new ServletModuleException(e.toString());} - catch (IOException e) {throw new ServletModuleException(e.toString());} - catch (Exception e) {throw new ServletModuleException(e.toString());} - } - - - public void add(HttpServletRequest req, HttpServletResponse res) - throws ServletModuleException - { - try { - SimpleHash mergeData = new SimpleHash(); - mergeData.put("new", "1"); - mergeData.put("mediafolderPopupData", mediafolderModule.getPopupData()); - deliver(req, res, mergeData, templateObjektString); + model = MirGlobal.localizer().dataModel().adapterModel(); + definition = "image"; + mainModule = new ModuleImages(DatabaseImages.getInstance()); } - catch (Exception e) { throw new ServletModuleException(e.toString());} - } - - public void edit(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException - { - String idParam = req.getParameter("id"); - _edit(idParam, req, res); - } - - private void _edit(String idParam, HttpServletRequest req, HttpServletResponse res) throws ServletModuleException { - if (idParam!=null && !idParam.equals("")) { - try { - SimpleHash mergeData = HTMLTemplateProcessor.makeSimpleHash(mainModule.getById(idParam)); - mergeData.put("mediafolderPopupData", mediafolderModule.getPopupData()); - mergeData.put("rightsHashdata", dbRights.getHashData()); - mergeData.put("imgformatHashdata", dbImageFormat.getHashData()); - mergeData.put("imgcolorHashdata", dbImageColor.getHashData()); - mergeData.put("imgtypeHashdata", dbImageType.getHashData()); - mergeData.put("imglayoutHashdata", dbImageLayout.getHashData()); - deliver(req, res, mergeData, templateObjektString); - } - catch (ModuleException e) { throw new ServletModuleException(e.toString());} + catch (Throwable e) { + logger.error("Initialization of ServletModuleImages failed!: " + e.getMessage()); } - else throw new ServletModuleException("ServletmoduleImage :: _edit without id"); - } - - - /** @todo should be in ServletModule.java */ - private EntityUsers _getUser(HttpServletRequest req) - { - HttpSession session=req.getSession(false); - return (EntityUsers)session.getAttribute("login.uid"); } - - // deprecated - public void upload(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException - { - //theLog.printDebugInfo("-- trying to upload"); - String idParam = req.getParameter("id"); - if (idParam!=null && !idParam.equals("")) { - try { - - WebdbMultipartRequest mp = new WebdbMultipartRequest(req); - HashMap withValues = mp.getParameters(); - MpRequest mpReq = (MpRequest)mp.requestList.get(0); - byte[] imageData=mpReq.getMedia(); - String fileName=mpReq.getFilename(); - String contentType=mpReq.getContentType(); - - String fileType = "-1"; - if (contentType.equals("image/jpeg")) fileType="0"; - if (contentType.equals("image/gif")) fileType="1"; - if (fileType != "-1") { - EntityImages entImage = (EntityImages)mainModule.getById(idParam); - entImage.setImage(imageData, fileType); - } - else - theLog.printError("Wrong file uploaded!"); - } - catch (IOException e) { throw new ServletModuleException("upload -- ioexception " + e.toString());} - catch (ModuleException e) { throw new ServletModuleException("upload -- moduleexception " + e.toString());} - } - else // keine id - throw new ServletModuleException("Keine id angegeben"); - edit(req,res); - } - - } +