KickJava   Java API By Example, From Geeks To Geeks.

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


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 IfNotImageTag : displays the tag body if the enclosing FileFieldTag is not an image
18  *
19  * @author Jerome Tamiotti
20  */

21 public class IfNotImageTag 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             // retrieves the enclosing file field
31
FileFieldTag fileTag = (FileFieldTag) findAncestorWithClass(this, FileFieldTag.class);
32             if (fileTag != null) {
33                 JahiaFileField fileField = fileTag.getFile();
34                 if (!isImage(fileField)) {
35                     JspWriter JavaDoc out = body.getEnclosingWriter();
36                     out.print(body.getString());
37                 }
38             }
39         } catch (IOException JavaDoc ioe) {
40             JahiaConsole.println("IfNotImageTag: doAfterBody ", ioe.toString());
41         }
42         return SKIP_BODY;
43     }
44
45
46     private boolean isImage( JahiaFileField theFile ) {
47         if (theFile != null) {
48             if (theFile.getType().equals("")) {
49                 // not set yet, so test the default value of the tag
50
String JavaDoc name = theFile.getDownloadUrl();
51                 if (name != null) {
52                     name = name.toUpperCase();
53                     return ((name.indexOf("JPG") != -1) ||
54                             (name.indexOf("PNG") != -1) ||
55                             (name.indexOf("GIF") != -1) ||
56                             (name.indexOf("JPEG") != -1));
57                 }
58             } else {
59                 // the file field has already been set up
60
// so perform the real test
61
return theFile.getType().startsWith("image");
62             }
63         }
64         return false;
65     }
66
67 }
68
Popular Tags