KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nl > eid > jetspeed > portal > controls > CssPortletControl


1 package nl.eid.jetspeed.portal.controls;
2
3 import org.apache.ecs.html.*;
4 import org.apache.ecs.*;
5
6 //jetspeed support
7
import org.apache.jetspeed.util.*;
8 import org.apache.jetspeed.portal.*;
9 import org.apache.jetspeed.capability.*;
10
11 //turbine
12
import org.apache.turbine.util.*;
13
14 //java imports
15
import java.util.*;
16
17 /**
18  * Insert the type's description here.
19  *
20  * This portlet controller generates CSS entries based on a style name.
21  * The style name is supplied as an init parameter through the portlet
22  * config. You can add the following style entries to your CSS:
23  *
24  * TABLE.<YourPortletStyle>
25  * TD.<YourPortletStyle>+Title
26  * TD.<YourPortletStyle>+Option
27  * TD.<YourPortletStyle>+Content
28  *
29  * Creation date: (07-Mar-01 23:58:45)
30  * @author: Administrator
31  */

32 public class CssPortletControl extends PortletControl{
33     public final static String JavaDoc STYLE = "style";
34 /**
35  * CssPortletControl constructor comment.
36  */

37 public CssPortletControl() {
38     super();
39 }
40 public ConcreteElement getContent(RunData rundata) {
41     String JavaDoc aStyle = this.getConfig().getInitParameter( "style", "Default" );
42     ElementContainer base = new ElementContainer();
43     if (CapabilityMapFactory.getCapabilityMap(rundata).getPreferredType().equals(MimeType.HTML)) {
44         Table aHolder = new Table().setCellPadding(0).setCellSpacing(0).setWidth(getWidth()).setAlign("center");
45         aHolder.setClass(aStyle);
46         ConcreteElement[] options = this.getPortletOptions(rundata);
47         TR finalTitle = new TR();
48         TD actualTitle = new TD().setNoWrap(true).setWidth("100%").setVAlign("middle").addElement(getPortlet().getTitle());
49         actualTitle.setClass(aStyle + "Title");
50         finalTitle.addElement(actualTitle);
51         if (options.length > 0) {
52             ElementContainer alloptions = new ElementContainer();
53             for (int i = 0; i < options.length; ++i) {
54                 alloptions.addElement(options[i]);
55             }
56             TD optionHolder = new TD().setNoWrap(true).setAlign("right").setVAlign("middle").addElement(alloptions);
57             optionHolder.setClass(aStyle + "Option");
58             finalTitle.addElement(optionHolder);
59         }
60         aHolder.addElement(finalTitle);
61         TR background = new TR();
62         TD content = new TD().setWidth("100%").setVAlign("top").setColSpan(options.length + 1).addElement(this.getPortlet().getContent(rundata));
63         content.setClass(aStyle + "Content");
64         background.addElement(content);
65         background.addElement(new TD().addElement(new BR()));
66         aHolder.addElement(background);
67         base.addElement(aHolder);
68     } else {
69         base.addElement(getPortlet().getContent(rundata));
70     }
71     rundata.getSession().setAttribute(STYLE, aStyle);
72     return base;
73 }
74 /**
75 Get the options for this portlet.
76 */

77 private ConcreteElement[] getPortletOptions(RunData rundata) {
78
79     Vector v = new Vector();
80
81     if (this.getPortlet().getAllowEdit(rundata)) {
82
83         try {
84             A info =
85                 new A(
86                     URILookup.getURI(
87                         URILookup.TYPE_INFO,
88                         URILookup.SUBTYPE_MARK,
89                         this.getPortlet(),
90                         rundata)).addElement(
91                     new IMG(Util.getContentURI(rundata, JetspeedResources.INFO_IMAGE)).setBorder(
92                         0));
93             v.addElement(info);
94         } catch (JetspeedException e) {
95             Log.note(e.getMessage());
96         }
97
98     }
99
100     if (this.getPortlet().getAllowMaximize(rundata)) {
101
102         try {
103             A max =
104                 new A(
105                     URILookup.getURI(
106                         URILookup.TYPE_HOME,
107                         URILookup.SUBTYPE_MAXIMIZE,
108                         this.getPortlet(),
109                         rundata)).addElement(
110                     new IMG(Util.getContentURI(rundata, JetspeedResources.MAX_IMAGE)).setBorder(0));
111             v.addElement(max);
112         } catch (JetspeedException e) {
113             Log.note(e.getMessage());
114         }
115
116     }
117
118     ConcreteElement[] elements = new ConcreteElement[v.size()];
119     v.copyInto(elements);
120     return elements;
121
122 }
123 }
124
Popular Tags