1 24 package org.riotfamily.components.editor; 25 26 import java.util.Map ; 27 28 import javax.servlet.http.HttpServletRequest ; 29 30 import org.riotfamily.components.Component; 31 import org.riotfamily.components.ComponentRepository; 32 import org.riotfamily.components.ComponentVersion; 33 import org.riotfamily.components.VersionContainer; 34 import org.riotfamily.components.dao.ComponentDao; 35 import org.riotfamily.forms.factory.FormRepository; 36 import org.springframework.web.bind.ServletRequestUtils; 37 38 44 public class ComponentFormController extends AbstractComponentFormController { 45 46 private ComponentDao componentDao; 47 48 private ComponentRepository componentRepository; 49 50 private String containerIdAttribute = "containerId"; 51 52 public ComponentFormController(FormRepository formRepository, 53 ComponentRepository componentRepository, 54 ComponentDao componentDao) { 55 56 super(formRepository); 57 this.componentRepository = componentRepository; 58 this.componentDao = componentDao; 59 } 60 61 protected ComponentVersion getVersion(HttpServletRequest request) { 62 Long id = new Long ((String ) request.getAttribute(containerIdAttribute)); 63 VersionContainer container = componentDao.loadVersionContainer(id); 64 boolean live = ServletRequestUtils.getBooleanParameter(request, "live", false); 65 return componentDao.getOrCreateVersion(container, null, live); 66 } 67 68 protected Object getFormBackingObject(HttpServletRequest request) { 69 ComponentVersion version = getVersion(request); 70 Component component = componentRepository.getComponent(version); 71 return component.buildModel(version); 72 } 73 74 protected void onSave(Object object, HttpServletRequest request) { 75 ComponentVersion version = getVersion(request); 76 Component component = componentRepository.getComponent(version); 77 Map properties = (Map ) object; 78 component.updateProperties(version, properties); 79 componentDao.updateComponentVersion(version); 80 } 81 82 } | Popular Tags |