001: /*
002: * This file is part of the Echo Web Application Framework (hereinafter "Echo").
003: * Copyright (C) 2002-2005 NextApp, Inc.
004: *
005: * Version: MPL 1.1/GPL 2.0/LGPL 2.1
006: *
007: * The contents of this file are subject to the Mozilla Public License Version
008: * 1.1 (the "License"); you may not use this file except in compliance with
009: * the License. You may obtain a copy of the License at
010: * http://www.mozilla.org/MPL/
011: *
012: * Software distributed under the License is distributed on an "AS IS" basis,
013: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
014: * for the specific language governing rights and limitations under the
015: * License.
016: *
017: * Alternatively, the contents of this file may be used under the terms of
018: * either the GNU General Public License Version 2 or later (the "GPL"), or
019: * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
020: * in which case the provisions of the GPL or the LGPL are applicable instead
021: * of those above. If you wish to allow use of your version of this file only
022: * under the terms of either the GPL or the LGPL, and not to allow others to
023: * use your version of this file under the terms of the MPL, indicate your
024: * decision by deleting the provisions above and replace them with the notice
025: * and other provisions required by the GPL or the LGPL. If you do not delete
026: * the provisions above, a recipient may use your version of this file under
027: * the terms of any one of the MPL, the GPL or the LGPL.
028: */
029:
030: package nextapp.echo2.app;
031:
032: /**
033: * A reference to an image that may be retrieved through an HTTP request.
034: */
035: public class HttpImageReference implements ImageReference {
036:
037: private String uri;
038: private Extent width, height;
039: private String id;
040:
041: /**
042: * Creates a reference to an image at the specified URI of unknown size.
043: *
044: * @param uri a URI from which the image data may be obtained
045: */
046: public HttpImageReference(String uri) {
047: this (uri, null, null);
048: }
049:
050: /**
051: * Creates a reference to an image at the specified URI of the given width
052: * and height. If the image is not of the given width and height, it will
053: * be scaled to the given width and height.
054: *
055: * @param uri a URI from which the image data may be obtained
056: * @param width The width at which to render the image
057: * @param height The height at which to render the image
058: */
059: public HttpImageReference(String uri, Extent width, Extent height) {
060: super ();
061: this .uri = uri;
062: this .width = width;
063: this .height = height;
064: id = ApplicationInstance.generateSystemId();
065: }
066:
067: /**
068: * @see java.lang.Object#equals(java.lang.Object)
069: */
070: public boolean equals(Object o) {
071: if (!(o instanceof HttpImageReference)) {
072: return false;
073: }
074: HttpImageReference that = (HttpImageReference) o;
075: if (!(this .uri == that.uri || (this .uri != null && this .uri
076: .equals(that.uri)))) {
077: return false;
078: }
079: if (!(this .width == that.width || (this .width != null && this .width
080: .equals(that.width)))) {
081: return false;
082: }
083: if (!(this .height == that.height || (this .height != null && this .height
084: .equals(that.height)))) {
085: return false;
086: }
087: return true;
088: }
089:
090: /**
091: * @see nextapp.echo2.app.ImageReference#getHeight()
092: */
093: public Extent getHeight() {
094: return height;
095: }
096:
097: /**
098: * @see nextapp.echo2.app.RenderIdSupport#getRenderId()
099: */
100: public String getRenderId() {
101: return id;
102: }
103:
104: /**
105: * Returns the URI from which the image may be obtained.
106: *
107: * @return the URI of the image
108: */
109: public String getUri() {
110: return uri;
111: }
112:
113: /**
114: * @see nextapp.echo2.app.ImageReference#getWidth()
115: */
116: public Extent getWidth() {
117: return width;
118: }
119: }
|