1 28 29 30 package com.opencms.workplace; 31 32 import org.opencms.file.CmsObject; 33 import org.opencms.file.CmsRequestContext; 34 import org.opencms.main.CmsException; 35 36 import com.opencms.legacy.CmsXmlTemplateLoader; 37 import com.opencms.template.A_CmsXmlContent; 38 39 import java.util.Hashtable ; 40 import java.util.Vector ; 41 42 import org.w3c.dom.Element ; 43 import org.w3c.dom.Node ; 44 import org.w3c.dom.NodeList ; 45 46 55 56 public class CmsPanel extends A_CmsWpElement { 57 58 59 60 public static final String C_WPTAG_PANEL = "panel"; 61 62 63 64 public static final String C_WPTAG_ATTR_PANELNAME = "name"; 65 66 94 95 public Object handleSpecialWorkplaceTag(CmsObject cms, Element n, A_CmsXmlContent doc, 96 Object callingObject, Hashtable parameters, CmsXmlLanguageFile lang) throws CmsException { 97 98 String selectedPanel = (String )parameters.get(CmsWorkplaceDefault.C_PARA_PANEL); 100 if(selectedPanel == null) { 101 selectedPanel = ""; 102 } 103 104 CmsXmlWpTemplateFile paneldef = getPanelDefinitions(cms); 106 107 109 CmsRequestContext reqCont = cms.getRequestContext(); 111 String url = CmsXmlTemplateLoader.getRequest(reqCont).getServletUrl() + reqCont.getUri(); 112 if(url.indexOf("?") >= 0) { 113 url = url + "&panel="; 114 } 115 else { 116 url = url + "?panel="; 117 } 118 119 Node nodeLoop; 121 122 String panelName = null; 124 125 StringBuffer resultBg = new StringBuffer (); 127 StringBuffer resultTxt = new StringBuffer (); 128 StringBuffer resultAll = new StringBuffer (); 129 130 NodeList nl = n.getChildNodes(); 133 Vector panels = new Vector (); 134 for(int i = 0;i < nl.getLength();i++) { 135 Element tempElem = null; 136 nodeLoop = nl.item(i); 137 if(nodeLoop.getNodeType() == Node.ELEMENT_NODE) { 138 tempElem = (Element )nodeLoop; 139 if(tempElem.getNodeName().toLowerCase().equals(C_WPTAG_PANEL)) { 140 panelName = tempElem.getAttribute(C_WPTAG_ATTR_PANELNAME); 141 if(panelName != null && !panelName.equals("")) { 142 panels.addElement(panelName); 143 } 144 } 145 } 146 } 147 148 int currentPanelNo = panels.indexOf(selectedPanel); 150 151 153 for(int i = 0;i < panels.size();i++) { 155 panelName = (String )panels.elementAt(i); 156 paneldef.setData(CmsWorkplaceDefault.C_PANEL_LINK, panelName); 157 paneldef.setData(CmsWorkplaceDefault.C_PANEL_NAME, lang.getLanguageValue("panel." + panelName)); 158 if(i == currentPanelNo) { 159 resultBg.append(paneldef.getProcessedDataValue(CmsWorkplaceDefault.C_TAG_PANEL_BGACTIVE, callingObject, null)); 160 resultTxt.append(paneldef.getProcessedDataValue(CmsWorkplaceDefault.C_TAG_PANEL_TEXTACTIVE)); 161 } 162 else { 163 resultBg.append(paneldef.getProcessedDataValue(CmsWorkplaceDefault.C_TAG_PANEL_BGINACTIVE, callingObject, null)); 164 resultTxt.append(paneldef.getProcessedDataValue(CmsWorkplaceDefault.C_TAG_PANEL_TEXTINACTIVE)); 165 } 166 } 167 168 resultAll.append(paneldef.getDataValue(CmsWorkplaceDefault.C_TAG_PANEL_STARTSEQ)); 170 resultAll.append(resultBg.toString()); 171 resultAll.append(paneldef.getDataValue(CmsWorkplaceDefault.C_TAG_PANEL_SEPBGTEXT)); 172 resultAll.append(resultTxt.toString()); 173 resultAll.append(paneldef.getDataValue(CmsWorkplaceDefault.C_TAG_PANEL_ENDSEQ)); 174 return resultAll.toString(); 175 } 176 } 177
| Popular Tags
|