package org.openiam.webadmin.metadata; /* * Copyright 2009, OpenIAM LLC * This file is part of the OpenIAM Identity and Access Management Suite * * OpenIAM Identity and Access Management Suite is free software: * you can redistribute it and/or modify * it under the terms of the Lesser GNU General Public License * version 3 as published by the Free Software Foundation. * * OpenIAM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * Lesser GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenIAM. If not, see <http://www.gnu.org/licenses/>. * */ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; import org.springframework.web.servlet.view.RedirectView; import org.openiam.idm.srvc.cat.dto.Category; import org.openiam.idm.srvc.cat.service.CategoryDataService; import org.openiam.idm.srvc.meta.dto.MetadataElement; import org.openiam.idm.srvc.meta.dto.MetadataType; import org.openiam.idm.srvc.meta.ws.MetadataWebService; public class MetadataAttributeController extends SimpleFormController { private static final Log log = LogFactory.getLog(MetadataAttributeController.class); MetadataWebService metadataService; CategoryDataService categorydataService; String baseCategory; public MetadataAttributeController() { super(); } @Override protected Object formBackingObject(HttpServletRequest request) throws Exception { // TODO Auto-generated method stub MetadataAttributeCommand cmd = new MetadataAttributeCommand(); String typeId = request.getParameter("typeId"); String menuGroup = request.getParameter("menuGroup"); String attrId = request.getParameter("attrId"); // used by the UI for to show the side menu request.setAttribute("menuGroup", menuGroup); System.out.println("typeId = " + typeId); request.setAttribute("typeId", typeId); cmd.getElement().setMetadataTypeId(typeId); MetadataElement[] elementAry = metadataService.getMetadataElementByType(typeId).getMetadataElementAry(); MetadataElement attr = null; if (attrId != null) { attr = metadataService.getMetadataElementById(attrId).getMetadataElement(); cmd.setElement(attr); } if (elementAry == null) { return new MetadataAttributeCommand(); }else { cmd.setElementAry(elementAry); cmd.setTypeId(typeId); if (attr != null) { cmd.setElement(attr); } return cmd; } } @Override protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception { log.info("onSubmit called."); MetadataAttributeCommand cmd = (MetadataAttributeCommand)command; //String categoryId = typeListCommand.getCategoryId(); MetadataElement element = cmd.getElement(); // code to save the object. String btn = request.getParameter("btn"); if (btn != null && btn.equalsIgnoreCase("Delete")) { metadataService.removeMetadataElement(element.getMetadataElementId()); }else { if (element.getMetadataElementId() == null || element.getMetadataElementId().length() == 0) { element.setMetadataElementId(null); System.out.println("metadataElementID = " + element.getMetadataElementId()); System.out.println("metadataTypeID = " + element.getMetadataTypeId()); metadataService.addMetadataElement(element); }else { metadataService.updateMetadataElement(element); } } return new ModelAndView(new RedirectView("metadataAttribute.cnt?typeId=" + element.getMetadataTypeId() +"&menuGroup=METADATA", true)); } public CategoryDataService getCategorydataService() { return categorydataService; } public void setCategorydataService(CategoryDataService categorydataService) { this.categorydataService = categorydataService; } public String getBaseCategory() { return baseCategory; } public void setBaseCategory(String baseCategory) { this.baseCategory = baseCategory; } public MetadataWebService getMetadataService() { return metadataService; } public void setMetadataService(MetadataWebService metadataService) { this.metadataService = metadataService; } }