KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > deprecated > taglibs > button > UpdateFieldButtonTag


1 package org.jahia.deprecated.taglibs.button;
2
3 import javax.servlet.jsp.JspException JavaDoc;
4
5 import org.jahia.data.JahiaData;
6 import org.jahia.data.fields.JahiaField;
7 import org.jahia.exceptions.JahiaException;
8 import org.jahia.services.usermanager.JahiaUser;
9 import org.jahia.utils.JahiaConsole;
10
11
12 /**
13  * Class UpdateFieldButtonTag : returns the full link ("<a href...>...</a>")
14  * allowing to open the update field popup window
15  *
16  * @author Jerome Tamiotti
17  */

18 public class UpdateFieldButtonTag extends AbstractButtonTag {
19
20     private JahiaField theField = null;
21
22     private String JavaDoc field = "";
23     private String JavaDoc title = "Update";
24     private String JavaDoc style = "";
25     private int pageId = -1;
26     private int pageLevel = -1;
27
28     public void setField(String JavaDoc field) {
29         this.field = field;
30     }
31
32     public void setTitle(String JavaDoc title) {
33         this.title = title;
34     }
35
36     public void setStyle(String JavaDoc style) {
37         this.style = style;
38     }
39
40     public void setPageId(String JavaDoc pageId) {
41         try {
42             this.pageId = Integer.parseInt(pageId);
43         } catch (NumberFormatException JavaDoc nfe) {
44             JahiaConsole.println("UpdateFieldButtonTag: setPageId", "The given page id is not a number");
45         }
46     }
47
48     public void setPageLevel(String JavaDoc pageLevel) {
49         try {
50             this.pageLevel = Integer.parseInt(pageLevel);
51         } catch (NumberFormatException JavaDoc nfe) {
52             JahiaConsole.println("UpdateFieldButtonTag: setPageLevel", "The given page level is not a number");
53         }
54     }
55
56     public String JavaDoc getTitle() {
57         return this.title;
58     }
59
60     public String JavaDoc getStyle() {
61         return this.style;
62     }
63
64     public boolean testRights (JahiaData jData) {
65
66         try {
67             // checks if the related field is absolute
68
if (this.pageId == -1) {
69                 // check for page level
70
if (this.pageLevel != -1) {
71                     this.pageId = jData.gui().getLevelID(this.pageLevel);
72                 }
73             }
74             if (this.pageId != -1) {
75                 this.theField = jData.fields().getAbsoluteField(this.field, this.pageId);
76             } else {
77                 this.theField = jData.fields().getField(this.field);
78             }
79             if (this.theField != null) {
80                 JahiaUser user = jData.params().getUser();
81                 return this.theField.checkWriteAccess(user) && jData.gui().isEditMode();
82             }
83         } catch (JahiaException je) {
84             JahiaConsole.println("UpdateFieldButtonTag: testRights ", je.toString());
85         }
86         return false;
87     }
88
89     public String JavaDoc getLauncher(JahiaData jData) throws JahiaException {
90         // returns the URL that launches the container list popup window
91
return "javascript:" + jData.gui().html().drawUpdateFieldLauncher(this.theField);
92     }
93
94     public int doEndTag() throws JspException JavaDoc {
95         // let's reinitialize the tag variables to allow tag object reuse in
96
// pooling.
97
theField = null;
98
99         field = "";
100         title = "Update";
101         style = "";
102         pageId = -1;
103         pageLevel = -1;
104         return EVAL_PAGE;
105     }
106
107 }
108
Popular Tags