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: import java.io.Serializable;
033:
034: /**
035: * Describes how an image should 'fill' a particular component or region of
036: * the user interface. Includes information about the image itself, its
037: * positioning, repetition, and scrolling.
038: */
039: public class FillImage implements Serializable {
040:
041: public static final int NO_REPEAT = 0;
042: public static final int REPEAT_HORIZONTAL = 1;
043: public static final int REPEAT_VERTICAL = 2;
044: public static final int REPEAT = 3;
045:
046: private ImageReference image;
047: private Extent horizontalOffset;
048: private Extent verticalOffset;
049: private int repeat;
050:
051: /**
052: * Creates a new <code>FillImage</code> with no horizontal/vertical
053: * offset that scrolls with content and repeats both horizontally and
054: * vertically.
055: *
056: * @param image the <code>ImageReference</code> to be displayed in the
057: * fill
058: */
059: public FillImage(ImageReference image) {
060: this (image, null, null, REPEAT);
061: }
062:
063: /**
064: * Creates a new <code>FillImage</code>.
065: *
066: * @param image the <code>ImageReference</code> to be displayed in the
067: * fill
068: * @param horizontalOffset the horizontal offset of the fill image:
069: * Positive values indicate an offset from the left side of the
070: * region.
071: * Negative values indicate an offset from the right side of the
072: * region.
073: * Both fixed and percentage units are supported.
074: * @param verticalOffset the vertical offset of the fill image:
075: * Positive values indicate an offset from the top of the region.
076: * Negative values indicate an offset from the bottom of the region.
077: * Both fixed and percentage units are supported.
078: * @param repeat the repeat mode of the image, one of the following values:
079: * <ul>
080: * <li><code>NO_REPEAT</code></li>
081: * <li><code>REPEAT_HORIZONTAL</code></li>
082: * <li><code>REPEAT_VERTICAL</code></li>
083: * <li><code>REPEAT</code> (the default)</li>
084: * </ul>
085: */
086: public FillImage(ImageReference image, Extent horizontalOffset,
087: Extent verticalOffset, int repeat) {
088: super ();
089: this .image = image;
090: this .horizontalOffset = horizontalOffset;
091: this .verticalOffset = verticalOffset;
092: this .repeat = repeat;
093: }
094:
095: /**
096: * @see java.lang.Object#equals(java.lang.Object)
097: */
098: public boolean equals(Object o) {
099: if (!(o instanceof FillImage)) {
100: return false;
101: }
102: FillImage that = (FillImage) o;
103: if (this .repeat != that.repeat) {
104: return false;
105: }
106: if (!(this .image == that.image || (this .image != null && this .image
107: .equals(that.image)))) {
108: return false;
109: }
110: if (!(this .horizontalOffset == that.horizontalOffset || (this .horizontalOffset != null && this .horizontalOffset
111: .equals(that.horizontalOffset)))) {
112: return false;
113: }
114: if (!(this .verticalOffset == that.verticalOffset || (this .verticalOffset != null && this .verticalOffset
115: .equals(that.verticalOffset)))) {
116: return false;
117: }
118: return true;
119: }
120:
121: /**
122: * Returns the horizontal offset of the fill image.
123: * Positive values indicate an offset from the left side of the region.
124: * Negative values indicate an offset from the right side of the region.
125: *
126: * @return the horizontal offset
127: */
128: public Extent getHorizontalOffset() {
129: return horizontalOffset;
130: }
131:
132: /**
133: * Returns the fill image.
134: *
135: * @return the fill image
136: */
137: public ImageReference getImage() {
138: return image;
139: }
140:
141: /**
142: * Returns the repetition mode of the image.
143: *
144: * @return the repetition mode, one of the following values:
145: * <ul>
146: * <li><code>NO_REPEAT</code></li>
147: * <li><code>REPEAT_HORIZONTAL</code></li>
148: * <li><code>REPEAT_VERTICAL</code></li>
149: * <li><code>REPEAT</code> (the default)</li>
150: * </ul>
151: */
152: public int getRepeat() {
153: return repeat;
154: }
155:
156: /**
157: * Returns the vertical offset of the fill image.
158: * Positive values indicate an offset from the top of the region.
159: * Negative values indicate an offset from the bottom of the region.
160: *
161: * @return the vertical offset
162: */
163: public Extent getVerticalOffset() {
164: return verticalOffset;
165: }
166: }
|