/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.vertical.adminweb; import java.io.IOException; import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import org.jdom.Document; import org.jdom.Element; import org.jdom.transform.JDOMSource; import com.enonic.esl.containers.ExtendedMap; import com.enonic.esl.containers.MultiValueMap; import com.enonic.vertical.engine.VerticalEngineException; import com.enonic.cms.core.language.LanguageKey; import com.enonic.cms.core.security.user.User; import com.enonic.cms.core.service.AdminService; public class LanguageHandlerServlet extends AdminHandlerBaseServlet { public void handlerBrowse( HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems ) throws VerticalAdminException { User user = securityService.getLoggedInAdminConsoleUser(); Document languagesDoc = admin.getLanguages().getAsJDOMDocument(); JDOMSource xmlSource = new JDOMSource( languagesDoc ); // StyleSheet Source xslSource = AdminStore.getStylesheet( session, "language_browse.xsl" ); // Parameters ExtendedMap parameters = new ExtendedMap(); parameters.put( "page", String.valueOf( request.getParameter( "page" ).toString() ) ); parameters.put( "administrator", String.valueOf( user.isEnterpriseAdmin() ) ); addSortParamteres( "@languagecode", "ascending", formItems, session, parameters ); try { transformXML( session, response.getWriter(), xmlSource, xslSource, parameters ); } catch ( Exception e ) { String message = "Failed to transform & print output: %t"; VerticalAdminLogger.errorAdmin(message, e ); } } public void handlerCreate( HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems ) throws VerticalAdminException, VerticalEngineException { User user = securityService.getLoggedInAdminConsoleUser(); String languageCode = formItems.getString( "languagecode" ); String description = formItems.getString( "description" ); admin.createLanguage( user, languageCode, description ); MultiValueMap queryParams = new MultiValueMap(); queryParams.put( "page", formItems.get( "page" ) ); queryParams.put( "op", "browse" ); redirectClientToAdminPath( "adminpage", queryParams, request, response ); } public void handlerForm( HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems ) throws VerticalAdminException { // XSL paramters HashMap parameters = new HashMap(); parameters.put( "page", formItems.get( "page" ) ); int languageKeyInt = formItems.getInt( "key", -1 ); Document languagesDoc = null; if ( languageKeyInt >= 0 ) { // update parameters.put( "create", "0" ); languagesDoc = admin.getLanguage(new LanguageKey(languageKeyInt)).getAsJDOMDocument(); } else { // create parameters.put( "create", "1" ); languagesDoc = new Document(new Element("languages")); } JDOMSource xmlSource = new JDOMSource( languagesDoc ); // StyleSheet Source xslSource = AdminStore.getStylesheet( session, "language_form.xsl" ); try { transformXML( session, response.getWriter(), xmlSource, xslSource, parameters ); } catch ( IOException ioe ) { String message = "Failed to get writer: %t"; VerticalAdminLogger.errorAdmin(message, ioe ); } catch ( TransformerException te ) { String message = "Failed to transform: %t"; VerticalAdminLogger.errorAdmin(message, te ); } } public void handlerRemove( HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems, int key ) throws VerticalAdminException, VerticalEngineException { admin.removeLanguage( new LanguageKey( key ) ); redirectClientToReferer( request, response ); } public void handlerUpdate( HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems ) throws VerticalAdminException, VerticalEngineException { int languageKeyInt = formItems.getInt( "key" ); String languageCode = formItems.getString( "languagecode" ); String description = formItems.getString( "description" ); admin.updateLanguage( new LanguageKey( languageKeyInt ), languageCode, description ); MultiValueMap queryParams = new MultiValueMap(); queryParams.put( "page", formItems.get( "page" ) ); queryParams.put( "op", "browse" ); redirectClientToAdminPath( "adminpage", queryParams, request, response ); } }