organising imports
[mir.git] / source / mircoders / servlet / ServletModuleUploadedMedia.java
index dd5c422..4b16869 100755 (executable)
 
 package mircoders.servlet;
 
-import freemarker.template.SimpleHash;
-import freemarker.template.SimpleList;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.Map;
 
+import javax.servlet.ServletContext;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import mir.config.MirPropertiesConfiguration;
+import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
 import mir.entity.Entity;
 import mir.entity.EntityList;
+import mir.log.LoggerWrapper;
 import mir.media.MediaHelper;
 import mir.media.MirMedia;
-import mir.media.MirMediaException;
-import mir.media.MirMediaUserException;
-import mir.misc.*;
-import mir.module.ModuleException;
+import mir.misc.FileHandler;
+import mir.misc.FileHandlerException;
+import mir.misc.FileHandlerUserException;
+import mir.misc.WebdbMultipartRequest;
 import mir.servlet.ServletModule;
-import mir.servlet.ServletModuleException;
-import mir.servlet.ServletModuleUserException;
-import mir.storage.Database;
-import mir.storage.StorageObjectException;
-import mir.log.*;
-
-import mircoders.entity.EntityUsers;
+import mir.servlet.ServletModuleExc;
+import mir.servlet.ServletModuleFailure;
+import mir.servlet.ServletModuleUserExc;
+import mir.storage.StorageObjectFailure;
+import mircoders.entity.EntityContent;
 import mircoders.entity.EntityUploadedMedia;
-import mircoders.storage.DatabaseMediaType;
-import mircoders.storage.DatabaseMediafolder;
+import mircoders.entity.EntityUsers;
 import mircoders.media.MediaRequest;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletOutputStream;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URLEncoder;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
+import mircoders.storage.DatabaseContent;
+import mircoders.storage.DatabaseMediafolder;
+import freemarker.template.SimpleHash;
+import freemarker.template.SimpleList;
 
 /*
  *  ServletModuleBilder -
  *  liefert HTML fuer Bilder
  *
- * @version $Id: ServletModuleUploadedMedia.java,v 1.13 2002/12/01 15:05:51 zapata Exp $
+ * @version $Id: ServletModuleUploadedMedia.java,v 1.20 2003/03/08 17:18:19 idfx Exp $
  * @author RK, the mir-coders group
  */
 
@@ -85,16 +85,33 @@ public abstract class ServletModuleUploadedMedia
   }
 
   public ServletModuleUploadedMedia() {
+    super();
     logger = new LoggerWrapper("ServletModule.UploadedMedia");
   }
 
   public void insert(HttpServletRequest req, HttpServletResponse res)
-          throws ServletModuleException, ServletModuleUserException {
+          throws ServletModuleExc, ServletModuleUserExc {
     try {
       EntityUsers user = _getUser(req);
-      MediaRequest mediaReq =  new MediaRequest(user.getId(), false, false);
+      MediaRequest mediaReq =  new MediaRequest(user.getId(), false);
       WebdbMultipartRequest mp = new WebdbMultipartRequest(req, (FileHandler)mediaReq);
       EntityList mediaList = mediaReq.getEntityList();
+      String articleid = (String) mp.getParameters().get("articleid");
+
+      if (articleid!=null) {
+        EntityContent entContent = (EntityContent) DatabaseContent.getInstance().selectById(articleid);
+
+        mediaList.rewind();
+
+        while (mediaList.hasNext()) {
+          entContent.attach( ( (EntityUploadedMedia) mediaList.next()).getId());
+        }
+        mediaList.rewind();
+
+        ((ServletModuleContent) ServletModuleContent.getInstance())._showObject(articleid, req, res);
+
+        return;
+      }
 
       SimpleHash mergeData = new SimpleHash();
       SimpleHash popups = new SimpleHash();
@@ -109,7 +126,7 @@ public abstract class ServletModuleUploadedMedia
       if (mediaList.hasNextBatch())
         mergeData.put("next", (new Integer(mediaList.getNextBatch())).toString());
       if (mediaList.hasPrevBatch())
-          mergeData.put("prev", (new Integer(mediaList.getPrevBatch())).toString());
+        mergeData.put("prev", (new Integer(mediaList.getPrevBatch())).toString());
       //fetch the popups
       popups.put("mediafolderPopupData", DatabaseMediafolder.getInstance().getPopupData());
       // raus damit
@@ -117,27 +134,31 @@ public abstract class ServletModuleUploadedMedia
     }
     catch (FileHandlerUserException e) {
       logger.error("ServletModuleUploadedMedia.insert: " + e.getMessage());
-      throw new ServletModuleUserException(e.getMessage());
+      throw new ServletModuleUserExc(e.getMessage());
     }
     catch (FileHandlerException e) {
-      throw new ServletModuleException(
-              "upload -- media handling exception " + e.toString());
+      throw new ServletModuleFailure("upload -- media handling exception " + e.toString(), e);
     }
-    catch (StorageObjectException e) {
-      throw new ServletModuleException("upload -- storageobjectexception "
-                                      + e.toString());
+    catch (StorageObjectFailure e) {
+      throw new ServletModuleFailure("upload -- storageobjectexception " + e.toString(), e);
     }
     catch (IOException e) {
-      throw new ServletModuleException("upload -- ioexception " + e.toString());
+      throw new ServletModuleFailure("upload -- ioexception " + e.toString(), e);
+    }
+    catch (PropertiesConfigExc e) {
+      throw new ServletModuleFailure("upload -- configexception " + e.toString(), e);
+    }
+    catch (Throwable t) {
+      throw new ServletModuleFailure("upload -- exception " + t.toString(), t);
     }
   }
 
-  public void update(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException {
+  public void update(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc {
 
     try {
       EntityUsers user = _getUser(req);
       WebdbMultipartRequest mp = new WebdbMultipartRequest(req, null);
-      HashMap parameters = mp.getParameters();
+      Map parameters = mp.getParameters();
 
       parameters.put("to_publisher", user.getId());
       parameters.put("is_produced", "0");
@@ -148,21 +169,14 @@ public abstract class ServletModuleUploadedMedia
       logger.debug("update: media ID = " + id);
       _edit(id, req, res);
     }
-    catch (IOException e) {
-      throw new ServletModuleException("upload -- ioexception " + e.toString());
-    }
-    catch (ModuleException e) {
-      throw new ServletModuleException("upload -- moduleexception " + e.toString());
-    }
-    catch (Exception e) {
-      throw new ServletModuleException("upload -- exception " + e.toString());
+    catch (Throwable e) {
+      throw new ServletModuleFailure("upload -- exception " + e.toString(), e);
     }
 
   }
 
 
-  public void list(HttpServletRequest req, HttpServletResponse res)
-          throws ServletModuleException {
+  public void list(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc {
     // Parameter auswerten
     SimpleHash mergeData = new SimpleHash();
     SimpleHash popups = new SimpleHash();
@@ -181,7 +195,7 @@ public abstract class ServletModuleUploadedMedia
     mergeData.put("offset", offset);
 
     String order = req.getParameter("order");
-    if (order == null) order = "webdb_lastchange desc";
+    if (order == null || order.equals("")) order = "webdb_lastchange desc";
 
     // if in connection mode to content
     String cid = req.getParameter("cid");
@@ -229,27 +243,28 @@ public abstract class ServletModuleUploadedMedia
 
       deliver(req, res, mergeData, popups, templateListString);
     }
-    catch (ModuleException e) {
-      throw new ServletModuleException(e.toString());
-    }
-    catch (Exception e) {
-      throw new ServletModuleException(e.toString());
+    catch (Throwable e) {
+      throw new ServletModuleFailure(e);
     }
   }
 
 
-  public void add(HttpServletRequest req, HttpServletResponse res)
-          throws ServletModuleException {
+  public void add(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc {
     try {
       SimpleHash mergeData = new SimpleHash();
-      mergeData.put("new", "1");
       SimpleHash popups = new SimpleHash();
-      popups.put("mediafolderPopupData", DatabaseMediafolder.getInstance().getPopupData());
-      String maxMedia = MirConfig.getProp("ServletModule.OpenIndy.MaxMediaUploadItems");
+      String maxMedia = MirPropertiesConfiguration.instance().getString("ServletModule.OpenIndy.MaxMediaUploadItems");
       String numOfMedia = req.getParameter("medianum");
-      if(numOfMedia==null||numOfMedia.equals("")){
+
+      mergeData.put("new", "1");
+      mergeData.put("articleid", req.getParameter("articleid"));
+
+      popups.put("mediafolderPopupData", DatabaseMediafolder.getInstance().getPopupData());
+
+      if (numOfMedia==null || numOfMedia.equals("")) {
         numOfMedia="1";
-      } else if(Integer.parseInt(numOfMedia) > Integer.parseInt(maxMedia)) {
+      }
+      else if(Integer.parseInt(numOfMedia) > Integer.parseInt(maxMedia)) {
         numOfMedia = maxMedia;
       }
 
@@ -262,19 +277,18 @@ public abstract class ServletModuleUploadedMedia
       mergeData.put("medianum",numOfMedia);
       mergeData.put("mediafields",mediaFields);
       deliver(req, res, mergeData, popups, templateObjektString);
-    } catch (Exception e) {
-      throw new ServletModuleException(e.toString());
+    }
+    catch (Exception e) {
+      throw new ServletModuleFailure(e);
     }
   }
 
-  public void edit(HttpServletRequest req, HttpServletResponse res)
-          throws ServletModuleException {
+  public void edit(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc {
     String idParam = req.getParameter("id");
     _edit(idParam, req, res);
   }
 
-  private void _edit(String idParam, HttpServletRequest req, HttpServletResponse res)
-          throws ServletModuleException {
+  private void _edit(String idParam, HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc {
     if (idParam != null && !idParam.equals("")) {
       try {
         SimpleHash popups = new SimpleHash();
@@ -282,15 +296,12 @@ public abstract class ServletModuleUploadedMedia
         deliver(req, res, mainModule.getById(idParam), popups,
                 templateObjektString);
       }
-      catch (ModuleException e) {
-        throw new ServletModuleException(e.toString());
-      }
-      catch (StorageObjectException e) {
-        throw new ServletModuleException(e.toString());
+      catch (Throwable e) {
+        throw new ServletModuleFailure(e);
       }
     }
     else {
-      throw new ServletModuleException("ServletmoduleUploadedMedia :: _edit without id");
+      throw new ServletModuleExc("ServletmoduleUploadedMedia :: _edit without id");
     }
   }
 
@@ -301,8 +312,7 @@ public abstract class ServletModuleUploadedMedia
     return (EntityUsers) session.getAttribute("login.uid");
   }
 
-  public void getMedia(HttpServletRequest req, HttpServletResponse res)
-    throws ServletModuleException
+  public void getMedia(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc
   {
     String idParam = req.getParameter("id");
     if (idParam!=null && !idParam.equals("")) {
@@ -311,8 +321,7 @@ public abstract class ServletModuleUploadedMedia
         Entity mediaType = ent.getMediaType();
         MirMedia mediaHandler;
 
-        ServletContext ctx =
-                    (ServletContext)MirConfig.getPropAsObject("ServletContext");
+        ServletContext ctx = MirPropertiesConfiguration.getContext();
         String fName = ent.getId()+"."+mediaType.getValue("name");
 
         mediaHandler = MediaHelper.getHandler(mediaType);
@@ -331,22 +340,15 @@ public abstract class ServletModuleUploadedMedia
         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());
+      catch (Throwable e) {
+        throw new ServletModuleFailure(e);
       }
     }
     else logger.error("id not specified.");
     // no exception allowed
   }
 
-  public void getIcon(HttpServletRequest req, HttpServletResponse res)
-    throws ServletModuleException
+  public void getIcon(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc
   {
     String idParam = req.getParameter("id");
     if (idParam!=null && !idParam.equals("")) {
@@ -355,8 +357,7 @@ public abstract class ServletModuleUploadedMedia
         Entity mediaType = ent.getMediaType();
         MirMedia mediaHandler;
 
-        ServletContext ctx =
-                    (ServletContext)MirConfig.getPropAsObject("ServletContext");
+        ServletContext ctx = MirPropertiesConfiguration.getContext();
         String fName = ent.getId()+"."+mediaType.getValue("name");
 
         mediaHandler = MediaHelper.getHandler(mediaType);
@@ -375,14 +376,8 @@ public abstract class ServletModuleUploadedMedia
         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());
+      catch (Throwable e) {
+        throw new ServletModuleFailure(e);
       }
     }
     else logger.error("getIcon: id not specified.");