1 package nl.eid.jetspeed.portal.controls; 2 3 import org.apache.ecs.html.*; 4 import org.apache.ecs.*; 5 6 import org.apache.jetspeed.util.*; 8 import org.apache.jetspeed.portal.*; 9 import org.apache.jetspeed.capability.*; 10 11 import org.apache.turbine.util.*; 13 14 import java.util.*; 16 17 32 public class CssPortletControl extends PortletControl{ 33 public final static String STYLE = "style"; 34 37 public CssPortletControl() { 38 super(); 39 } 40 public ConcreteElement getContent(RunData rundata) { 41 String 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 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 |