001 002package org.opencms.ui.client; 003 004import com.google.gwt.dom.client.Element; 005import com.google.gwt.user.client.DOM; 006import com.google.gwt.user.client.ui.SimplePanel; 007import com.google.gwt.user.client.ui.Widget; 008 009/** 010 * Client-side implementation for the ExternalLayout addon. A simple, single-component panel 011 * that renders the contained component in the given element.<p> 012 * 013 * @author Risto Yrjänä / Vaadin Ltd. 014 */ 015public class CmsExternalLayout extends SimplePanel { 016 017 /** The CSS class name. */ 018 private static final String CLASSNAME = "v-externallayout"; 019 020 /** The target element. */ 021 private Element m_renderTargetElement; 022 023 /** 024 * Constructor.<p> 025 */ 026 public CmsExternalLayout() { 027 028 m_renderTargetElement = getElement(); 029 } 030 031 /** 032 * Returns the target element.<p> 033 * 034 * @return the target element 035 */ 036 public Element getRenderTargetElement() { 037 038 return m_renderTargetElement; 039 } 040 041 /** 042 * Sets the target element.<p> 043 * 044 * @param renderTargetElement the target element 045 */ 046 public void setRenderTargetElement(Element renderTargetElement) { 047 048 this.m_renderTargetElement = renderTargetElement; 049 renderTargetElement.setClassName(CLASSNAME); 050 } 051 052 /** 053 * This is overridden so that {@link #setWidget(Widget)} uses the specified 054 * external element. 055 */ 056 @Override 057 @SuppressWarnings("deprecation") 058 //have to use old Element here because of superclass 059 protected com.google.gwt.user.client.Element getContainerElement() { 060 061 return DOM.asOld(getRenderTargetElement()); 062 } 063}