001: /*
002: * CollectionListTag.java
003: *
004: * Version: $Revision: 1327 $
005: *
006: * Date: $Date: 2005-10-14 01:56:22 -0500 (Fri, 14 Oct 2005) $
007: *
008: * Copyright (c) 2002-2005, Hewlett-Packard Company and Massachusetts
009: * Institute of Technology. All rights reserved.
010: *
011: * Redistribution and use in source and binary forms, with or without
012: * modification, are permitted provided that the following conditions are
013: * met:
014: *
015: * - Redistributions of source code must retain the above copyright
016: * notice, this list of conditions and the following disclaimer.
017: *
018: * - Redistributions in binary form must reproduce the above copyright
019: * notice, this list of conditions and the following disclaimer in the
020: * documentation and/or other materials provided with the distribution.
021: *
022: * - Neither the name of the Hewlett-Packard Company nor the name of the
023: * Massachusetts Institute of Technology nor the names of their
024: * contributors may be used to endorse or promote products derived from
025: * this software without specific prior written permission.
026: *
027: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
028: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
029: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
030: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
031: * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
032: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
033: * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
034: * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
035: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
036: * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
037: * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
038: * DAMAGE.
039: */
040: package org.dspace.app.webui.jsptag;
041:
042: import java.io.IOException;
043:
044: import javax.servlet.http.HttpServletRequest;
045: import javax.servlet.jsp.JspException;
046: import javax.servlet.jsp.JspWriter;
047: import javax.servlet.jsp.jstl.fmt.LocaleSupport;
048: import javax.servlet.jsp.tagext.TagSupport;
049:
050: import org.dspace.content.Collection;
051:
052: /**
053: * Tag for display a list of collections
054: *
055: * @author Robert Tansley
056: * @version $Revision: 1327 $
057: */
058: public class CollectionListTag extends TagSupport {
059: /** Collections to display */
060: private Collection[] collections;
061:
062: public CollectionListTag() {
063: super ();
064: }
065:
066: public int doStartTag() throws JspException {
067: JspWriter out = pageContext.getOut();
068:
069: try {
070: out
071: .println("<table align=\"center\" class=\"miscTable\" title=\"Collection List\">");
072:
073: // Write column headings
074: out
075: .print("<tr><th id=\"t4\" class=\"oddRowOddCol\">"
076: + LocaleSupport
077: .getLocalizedMessage(pageContext,
078: "org.dspace.app.webui.jsptag.CollectionListTag.collectionName")
079: + "</th></tr>");
080:
081: // Row: toggles between Odd and Even
082: String row = "even";
083:
084: for (int i = 0; i < collections.length; i++) {
085: // name
086: String name = collections[i].getMetadata("name");
087:
088: // first and only column is 'name'
089: out.print("<tr><td headers=\"t4\" class=\"" + row
090: + "RowEvenCol\">");
091: out.print("<a href=\"");
092:
093: HttpServletRequest hrq = (HttpServletRequest) pageContext
094: .getRequest();
095: out.print(hrq.getContextPath() + "/handle/");
096: out.print(collections[i].getHandle());
097: out.print("\">");
098: out.print(name);
099: out.print("</a>");
100:
101: out.println("</td></tr>");
102:
103: row = (row.equals("odd") ? "even" : "odd");
104: }
105:
106: out.println("</table>");
107: } catch (IOException ie) {
108: throw new JspException(ie);
109: }
110:
111: return SKIP_BODY;
112: }
113:
114: /**
115: * Get the collections to list
116: *
117: * @return the collections
118: */
119: public Collection[] getCollections() {
120: return collections;
121: }
122:
123: /**
124: * Set the collections to list
125: *
126: * @param collectionsIn
127: * the collections
128: */
129: public void setCollections(Collection[] collectionsIn) {
130: collections = collectionsIn;
131: }
132:
133: public void release() {
134: collections = null;
135: }
136: }
|