KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > deprecated > taglibs > field > file > IfImageTag


1 package org.jahia.deprecated.taglibs.field.file;
2
3 import java.io.IOException JavaDoc;
4
5 import javax.servlet.ServletRequest JavaDoc;
6 import javax.servlet.jsp.JspWriter JavaDoc;
7 import javax.servlet.jsp.tagext.BodyContent JavaDoc;
8 import javax.servlet.jsp.tagext.BodyTagSupport JavaDoc;
9
10 import org.jahia.data.JahiaData;
11 import org.jahia.data.files.JahiaFileField;
12 import org.jahia.utils.JahiaConsole;
13
14
15
16 /**
17  * Class IfImageTag : checks if the enclosing FileFieldTag is an image
18  *
19  * @author Jerome Tamiotti
20  */

21 public class IfImageTag extends BodyTagSupport JavaDoc {
22
23
24     public int doAfterBody() {
25
26         ServletRequest JavaDoc request = pageContext.getRequest();
27         BodyContent JavaDoc body = getBodyContent();
28         try {
29             JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData");
30
31             // retrieves the enclosing file field
32
FileFieldTag fileTag = (FileFieldTag) findAncestorWithClass(this, FileFieldTag.class);
33             if (fileTag != null) {
34                 JahiaFileField fileField = fileTag.getFile();
35                 if (isImage(fileField)) {
36                     JspWriter JavaDoc out = body.getEnclosingWriter();
37                     out.print(body.getString());
38                 }
39             }
40         } catch (IOException JavaDoc ioe) {
41             JahiaConsole.println("IfImageTag: doAfterBody ", ioe.toString());
42         }
43         return SKIP_BODY;
44     }
45
46
47     private boolean isImage( JahiaFileField theFile ) {
48         if (theFile != null) {
49             if (theFile.getType().equals("")) {
50                 // not set yet, so test the default value of the tag
51
String JavaDoc name = theFile.getDownloadUrl();
52                 if (name != null) {
53                     name = name.toUpperCase();
54                     return ((name.indexOf("JPG") != -1) ||
55                             (name.indexOf("PNG") != -1) ||
56                             (name.indexOf("GIF") != -1) ||
57                             (name.indexOf("JPEG") != -1));
58                 }
59             } else {
60                 // the file field has already been set up
61
// so perform the real test
62
return theFile.getType().startsWith("image");
63             }
64         }
65         return false;
66     }
67
68 }
69
Popular Tags