1 package de.jwi.jgallery.tags; 2 3 24 25 import java.io.IOException ; 26 27 import javax.servlet.jsp.JspTagException ; 28 import javax.servlet.jsp.tagext.BodyContent ; 29 import javax.servlet.jsp.tagext.BodyTagSupport ; 30 import javax.servlet.jsp.tagext.Tag ; 31 32 import de.jwi.jgallery.GalleryException; 33 import de.jwi.jgallery.Image; 34 35 40 public class ColIteratorTag extends BodyTagSupport 41 { 42 43 public static final String CURRENTIMAGE = "image"; 44 45 private int colsLeft; 46 47 private RowIteratorTag rowIteratorTag; 48 49 public int doStartTag() throws JspTagException 50 { 51 Tag parent = getParent(); 52 53 if ((null == parent) || (!(parent instanceof RowIteratorTag))) { throw new JspTagException ( 54 "colIterator tag not within rowIterator tag"); } 55 rowIteratorTag = (RowIteratorTag) parent; 56 colsLeft = rowIteratorTag.getColsLeft(); 57 if (colsLeft > 0) 58 { 59 Image currentImage = null; 60 colsLeft--; 61 62 try 63 { 64 currentImage = rowIteratorTag.getNextImage(); 65 pageContext.getRequest().setAttribute(CURRENTIMAGE, currentImage); 66 } 67 catch (GalleryException e) 68 { 69 throw new JspTagException (e.getMessage()); 70 } 71 72 return (EVAL_BODY_AGAIN); 73 } 74 else 75 { 76 return SKIP_BODY; 77 } 78 } 79 80 public int doAfterBody() throws JspTagException 81 { 82 BodyContent body = getBodyContent(); 83 try 84 { 85 body.writeOut(getPreviousOut()); 86 } 87 catch (IOException e) 88 { 89 throw new JspTagException ("IterationTag: " + e.getMessage()); 90 } 91 92 body.clearBody(); 94 if (colsLeft > 0) 95 { 96 colsLeft--; 97 try 98 { 99 Image currentImage = rowIteratorTag.getNextImage(); 100 pageContext.getRequest().setAttribute(CURRENTIMAGE, 101 currentImage); 102 } 103 catch (GalleryException e) 104 { 105 throw new JspTagException (e.getMessage()); 106 } 107 return (EVAL_BODY_AGAIN); 108 } 109 else 110 { 111 return SKIP_BODY; 112 } 113 } 114 } 115 | Popular Tags |