From: zapata Date: Tue, 14 May 2002 00:09:40 +0000 (+0000) Subject: content.to_icon implemented X-Git-Tag: prexmlproducerconfig~81 X-Git-Url: http://erislabs.net/gitweb/?p=mir.git;a=commitdiff_plain;h=5f4fad0844fddc8555c150242ee36d7d851a44ed content.to_icon implemented --- diff --git a/source/mircoders/entity/adapter/ContentAdapterDefinition.java b/source/mircoders/entity/adapter/ContentAdapterDefinition.java index 1d8a8481..6abca53f 100755 --- a/source/mircoders/entity/adapter/ContentAdapterDefinition.java +++ b/source/mircoders/entity/adapter/ContentAdapterDefinition.java @@ -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; + } +*/ + }