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 {
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());
}
}
+ 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;
+ }
+*/
+
}