Layout layout,
PortalService service,
ContentHandler contenthandler)
throws SAXException {
final PreparedConfiguration config = (PreparedConfiguration)context.getAspectConfiguration();
final CopletInstanceData copletInstanceData = ((CopletLayout)layout).getCopletInstanceData();
if ( config.rootTag ) {
XMLUtils.startElement(contenthandler, config.tagName);
}
final PortletWindow window = (PortletWindow)copletInstanceData.getAttribute("window");
if ( window == null ) {
// no portlet window, so use a default behaviour
XMLUtils.createElement(contenthandler, "title", copletInstanceData.getCopletData().getTitle());
} else {
if ( ((PortletWindowImpl)window).getLayout() == null ) {
((PortletWindowImpl)window).setLayout((CopletLayout)layout);
}
String title = (String) copletInstanceData.getAttribute("dynamic-title");
if ( title == null ) {
final PortletDefinition def = window.getPortletEntity().getPortletDefinition();
try {
title = def.getDisplayName(def.getLanguageSet().getDefaultLocale()).getDisplayName();
} catch (Exception ignore) {
title = copletInstanceData.getCopletData().getTitle();
}
}
XMLUtils.createElement(contenthandler, "title", title);
if ( this.environment != null ) {
InformationProviderService ips = (InformationProviderService) this.environment.getContainerService(InformationProviderService.class);
DynamicInformationProvider dip = ips.getDynamicProvider((HttpServletRequest) context.getObjectModel().get("portlet-request"));
// Sizing
WindowState ws = (WindowState)copletInstanceData.getAttribute("window-state");
if ( ws == null ) {
ws = WindowState.NORMAL;
}
if ( !ws.equals(WindowState.MINIMIZED) && !ws.equals(WindowState.MAXIMIZED)) {
PortletURLProviderImpl url = (PortletURLProviderImpl)dip.getPortletURLProvider(window);
url.clearParameters();
url.setWindowState(WindowState.MINIMIZED);
XMLUtils.createElement(contenthandler, "minimize-uri", url.toString());
}
if ( !ws.equals(WindowState.NORMAL)) {
PortletURLProviderImpl url = (PortletURLProviderImpl)dip.getPortletURLProvider(window);
url.clearParameters();
url.setWindowState(WindowState.NORMAL);
XMLUtils.createElement(contenthandler, "maximize-uri", url.toString());
}
if ( !ws.equals(WindowState.MAXIMIZED)) {
PortletURLProviderImpl url = (PortletURLProviderImpl)dip.getPortletURLProvider(window);
url.clearParameters();
url.setWindowState(WindowState.MAXIMIZED);
XMLUtils.createElement(contenthandler, "fullscreen-uri", url.toString());
}
// portlet modes
PortletMode pm = (PortletMode)copletInstanceData.getAttribute("portlet-mode");
if ( pm == null ) {
pm = PortletMode.VIEW;
}
if ( !pm.equals(PortletMode.EDIT) ) {
PortletURLProviderImpl url = (PortletURLProviderImpl)dip.getPortletURLProvider(window);