1 24 package org.riotfamily.components.macro; 25 26 import java.util.Collection ; 27 import java.util.Map ; 28 29 import javax.servlet.http.HttpServletRequest ; 30 31 import org.riotfamily.cachius.TaggingContext; 32 import org.riotfamily.components.Component; 33 import org.riotfamily.components.ComponentRepository; 34 import org.riotfamily.components.ComponentVersion; 35 import org.riotfamily.components.VersionContainer; 36 import org.riotfamily.components.context.PageRequestUtils; 37 import org.riotfamily.components.context.StoreContextInterceptor; 38 import org.riotfamily.components.editor.EditModeUtils; 39 import org.riotfamily.riot.dao.RiotDao; 40 import org.riotfamily.riot.list.RiotDaoService; 41 import org.springframework.util.ClassUtils; 42 43 47 public class ComponentMacroHelper { 48 49 private HttpServletRequest request; 50 51 private Collection toolbarScripts; 52 53 private ComponentRepository componentRepository; 54 55 private RiotDaoService riotDaoService; 56 57 public ComponentMacroHelper(HttpServletRequest request, 58 Collection toolbarScripts, ComponentRepository repository, 59 RiotDaoService riotDaoService) { 60 61 this.request = request; 62 this.toolbarScripts = toolbarScripts; 63 this.componentRepository = repository; 64 this.riotDaoService = riotDaoService; 65 } 66 67 public boolean isEditMode() { 68 return EditModeUtils.isEditMode(request); 69 } 70 71 public Collection getToolbarScripts() { 72 return this.toolbarScripts; 73 } 74 75 public String getFormUrl(String formId, Long containerId) { 76 return componentRepository.getFormUrl(formId, containerId); 77 } 78 79 public String tag(VersionContainer container) { 80 ComponentVersion version = isEditMode() 81 ? container.getLatestVersion() 82 : container.getLiveVersion(); 83 84 TaggingContext.tag(request, version.getType()); 85 TaggingContext.tag(request, VersionContainer.class.getName() 86 + '#' + container.getId()); 87 88 return ""; 89 } 90 91 public Map buildModel(VersionContainer container) { 92 ComponentVersion version = EditModeUtils.isEditMode(request) 93 ? container.getLatestVersion() 94 : container.getLiveVersion(); 95 96 Component component = componentRepository.getComponent(version.getType()); 97 return component.buildModel(version); 98 } 99 100 public boolean storeContext() { 101 if (PageRequestUtils.isPartialRequest(request)) { 102 return false; 103 } 104 StoreContextInterceptor.storeContext(request); 105 return true; 106 } 107 108 public String getObjectId(String listId, Object object) { 109 RiotDao dao = riotDaoService.getDao(listId); 110 return dao.getObjectId(object); 111 } 112 113 public String getDefaultListId(Object object) { 114 return riotDaoService.getDefaultListId( 115 ClassUtils.getUserClass(object)); 116 } 117 } 118 | Popular Tags |