/**
* Copyright (C) 2015 Orange
* 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.francetelecom.clara.cloud.presentation.common;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.CssResourceReference;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.slf4j.LoggerFactory;
import com.francetelecom.clara.cloud.core.service.ManagePaasUser;
import com.francetelecom.clara.cloud.presentation.resource.LocateResources;
/**
* Created by IntelliJ IDEA.
* User: Thomas Escalle - tawe8231
* Entity : FT/OLNC/RD/MAPS/MEP/MSE
* Date: 10/05/11
*/
public class PageTemplate extends WebPage {
/**
* serialUID
*/
private static final long serialVersionUID = -2406144181450494997L;
/**
* logger
*/
private static final transient org.slf4j.Logger logger = LoggerFactory.getLogger(PageTemplate.class);
public static final int ROWS_PER_PAGE = 15;
/**
* paas user layer manager
*/
@SpringBean
ManagePaasUser managePaasUser;
/**
* navigation header component.
* allows to access directly some parts on the current web page
*/
private HeaderNavigation headerNavigation;
/**
* signin header component.
* display :
* - logged user first name
* - logged user last name
* - logged user subtenant
* - loggout link
* - change language link
*/
private HeaderSignin headerSignin;
/**
* page title component
* contains :
* - Orange logo
* - portal name
* - France Telecom logo
*/
private HeaderTitle headerTitle;
/**
* footer component
* contains somme useful information
* - elpaaso portal version
* - user ssoid
* - user profile
*/
private Footer footer;
@Override
public void renderHead(IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(getApplication().getJavaScriptLibrarySettings().getJQueryReference()));
response.render(CssHeaderItem.forReference(new CssResourceReference(LocateResources.class, "elpaaso_common.css")));
response.render(CssHeaderItem.forReference(new CssResourceReference(LocateResources.class, "elpaaso_designer.css")));
// response.render(CssHeaderItem.forReference(new CssResourceReference(Application.class, "elpaaso_common.css")));
// response.render(CssHeaderItem.forReference(new CssResourceReference(Application.class, "elpaaso_designer.css")));
super.renderHead(response);
}
public void logSessionSize() {
long storeCurrentSizeBytes = -1;
try {
// wont work with back button !
storeCurrentSizeBytes = getSession().getSizeInBytes();
} catch (Exception ee) {
logger.warn("unable to stat session size : {} ", ee.getMessage());
return;
}
float storeCurrentSizeMB = storeCurrentSizeBytes/1024000;
String storeSizeStr = (storeCurrentSizeMB > 1
? storeCurrentSizeMB + " MB"
: storeCurrentSizeBytes+" Bytes");
logger.debug("Wicket Session store size {}", storeSizeStr);
}
/**
* PageTemplate constructor
* @param params - page parameters map
*/
public PageTemplate(final PageParameters params) {
super(params);
headerNavigation = new HeaderNavigation("header_navigation");
headerSignin = new HeaderSignin("header_signin");
headerTitle = new HeaderTitle("header_title");
footer = new Footer("footer");
add(headerNavigation);
add(headerSignin);
add(headerTitle);
add(footer);
logSessionSize();
}
}