/* * Copyright (C) 2010---2014 星星(wuweixing)<349446658@qq.com> * * This file is part of Wabacus * * Wabacus is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.wabacus.system.component.container.panel; import java.util.ArrayList; import java.util.List; import com.wabacus.config.component.IComponentConfigBean; import com.wabacus.config.component.container.AbsContainerConfigBean; import com.wabacus.config.component.container.panel.FramePanelBean; import com.wabacus.config.xml.XmlElementBean; import com.wabacus.system.ReportRequest; import com.wabacus.system.component.IComponentType; import com.wabacus.system.component.container.AbsContainerType; import com.wabacus.system.tags.component.AbsComponentTag; import com.wabacus.util.Consts; public class FramePanel extends AbsPanelType { public FramePanel(AbsContainerType parentContainerType,IComponentConfigBean comCfgBean,ReportRequest rrequest) { super(parentContainerType,comCfgBean,rrequest); } public void displayOnPage(AbsComponentTag displayTag) { if(!rrequest.checkPermission(this.containerConfigBean.getId(),null,null,Consts.PERMISSION_TYPE_DISPLAY)) { wresponse.println(" "); return; } StringBuffer tempBuf; String containerwidth=null; if(this.getParentContainerType()!=null) { containerwidth=this.getParentContainerType().getChildDisplayWidth(containerConfigBean); if(containerwidth==null||containerwidth.trim().equals("")) containerwidth="100%"; if(containerConfigBean.getTop()!=null&&!containerConfigBean.getTop().trim().equals("")) { wresponse.println("<table cellspacing=\"0\" cellpadding=\"0\" width=\""+containerwidth+"\" style=\"MARGIN:0;\">"); wresponse.println("<tr><td height=\""+containerConfigBean.getTop()+"\"></td></tr></table>"); } wresponse.println(getRealHeaderFooterDisplayValue(containerConfigBean.getOuterHeaderTplBean(),"outerheader")); wresponse.println("<table cellspacing=\"0\" cellpadding=\"0\" width=\""+containerwidth+"\" id=\""+containerConfigBean.getGuid()+"\"><tr><td>"); } wresponse.println("<div id=\"WX_CONTENT_"+containerConfigBean.getGuid()+"\">"); wresponse.println(this.showHeader());//显示Header部分 showButtonsOnTopBottomTitle(true); tempBuf=new StringBuffer(); tempBuf.append("<FIELDSET class=\"cls-"+containerConfigBean.getTagname()+"-content\""); if(containerConfigBean.shouldShowContextMenu()) { tempBuf.append(" oncontextmenu=\"try{showcontextmenu('contextmenu_"+containerConfigBean.getGuid() +"',event);}catch(e){logErrorsAsJsFileLoad(e);}\""); } if(containerConfigBean.getBorder()!=0) { tempBuf.append(" style=\"border:solid "+containerConfigBean.getBorder()+"px "); if(containerConfigBean.getBordercolor()!=null&&!containerConfigBean.getBordercolor().trim().equals("")) { tempBuf.append(containerConfigBean.getBordercolor()); } }else { tempBuf.append(" style=\"border:0"); } tempBuf.append(";\">"); wresponse.println(tempBuf.toString()); wresponse.println("<LEGEND class=\"cls-title\">" +(rrequest.checkPermission(containerConfigBean.getId(),Consts.TITLE_PART,null,Consts.PERMISSION_TYPE_DISPLAY)?this.containerConfigBean.getTitle(rrequest):"") +"</LEGEND>"); if(rrequest.checkPermission(this.containerConfigBean.getId(),Consts.DATA_PART,null,Consts.PERMISSION_TYPE_DISPLAY)) { wresponse.println("<table cellspacing='0' cellpadding='0' width=\"100%\">"); wresponse.println(showContainerScrollStartTag()); if(containerConfigBean.getMargin_top()!=null&&!containerConfigBean.getMargin_top().trim().equals("")) { wresponse.println("<tr><td colspan=\""+containerConfigBean.getColspan_total()+"\" height=\""+ containerConfigBean.getMargin_top()+"\"></td></tr>"); } wresponse.println("<tr>"); if(containerConfigBean.getMargin_left()!=null&&!containerConfigBean.getMargin_left().trim().equals("")) {//如果有左边间隔 wresponse.println("<td width=\""+containerConfigBean.getMargin_left()+"\"><span style=\"margin-left:"+containerConfigBean.getMargin_left()+"\"></span></td>"); } wresponse.println("<td>"); tempBuf=new StringBuffer(); tempBuf.append("<table cellspacing='0' cellpadding='0' width=\"100%\""); if(!this.containerConfigBean.isScrollY()&&containerConfigBean.getHeight()!=null&&!containerConfigBean.getHeight().trim().equals("")) {//容器的高度配置必须放在最里层的<table/>中,否则没办法通过它的<td/>的valign控制子组件的垂直对齐方式 tempBuf.append(" height=\""+containerConfigBean.getHeight()+"\" "); } tempBuf.append(">"); wresponse.println(tempBuf.toString()); IComponentType childObjTmp=this.mChildren.entrySet().iterator().next().getValue(); wresponse.println("<tr>"); showChildObj(childObjTmp,null); wresponse.println("</tr>"); wresponse.println("</table></td>"); if(containerConfigBean.getMargin_right()!=null&&!containerConfigBean.getMargin_right().trim().equals("")) { wresponse.println("<td width=\""+containerConfigBean.getMargin_right()+"\"><span style=\"margin-left:"+containerConfigBean.getMargin_right()+"\"></span></td>"); } wresponse.println("</tr>"); if(containerConfigBean.getMargin_bottom()!=null&&!containerConfigBean.getMargin_bottom().trim().equals("")) { wresponse.println("<tr><td colspan=\""+containerConfigBean.getColspan_total()+"\" height=\""+ containerConfigBean.getMargin_bottom()+"\"></td></tr>"); } wresponse.println(showContainerScrollEndTag()); wresponse.println("</table>"); } wresponse.println("</FIELDSET>"); showButtonsOnTopBottomTitle(false); wresponse.println(this.showFooter()); // wresponse.println(this.showContextMenu()); wresponse.println(this.showMetaData()); wresponse.println("</div>"); if(this.getParentContainerType()!=null) { wresponse.println("</td></tr></table>"); wresponse.println(getRealHeaderFooterDisplayValue(containerConfigBean.getOuterFooterTplBean(),"outerfooter")); if(containerConfigBean.getBottom()!=null&&!containerConfigBean.getBottom().trim().equals("")) { wresponse.println("<table cellspacing=\"0\" cellpadding=\"0\" width=\""+containerwidth+"\" style=\"MARGIN:0;\">"); wresponse.println("<tr><td height=\""+containerConfigBean.getBottom()+"\"></td></tr></table>"); } } } private void showButtonsOnTopBottomTitle(boolean isDisplayTopTitleBar) { String buttonsOnTitle=getContainerTopBottomButtonsDisplayValue(isDisplayTopTitleBar); if(buttonsOnTitle.trim().equals("")) return; String buttonalign=this.containerConfigBean.getButtonsBean().getAlign(); buttonalign=buttonalign==null||buttonalign.equals("")?"right":buttonalign.trim(); wresponse.println("<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\"><tr>"); wresponse.println("<td align=\""+buttonalign+"\">"); wresponse.println(buttonsOnTitle); wresponse.println("</td></tr></table>"); } public AbsContainerConfigBean loadConfig(XmlElementBean eleContainer,AbsContainerConfigBean parent,String tagname) { FramePanelBean fpanelbean=(FramePanelBean)super.loadConfig(eleContainer,parent,tagname); if(fpanelbean.getLstChildrenIDs().size()>1) { List<String> lstChildrenIds=new ArrayList<String>(); lstChildrenIds.add(fpanelbean.getLstChildrenIDs().get(0));//只保留配置的第一个子元素 for(int i=1;i<fpanelbean.getLstChildrenIDs().size();i++) { fpanelbean.getMChildren().remove(fpanelbean.getLstChildrenIDs().get(i)); } fpanelbean.setLstChildrenIDs(lstChildrenIds); } return fpanelbean; } protected AbsContainerConfigBean createContainerConfigBean(AbsContainerConfigBean parentContainer,String tagname) { return new FramePanelBean(parentContainer,tagname); } protected String getComponentTypeName() { return "container.framepanel"; } }