KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > roller > presentation > bookmarks > tags > ViewBookmarksTag


1 package org.roller.presentation.bookmarks.tags;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.roller.model.BookmarkManager;
6 import org.roller.pojos.BookmarkComparator;
7 import org.roller.pojos.BookmarkData;
8 import org.roller.pojos.FolderData;
9 import org.roller.pojos.UserData;
10 import org.roller.presentation.RollerContext;
11 import org.roller.presentation.RollerRequest;
12 import org.roller.util.Utilities;
13
14 import java.io.IOException JavaDoc;
15 import java.io.PrintWriter JavaDoc;
16 import java.net.MalformedURLException JavaDoc;
17 import java.util.Collection JavaDoc;
18 import java.util.Enumeration JavaDoc;
19 import java.util.Hashtable JavaDoc;
20 import java.util.Iterator JavaDoc;
21 import java.util.List JavaDoc;
22 import java.util.Set JavaDoc;
23 import java.util.Vector JavaDoc;
24
25 import javax.servlet.http.HttpServletRequest JavaDoc;
26 import javax.servlet.jsp.JspException JavaDoc;
27 import javax.servlet.jsp.PageContext JavaDoc;
28 import javax.servlet.jsp.tagext.Tag JavaDoc;
29
30
31 /**
32  * @deprecated Is this class even in use anymore? -Lance
33  *
34  * <p>Displays a folder of bookmarks or a table that shows all folders.
35  * If the folderName property is set then this tag will display the bookmarks
36  * in that folder, separated by BR tag line breaks. If the folderName
37  * property is not set, this tag will display a table of bookmarks.
38  * </p>
39  * <p>The bookmarks table display uses the Folder Column and Row values
40  * to position the Folders in a table. The bookmarks within each folder
41  * are ordered using the Bookmark Priority value. A bookmark's HREF tag
42  * is given a CSS class of rBookmark_N where N is the Bookmark's Weight value.
43  * </p>
44  * @jsp.tag name="ViewBookmarks"
45  */

46 public class ViewBookmarksTag extends org.roller.presentation.tags.HybridTag
47 {
48     static final long serialVersionUID = -4357415994168654686L;
49     
50     private static Log mLogger =
51        LogFactory.getFactory().getInstance(ViewBookmarksTag.class);
52
53     /** @jsp.attribute */
54     public String JavaDoc getFolderName() { return mFolderName; }
55     public void setFolderName(String JavaDoc v) { mFolderName = v; }
56     private String JavaDoc mFolderName = null;
57
58     /** @jsp.attribute */
59     public String JavaDoc getTitle() { return mTitle; }
60     public void setTitle(String JavaDoc v) { mTitle = v; }
61     private String JavaDoc mTitle = null;
62
63     /** @jsp.attribute */
64     public boolean getShowFolderName() { return mShowFolderName; }
65     public void setShowFolderName(boolean v) { mShowFolderName = v; }
66     private boolean mShowFolderName = true;
67
68     /** @jsp.attribute */
69     public boolean getExpandingFolder() { return mExpandingFolder; }
70     public void setExpandingFolder(boolean v) { mExpandingFolder = v; }
71     private boolean mExpandingFolder = false;
72     
73     //------------------------------------------------------------------------
74

75     public String JavaDoc view( String JavaDoc folderName, String JavaDoc title )
76     {
77         mFolderName = folderName;
78         mTitle = title;
79         return emit();
80     }
81
82     public String JavaDoc view( String JavaDoc folderName, boolean showFolderName )
83     {
84         mFolderName = folderName;
85         mShowFolderName = showFolderName;
86         return emit();
87     }
88
89     public String JavaDoc view( String JavaDoc folderName, boolean showFolderName, boolean expandingFolder )
90     {
91         mFolderName = folderName;
92         mShowFolderName = showFolderName;
93         mExpandingFolder = expandingFolder;
94         return emit();
95     }
96     
97     //-------------------------------------------------------------
98
/**
99      * Process start tag
100      * @return EVAL_SKIP_BODY
101      */

102     public int doStartTag( PrintWriter JavaDoc pw ) throws JspException JavaDoc
103     {
104         try
105         {
106             HttpServletRequest JavaDoc req =
107                 (HttpServletRequest JavaDoc)pageContext.getRequest();
108             RollerRequest rreq = RollerRequest.getRollerRequest(req);
109             BookmarkManager bookmarkMgr =
110                 rreq.getRoller().getBookmarkManager();
111             UserData user = rreq.getUser();
112
113             FolderData fd = bookmarkMgr.getFolder(
114                 rreq.getWebsite(), mFolderName);
115
116             if ( fd == null )
117             {
118                 pw.print("<span class=\"error\">");
119                 pw.print("Error fetching folder named "+mFolderName);
120                 pw.print("</span>");
121                 return Tag.SKIP_BODY;
122             }
123             emitFolderHTML( pw, pageContext, fd, user );
124             return Tag.SKIP_BODY;
125         }
126         catch (Exception JavaDoc e)
127         {
128             mLogger.error("Exception",e);
129             throw new JspException JavaDoc(
130                 e.getClass().toString()+": "+e.getMessage(),e);
131         }
132     }
133
134     //------------------------------------------------------------------------
135
public void emitBookmarkHTML( PrintWriter JavaDoc pw, PageContext JavaDoc ctx,
136         BookmarkData bookmark, UserData user )
137         throws IOException JavaDoc, MalformedURLException JavaDoc
138     {
139         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc)ctx.getRequest();
140         String JavaDoc cpath = request.getContextPath();
141
142         String JavaDoc resourcePath = request.getContextPath()
143                 + RollerContext.getUploadPath(pageContext.getServletContext())
144                     + "/" + user.getUserName();
145
146         if ( bookmark.getImage()!=null
147          && !bookmark.getImage().trim().equals("") )
148         {
149             pw.print("<a HREF=\""+bookmark.getUrl()+"\">");
150             pw.println("<img SRC=\""
151                 + resourcePath + "/" + bookmark.getImage() + "\" "
152                 + "alt=\"" + bookmark.getName() + "\" /> " );
153             pw.println("</a><br />");
154         }
155         else if ( bookmark.getFeedUrl()!=null
156               && !bookmark.getFeedUrl().trim().equals("") )
157         {
158             pw.print("<a class=\"rBookmark\" HREF=\""+bookmark.getUrl()+"\"");
159             if ( !bookmark.getDescription().trim().equals("") )
160             {
161                 pw.print(" title=\""+bookmark.getDescription()+"\"");
162             }
163             pw.print(" >");
164             pw.println( bookmark.getName()+"</a>");
165
166             pw.println( "<a HREF=\""+bookmark.getFeedUrl()+"\">" );
167             pw.print ( "<img SRC=\""+cpath+"/images/smrssbadge.gif\" " );
168             pw.println( "alt=\"URL of site's RSS feed\"" );
169             pw.println( "class=\"smrssbadge\" /></a>" );
170
171             pw.println( "<br />" );
172         }
173         else
174         {
175             pw.print( "<a HREF=\"" );
176             pw.print( bookmark.getUrl() );
177             pw.print( "\" " );
178             pw.print( "class=\"rBookmark" );
179             pw.print( bookmark.getWeight() );
180             pw.print( "\" " );
181             pw.print( "title=\"" );
182             pw.print( bookmark.getDescription() );
183             pw.print( "\" >" );
184             pw.print( bookmark.getName() );
185             pw.println( "</a><br />" );
186         }
187     }
188
189     //------------------------------------------------------------------------
190
public void emitFolderHTML( PrintWriter JavaDoc pw, PageContext JavaDoc ctx,
191         FolderData folder, UserData user )
192         throws IOException JavaDoc, MalformedURLException JavaDoc
193     {
194         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc)ctx.getRequest();
195         String JavaDoc cpath = request.getContextPath();
196         // replace spaces with underscores
197
String JavaDoc divId = Utilities.stringReplace( folder.getName(), " ", "_" );
198         // remove single quotes to prevent javascript errors
199
divId = Utilities.stringReplace( divId, "'", "" );
200         
201         if ( mShowFolderName && !mExpandingFolder )
202         {
203             pw.println( "<div class=\"rFolder\">"+folder.getName()+"</div>" );
204         }
205
206         if ( mShowFolderName && mExpandingFolder )
207         {
208             pw.print( "<div class=\"rFolder\"><a HREF=\"javascript:" );
209             pw.print( "toggleFolder('"+divId+"')\"><span id=\"i"+divId+"\">" );
210             pw.print( "+</span> "+folder.getName()+"</a></div>" );
211             pw.println( "<div id=\""+divId+"\" style=\"display: none\">" );
212         }
213         
214         Collection JavaDoc bookmarks = folder.getBookmarks();
215         //java.util.Collections.sort( bookmarks, new BookmarkComparator() );
216
Iterator JavaDoc iter = bookmarks.iterator();
217         while ( iter.hasNext() )
218         {
219             BookmarkData bookmark = (BookmarkData)iter.next();
220             emitBookmarkHTML( pw, ctx, bookmark, user );
221         }
222         
223         if (mShowFolderName && mExpandingFolder)
224         {
225             pw.println( "</div>" );
226             pw.println( "<script type=\"text/javascript\">" );
227             pw.println( "<!--" );
228             pw.println( " folderPreference('"+divId+"');" );
229             pw.println( "// -->");
230             pw.println( "</script>" );
231         }
232     }
233 }
234
235
Popular Tags