1 16 package com.blandware.atleap.webapp.action.core.browser; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.common.util.QueryInfo; 20 import com.blandware.atleap.model.core.Page; 21 import com.blandware.atleap.service.core.PageManager; 22 import com.blandware.atleap.webapp.action.core.grid.BaseGridAction; 23 import com.blandware.atleap.webapp.taglib.core.grid.util.Grid; 24 import com.blandware.atleap.webapp.util.core.WebappConstants; 25 import com.blandware.atleap.webapp.util.core.WebappUtil; 26 import org.apache.commons.validator.GenericValidator; 27 import org.apache.struts.Globals; 28 import org.apache.struts.action.ActionForm; 29 import org.apache.struts.action.ActionForward; 30 import org.apache.struts.action.ActionMapping; 31 32 import javax.servlet.http.HttpServletRequest ; 33 import javax.servlet.http.HttpServletResponse ; 34 import java.util.HashMap ; 35 import java.util.List ; 36 import java.util.ListIterator ; 37 import java.util.Locale ; 38 import java.util.Map ; 39 40 54 public final class BrowseLinkableItemsAction extends BaseGridAction { 55 56 65 public ActionForward execute(ActionMapping mapping, ActionForm form, 66 HttpServletRequest request, HttpServletResponse response) throws Exception { 67 68 String localeSuffix = null; 70 if ( !GenericValidator.isBlankOrNull(request.getParameter("editorAreaLanguage")) ) { 71 localeSuffix = request.getParameter("editorAreaLanguage"); 72 request.getSession().setAttribute(WebappConstants.BROWSER_LOCALE_SUFFIX_KEY, localeSuffix); 73 } else { 74 localeSuffix = (String ) request.getSession().getAttribute(WebappConstants.BROWSER_LOCALE_SUFFIX_KEY); 75 } 76 77 Grid liGrid = getGridByName(WebappConstants.BROWSER_LINKABLE_ITEMS_GRID, request.getSession()); 78 if ( liGrid == null ) { 79 liGrid = new Grid(WebappConstants.BROWSER_LINKABLE_ITEMS_GRID); 80 } 81 82 saveGrid(liGrid, request.getSession()); 83 84 QueryInfo queryInfo = new QueryInfo(); 85 queryInfo.setWhereClause(liGrid.getWhereClause()); 86 87 Map queryParameters = new HashMap (); 88 Locale locale = (Locale ) request.getSession().getAttribute(Globals.LOCALE_KEY); 89 queryParameters.put("localeIdentifier", locale.getLanguage()); 90 queryInfo.setQueryParameters(queryParameters); 91 92 PageManager pageManager = (PageManager) getBean(Constants.PAGE_MANAGER_BEAN); 93 List linkableItems = pageManager.listLinkableItems(queryInfo).asList(); 94 95 for ( ListIterator i = linkableItems.listIterator(); i.hasNext(); ) { 96 Page linkableItem = (Page) i.next(); 97 Page newItem = new Page() { 98 }; 99 WebappUtil.copyProperties(newItem, linkableItem, request); 100 String uri = WebappUtil.getActionMappingURL(linkableItem.getUri(), null, request, WebappConstants.URL_TYPE_CONTEXT_RELATIVE, localeSuffix); 101 if ( uri.startsWith("/") ) { 102 uri = uri.substring(1); 103 } 104 newItem.setUri(uri); 105 i.set(newItem); 106 } 107 108 request.setAttribute(WebappConstants.BROWSER_LINKABLE_ITEMS_COLLECTION_KEY, linkableItems); 109 110 return mapping.findForward("showBrowser"); 111 } 112 } | Popular Tags |