001 /* ===========================================================
002 * JFreeChart : a free chart library for the Java(tm) platform
003 * ===========================================================
004 *
005 * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
006 *
007 * Project Info: http://www.jfree.org/jfreechart/index.html
008 *
009 * This library is free software; you can redistribute it and/or modify it
010 * under the terms of the GNU Lesser General Public License as published by
011 * the Free Software Foundation; either version 2.1 of the License, or
012 * (at your option) any later version.
013 *
014 * This library is distributed in the hope that it will be useful, but
015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
017 * License for more details.
018 *
019 * You should have received a copy of the GNU Lesser General Public
020 * License along with this library; if not, write to the Free Software
021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
022 * USA.
023 *
024 * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
025 * in the United States and other countries.]
026 *
027 * -------------------
028 * AxisCollection.java
029 * -------------------
030 * (C) Copyright 2003-2005, by Object Refinery Limited.
031 *
032 * Original Author: David Gilbert (for Object Refinery Limited);
033 * Contributor(s): -;
034 *
035 * $Id: AxisCollection.java,v 1.2.2.1 2005/10/25 20:37:34 mungady Exp $
036 *
037 * Changes
038 * -------
039 * 03-Nov-2003 : Added standard header (DG);
040 *
041 */
042
043 package org.jfree.chart.axis;
044
045 import java.util.List;
046
047 import org.jfree.ui.RectangleEdge;
048
049 /**
050 * A collection of axes that have been assigned to the TOP, BOTTOM, LEFT or
051 * RIGHT of a chart. This class is used internally by JFreeChart, you won't
052 * normally need to use it yourself.
053 */
054 public class AxisCollection {
055
056 /** The axes that need to be drawn at the top of the plot area. */
057 private List axesAtTop;
058
059 /** The axes that need to be drawn at the bottom of the plot area. */
060 private List axesAtBottom;
061
062 /** The axes that need to be drawn at the left of the plot area. */
063 private List axesAtLeft;
064
065 /** The axes that need to be drawn at the right of the plot area. */
066 private List axesAtRight;
067
068 /**
069 * Creates a new empty collection.
070 */
071 public AxisCollection() {
072 this.axesAtTop = new java.util.ArrayList();
073 this.axesAtBottom = new java.util.ArrayList();
074 this.axesAtLeft = new java.util.ArrayList();
075 this.axesAtRight = new java.util.ArrayList();
076 }
077
078 /**
079 * Returns a list of the axes (if any) that need to be drawn at the top of
080 * the plot area.
081 *
082 * @return A list of axes.
083 */
084 public List getAxesAtTop() {
085 return this.axesAtTop;
086 }
087
088 /**
089 * Returns a list of the axes (if any) that need to be drawn at the bottom
090 * of the plot area.
091 *
092 * @return A list of axes.
093 */
094 public List getAxesAtBottom() {
095 return this.axesAtBottom;
096 }
097
098 /**
099 * Returns a list of the axes (if any) that need to be drawn at the left
100 * of the plot area.
101 *
102 * @return A list of axes.
103 */
104 public List getAxesAtLeft() {
105 return this.axesAtLeft;
106 }
107
108 /**
109 * Returns a list of the axes (if any) that need to be drawn at the right
110 * of the plot area.
111 *
112 * @return A list of axes.
113 */
114 public List getAxesAtRight() {
115 return this.axesAtRight;
116 }
117
118 /**
119 * Adds an axis to the collection.
120 *
121 * @param axis the axis (<code>null</code> not permitted).
122 * @param edge the edge of the plot that the axis should be drawn on
123 * (<code>null</code> not permitted).
124 */
125 public void add(Axis axis, RectangleEdge edge) {
126 if (axis == null) {
127 throw new IllegalArgumentException("Null 'axis' argument.");
128 }
129 if (edge == null) {
130 throw new IllegalArgumentException("Null 'edge' argument.");
131 }
132 if (edge == RectangleEdge.TOP) {
133 this.axesAtTop.add(axis);
134 }
135 else if (edge == RectangleEdge.BOTTOM) {
136 this.axesAtBottom.add(axis);
137 }
138 else if (edge == RectangleEdge.LEFT) {
139 this.axesAtLeft.add(axis);
140 }
141 else if (edge == RectangleEdge.RIGHT) {
142 this.axesAtRight.add(axis);
143 }
144 }
145
146 }