1 53 54 package com.Yasna.forum.tags; 55 56 import java.io.*; 57 import java.util.*; 58 import javax.servlet.*; 59 import javax.servlet.jsp.*; 60 import javax.servlet.jsp.tagext.*; 61 import javax.servlet.http.*; 62 import com.Yasna.forum.*; 63 import com.Yasna.forum.tags.*; 64 65 68 public class ForumsLoopTag extends TagSupport implements BooleanTag 69 { 70 71 private GroupsLoopTag g = null; 72 private ForumGroup forumGroup; 73 private boolean hasForums; 74 private Iterator forumIterator; 75 private Forum forum; 76 77 public final int doStartTag() throws JspException 78 { 79 g = getParentGroup(); 80 forumGroup = g.getGroup(); 81 forumIterator = forumGroup.forums(); 82 hasForums = forumIterator.hasNext(); 83 if (hasForums) { 84 forum = (Forum) forumIterator.next(); 85 } 86 return EVAL_BODY_INCLUDE; 87 } 88 89 93 private GroupsLoopTag getParentGroup() { 94 GroupsLoopTag g = null; 95 try { 96 g = (GroupsLoopTag)this.findAncestorWithClass(this, 97 Class.forName("com.Yasna.forum.tags.GroupsLoopTag")); 98 } catch(Exception e) { 99 } 100 return g; 101 } 102 103 public final int doAfterBody() throws JspException 104 { 105 if (forumIterator.hasNext()) { 106 forum = (Forum) forumIterator.next(); 107 return EVAL_BODY_AGAIN; 108 } else { 109 return SKIP_BODY; 110 } 111 } 112 113 public final int doEndTag() throws JspException 114 { 115 return EVAL_PAGE; 116 } 117 118 public boolean getValue() { 119 return hasForums; 120 } 121 122 126 public Forum getForum() { 127 return forum; 128 } 129 130 } | Popular Tags |