com.helger.peppol.smpserver.ui.AppLayoutHTMLProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of peppol-smp-server-webapp Show documentation
Show all versions of peppol-smp-server-webapp Show documentation
SMP webapp with management GUI
/**
* Copyright (C) 2014-2018 Philip Helger (www.helger.com)
* philip[at]helger[dot]com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.helger.peppol.smpserver.ui;
import java.util.Locale;
import javax.annotation.Nonnull;
import com.helger.commons.functional.IFunction;
import com.helger.commons.string.StringHelper;
import com.helger.html.hc.IHCNode;
import com.helger.html.hc.html.metadata.HCHead;
import com.helger.html.hc.html.root.HCHtml;
import com.helger.html.hc.html.sections.HCBody;
import com.helger.peppol.smpserver.app.CApp;
import com.helger.photon.basic.app.appid.RequestSettings;
import com.helger.photon.basic.app.menu.IMenuItemPage;
import com.helger.photon.core.app.context.ISimpleWebExecutionContext;
import com.helger.photon.core.app.context.LayoutExecutionContext;
import com.helger.photon.core.app.html.AbstractSWECHTMLProvider;
import com.helger.web.scope.IRequestWebScopeWithoutResponse;
import com.helger.xservlet.forcedredirect.ForcedRedirectException;
/**
* Main class for creating HTML output
*
* @author Philip Helger
*/
public class AppLayoutHTMLProvider extends AbstractSWECHTMLProvider
{
private final IFunction m_aFactory;
public AppLayoutHTMLProvider (@Nonnull final IFunction aFactory)
{
m_aFactory = aFactory;
}
@Override
protected void fillBody (@Nonnull final ISimpleWebExecutionContext aSWEC,
@Nonnull final HCHtml aHtml) throws ForcedRedirectException
{
final IRequestWebScopeWithoutResponse aRequestScope = aSWEC.getRequestScope ();
final Locale aDisplayLocale = aSWEC.getDisplayLocale ();
final IMenuItemPage aMenuItem = RequestSettings.getMenuItem (aRequestScope);
final LayoutExecutionContext aLEC = new LayoutExecutionContext (aSWEC, aMenuItem);
final HCHead aHead = aHtml.head ();
final HCBody aBody = aHtml.body ();
// Add menu item in page title
aHead.setPageTitle (StringHelper.getConcatenatedOnDemand (CApp.getApplicationTitle (),
" - ",
aMenuItem.getDisplayText (aDisplayLocale)));
final IHCNode aNode = m_aFactory.apply (aLEC);
aBody.addChild (aNode);
}
}