UploadimageApp.java
/*
* Copyright (c) 2002-2015, Mairie de Paris
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright notice
* and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice
* and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* License 1.0
*/
package fr.paris.lutece.plugins.uploadimage.web;
import java.util.HashMap;
import java.util.Map;
import fr.paris.lutece.plugins.uploadimage.business.Options;
import fr.paris.lutece.plugins.uploadimage.business.OptionsHome;
import fr.paris.lutece.plugins.uploadimage.service.UploadImageCacheService;
import fr.paris.lutece.portal.web.xpages.XPage;
import fr.paris.lutece.portal.service.template.AppTemplateService;
import fr.paris.lutece.portal.util.mvc.xpage.MVCApplication;
import fr.paris.lutece.portal.util.mvc.commons.annotations.View;
import fr.paris.lutece.portal.util.mvc.xpage.annotations.Controller;
import fr.paris.lutece.util.html.HtmlTemplate;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.util.*;
/**
* This class provides a simple implementation of an XPage
*/
@Controller( xpageName = "uploadimage" , pageTitleI18nKey = "uploadimage.xpage.uploadimage.pageTitle" , pagePathI18nKey = "uploadimage.xpage.uploadimage.pagePathLabel" )
public class UploadimageApp extends MVCApplication
{
private static final String TEMPLATE_XPAGE = "/skin/plugins/uploadimage/uploadimageXpage.html";
// Templates
private static final String TEMPLATE_MAIN_UPLOAD_IMAGE_JS = "skin/plugins/uploadimage/main.js";
private static final String VIEW_HOME = "home";
private static final String IDOPTION = "id_option";
private static final String MARK_FIELDNAME = "fieldName";
private static final String PARAMATER_FIELDNAME = "fieldName";
/**
* Returns the content of the page uploadimage.
* @param request The HTTP request
* @return The view
*/
@View( value = VIEW_HOME , defaultView = true )
public XPage viewHome( HttpServletRequest request )
{
Map<String, Object> model = new HashMap<String, Object>( );
// model.put("main", getMainUploadJs(request));
return getXPage( TEMPLATE_XPAGE, request.getLocale( ), model );
}
public String getMainUploadJs( HttpServletRequest request )
{
//String nId = request.getParameter(IDOPTION);
String strFieldname = request.getParameter(PARAMATER_FIELDNAME);
Options option= new Options( );
if(strFieldname != null && !strFieldname.isEmpty( )){
option=OptionsHome.findByFieldName(strFieldname);
}else{
option= getDefaultOption( );
}
if(option == null ){
option= getDefaultOption( );
}
String strKey = "clef";
String strContent = (String) UploadImageCacheService.getInstance( ).getFromCache( strKey );
// if ( strContent == null )
// {
Map<String, Object> model = new HashMap<String, Object>( );
model.put( "MARK_BASE_URL"," strBaseUrl" );
model.put("cropperOption", option);
model.put(MARK_FIELDNAME, strFieldname);
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MAIN_UPLOAD_IMAGE_JS, request.getLocale( ),
model );
strContent = template.getHtml( );
// UploadImageCacheService.getInstance( ).putInCache( strKey, strContent );
//}
return strContent;
}
private Options getDefaultOption( ){
Options option= new Options( );
option.setAutoCrop(true);
option.setBackground(true);
option.setCheckImageOrigin(true);
option.setCropBoxMovable(true);
option.setDoubleClickToggle(true);
option.setDragCrop(true);
option.setGuides(true);
option.setHighlight(true);
option.setModal(true);
option.setMouseWheelZoom(true);
option.setMovable(true);
option.setResponsive(true);
option.setRotatable(true);
option.setStrict(true);
option.setTouchDragZoom(true);
option.setZoomable(true);
option.setCropBoxResizable(true);
option.setHeight(576);
option.setWidth(1024);
option.setX(128);
option.setY(72);
option.setRatio("16/9");
option.setFieldName("fieldName");
return option;
}
}