package mircoders.entity.adapter;
+import java.util.*;
import mir.storage.*;
import mir.entity.*;
import mir.entity.adapter.*;
+import mir.media.*;
+import mir.util.*;
import mircoders.storage.*;
import mircoders.global.*;
+import mircoders.entity.*;
import mircoders.localizer.*;
public class ContentAdapterDefinition extends EntityAdapterDefinition {
public ContentAdapterDefinition() {
super();
- addDateField("date", "date");
+ addDBDateField("creationdate", "webdb_lastchange");
+ addDBDateField("changedate", "webdb_create");
+ addMirDateField("date", "date");
addCalculatedField("to_topics", new ContentToTopicsField());
addCalculatedField("to_comments", new ContentToCommentsField());
try {
addCalculatedField("to_media_images", new ContentToMediaField(
DatabaseImages.getInstance(), ImagesAdapterDefinition.getInstance()));
+ addCalculatedField("to_uploaded_media", new ContentToMediaField(
+ DatabaseUploadedMedia.getInstance(), UploadedMediaAdapterDefinition.getInstance()));
addCalculatedField("to_media_audio", new ContentToMediaField(
DatabaseAudio.getInstance(), AudioAdapterDefinition.getInstance()));
addCalculatedField("to_media_video", new ContentToMediaField(
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) {
+ EntityAdapter media;
+ Entity mediaType;
+ RewindableIterator iterator;
+ Map result;
+ MirMedia mediaHandler;
+ String tinyIcon;
+ String iconAlt;
-}
-
+ try {
+ iterator = (RewindableIterator) (anEntityAdapter.get("to_uploaded_media"));
+ iterator.rewind();
+
+ tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyText");
+ iconAlt = "Text";
+
+ if (iterator.hasNext()) {
+ media = (EntityAdapter) iterator.next();
+
+ mediaType = ((EntityUploadedMedia) (media.getEntity())).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();
+ }
-// String mirconf_extLinkName = MirConfig.getProp("Producer.ExtLinkName");
-// String mirconf_intLinkName = MirConfig.getProp("Producer.IntLinkName");
-// String mirconf_mailLinkName = MirConfig.getProp("Producer.MailLinkName");
-// String mirconf_imageRoot = MirConfig.getProp("Producer.ImageRoot");
-
-
-// if (field.equals("date_formatted"))
-// {
-// if (hasValueForField("date"))
-// returnField = StringUtil.webdbDate2readableDate(getValue("date"));
-// }
-// else if (field.equals("description_parsed"))
-// returnField = getDescriptionParsed();
-// else if (field.equals("description_sentence"))
-// returnField = getDescriptionSentence();
-// else if (field.equals("content_data_parsed"))
-// returnField = getContentDataParsed();
-
-/*
- else if (key.equals("to_media_icon")) {
- try {
- _entCache.put(key, getUploadedMediaForNewswire());
- return (TemplateModel)_entCache.get(key);
- }
- catch (Exception ex) {
- theLog.printWarning("-- getUploadedMediaForNewswire: could not fetch data " + ex.toString());
- throw new TemplateModelException(ex.toString());
}
}
-*/
-
-/*
- private boolean hasMedia() throws StorageObjectException
- {
- if (_hasMedia == null) {
- _hasMedia =
- new Boolean(DatabaseContentToMedia.getInstance().hasMedia(this));
- }
- return _hasMedia.booleanValue();
- }
-
- //######## @todo all of the following getBlahForContent should have
- // and optimized version where LIMIT=1 sql for list view.
- private EntityList getImagesForContent()
- throws StorageObjectException, TemplateModelException
- {
- if (hasMedia())
- return DatabaseContentToMedia.getInstance().getImages(this);
- else
- return null;
- }
+ catch (Throwable t) {
+ System.out.println("ContentToIconField: exception: " +t.getMessage());
+ t.printStackTrace(System.out);
+ throw new RuntimeException(t.getMessage());
+ }
- private EntityList getAudioForContent()
- throws StorageObjectException, TemplateModelException
- {
- if (hasMedia())
- return DatabaseContentToMedia.getInstance().getAudio(this) ;
- else
- return null;
- }
+ result = new HashMap();
+ result.put("tiny_icon", tinyIcon);
+ result.put("icon_alt", iconAlt);
- private EntityList getVideoForContent()
- throws StorageObjectException, TemplateModelException
- {
- if (hasMedia())
- return DatabaseContentToMedia.getInstance().getVideo(this) ;
- else
- return null;
+ return result;
+ }
}
+}
- private EntityList getOtherMediaForContent()
- throws StorageObjectException, TemplateModelException
- {
- if (hasMedia())
- return DatabaseContentToMedia.getInstance().getOther(this);
- else
- return null;
- }
-}
-*/
\ No newline at end of file