Package er.attachment.components

Source Code of er.attachment.components.ERAttachmentViewer

package er.attachment.components;

import com.webobjects.appserver.WOContext;

import er.attachment.components.viewers.AbstractERAttachmentViewer;
import er.attachment.components.viewers.ERAttachmentDefaultViewer;
import er.attachment.model.ERAttachment;
import er.attachment.utils.ERMimeType;
import er.extensions.foundation.ERXProperties;

/**
* <p>
* ERAttachmentViewer provides a way to drop in an embedded viewer for
* attachments.  Viewers can be specified with properties.  For example,
* if you want to define the viewer for PDF's, you can set
* er.attachment.mimeType.image/pdf.viewer=com.mine.PDFViewer or you can set
* er.attachment.mimeType.image/*.viewer=com.mine.DefaultImageViewer.  To
* override the default fallback viewer, set
* er.attachment.mimeType.default.viewer=com.mine.DefaultViewer.  If an
* attachment is unavailable (for instance, if it is in the queue to be
* sent to S3, but it's not uploaded yet), you can set
* er.attachment.mimeType.unavailable.viewer=com.mine.UnavailableViewer.
* </p>
* <p>
* There are defaults provided for several attachment types.
* </p>
* @binding attachment the attachment to display
* @binding configurationName (optional) the configuration name for this attachment (see top level documentation)
* @binding class (optional) the css class
* @binding id (optional) the html element id
* @binding style (optional) the embedded css style
* @binding width (optional) if displaying an image, sets the image width
* @binding height (optional) if displaying an image, sets the image height
*
* @property er.attachment.mimeType.[mimeType].viewer the class name of the viewer component for the given mime type
* @property er.attachment.mimeType.[globMimeType].viewer
* @property er.attachment.mimeType.unavailable.viewer
* @property er.attachment.mimeType.default.viewer
*
* @author mschrag
*/
public class ERAttachmentViewer extends AbstractERAttachmentViewer {
  /**
   * Do I need to update serialVersionUID?
   * See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the
   * <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a>
   */
  private static final long serialVersionUID = 1L;

  public ERAttachmentViewer(WOContext context) {
    super(context);
  }

  /**
   * @return the class name of the viewer to use for the given mime type.
   */
  public String viewerClassName() {
    String viewerClassName = null;

    ERAttachment attachment = attachment();
    if (attachment != null) {
      if (attachment.available().booleanValue()) {
        ERMimeType mimeType = attachment.erMimeType();
        if (mimeType != null) {
          viewerClassName = ERXProperties.stringForKey("er.attachment.mimeType." +  mimeType.mimeType() +".viewer");
          if (viewerClassName == null) {
            viewerClassName = ERXProperties.stringForKey("er.attachment.mimeType." +  mimeType.globMimeType().mimeType() +".viewer");
          }
        }
      }
      else {
        viewerClassName = ERXProperties.stringForKey("er.attachment.mimeType.unavailable.viewer");
      }
    }

    if (viewerClassName == null) {
      viewerClassName = ERXProperties.stringForKeyWithDefault("er.attachment.mimeType.default.viewer", ERAttachmentDefaultViewer.class.getName());
    }

    return viewerClassName;
  }
}
TOP

Related Classes of er.attachment.components.ERAttachmentViewer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.