content.to_icon implemented
authorzapata <zapata>
Tue, 14 May 2002 00:09:40 +0000 (00:09 +0000)
committerzapata <zapata>
Tue, 14 May 2002 00:09:40 +0000 (00:09 +0000)
source/mircoders/entity/adapter/ContentAdapterDefinition.java

index 1d8a848..6abca53 100755 (executable)
@@ -1,10 +1,13 @@
 package mircoders.entity.adapter;
 
+import java.util.*;
 import mir.storage.*;
 import mir.entity.*;
 import mir.entity.adapter.*;
+import mir.media.*;
 import mircoders.storage.*;
 import mircoders.global.*;
+import mircoders.entity.*;
 import mircoders.localizer.*;
 
 public class ContentAdapterDefinition extends EntityAdapterDefinition {
@@ -34,8 +37,7 @@ public class ContentAdapterDefinition extends EntityAdapterDefinition {
           DatabaseVideo.getInstance(), VideoAdapterDefinition.getInstance()));
       addCalculatedField("to_media_other", new ContentToMediaField(
           DatabaseOther.getInstance(), OtherAdapterDefinition.getInstance()));
-      addCalculatedField("to_media_icon", new ContentToMediaField(
-          DatabaseUploadedMedia.getInstance(), UploadedMediaAdapterDefinition.getInstance()));
+      addCalculatedField("to_media_icon", new ContentToIconField());
     }
     catch (Throwable t) {
       System.out.println(t.getMessage());
@@ -116,6 +118,121 @@ public class ContentAdapterDefinition extends EntityAdapterDefinition {
     }
   }
 
+  private class ContentToIconField implements CalculatedField {
+    public Object getValue(EntityAdapter anEntityAdapter) {
+      EntityUploadedMedia uploadedMedia;
+      Entity mediaType;
+      EntityBrowser browser;
+      Map result;
+      MirMedia mediaHandler;
+      String tinyIcon;
+      String iconAlt;
+
+
+      try {
+        browser =
+            new EntityBrowser(
+                DatabaseUploadedMedia.getInstance(),
+                "exists (select * from content_x_media where content_id="+anEntityAdapter.get("id")+" and media_id=id)",
+                "id",
+                1);
+
+        tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyText");
+        iconAlt = "Text";
+
+        if (browser.hasNext()) {
+          uploadedMedia = (EntityUploadedMedia) browser.next();
+
+          mediaType = uploadedMedia.getMediaType();
+          mediaHandler = MediaHelper.getHandler( mediaType );
+
+          if (mediaHandler.isVideo()) {
+            tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyVideo");
+            iconAlt = "Video";
+          }
+          else if (mediaHandler.isAudio()) {
+            tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyAudio");
+            iconAlt = "Audio";
+          }
+          else if (mediaHandler.isImage()) {
+            tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyImage");
+            iconAlt = "Image";
+          }
+          else {
+            tinyIcon = mediaHandler.getTinyIcon();
+            iconAlt = mediaHandler.getIconAlt();
+          }
+        }
+      }
+      catch (Throwable t) {
+        throw new RuntimeException(t.getMessage());
+      }
+
+      result = new HashMap();
+      result.put("tiny_icon", tinyIcon);
+      result.put("icon_alt", iconAlt);
+
+      return result;
+    }
+  }
+
+
+/*
+  // @todo this needs to optimized. expensive SQL
+  private SimpleHash getUploadedMediaForNewswire()
+    throws StorageObjectException, TemplateModelException
+  {
+    // fetching/setting the images
+    // return to_media_icons
+    String        tinyIcon = null, iconAlt = null;
+    MirMedia      mediaHandler = null;
+    EntityUploadedMedia uploadedMedia;
+    Entity        mediaType;
+    SimpleHash    returnHash = new SimpleHash();
+
+    EntityList upMediaEntityList =
+                    DatabaseContentToMedia.getInstance().getUploadedMedia(this);
+    if (upMediaEntityList!=null && upMediaEntityList.getCount()>=1) {
+
+      for (int n=0; n < upMediaEntityList.size();n++) {
+        uploadedMedia = (EntityUploadedMedia)upMediaEntityList.elementAt(n);
+        mediaType = uploadedMedia.getMediaType();
+        try {
+          mediaHandler = MediaHelper.getHandler( mediaType );
+        } catch (MirMediaException ex) {
+          throw new TemplateModelException(ex.toString());
+        }
+        //the "best" media type to show
+        if (mediaHandler.isVideo()) {
+          tinyIcon = MirConfig.getProp("Producer.Icon.TinyVideo");
+          iconAlt = "Video";
+          break;
+        } else if (mediaHandler.isAudio()) {
+          tinyIcon = MirConfig.getProp("Producer.Icon.TinyAudio");
+          iconAlt = "Audio";
+        } else if (tinyIcon == null && !mediaHandler.isImage()) {
+          tinyIcon = mediaHandler.getTinyIcon();
+          iconAlt = mediaHandler.getIconAlt();
+        }
+
+      }
+      //it only has image(s)
+      if (tinyIcon == null) {
+        tinyIcon = MirConfig.getProp("Producer.Icon.TinyImage");
+        iconAlt = "Image";
+      }
+    // uploadedMedia Entity list is empty.
+    // we only have text
+    } else {
+      tinyIcon = MirConfig.getProp("Producer.Icon.TinyText");
+      iconAlt = "Text";
+    }
+    returnHash.put("tiny_icon", mirconf_imageRoot+"/"+tinyIcon);
+    returnHash.put("icon_alt", iconAlt);
+    return returnHash;
+  }
+*/
+
 
 }