/**********************************************************************************
* $URL:https://source.sakaiproject.org/svn/osp/trunk/matrix/tool/src/java/org/theospi/portfolio/matrix/control/DeleteLevelController.java $
* $Id:DeleteLevelController.java 9134 2006-05-08 20:28:42Z chmaurer@iupui.edu $
***********************************************************************************
*
* Copyright (c) 2005, 2006, 2008 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.theospi.portfolio.matrix.control;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.sakaiproject.content.api.LockManager;
import org.sakaiproject.metaobj.utils.mvc.intf.Controller;
import org.springframework.validation.Errors;
import org.springframework.web.servlet.ModelAndView;
import org.theospi.portfolio.matrix.model.Cell;
import org.theospi.portfolio.matrix.model.Scaffolding;
import org.theospi.portfolio.matrix.model.ScaffoldingCell;
/**
* @author chmaurer
*/
public class DeleteLevelController implements Controller {
protected final Log logger = LogFactory.getLog(getClass());
private LockManager lockManager;
/* (non-Javadoc)
* @see org.theospi.utils.mvc.intf.Controller#handleRequest(java.lang.Object, java.util.Map, java.util.Map, java.util.Map, org.springframework.validation.Errors)
*/
public ModelAndView handleRequest(Object requestModel, Map request, Map session, Map application, Errors errors) {
EditedScaffoldingStorage sessionBean = (EditedScaffoldingStorage)session.get(
EditedScaffoldingStorage.EDITED_SCAFFOLDING_STORAGE_SESSION_KEY);
Scaffolding scaffolding = sessionBean.getScaffolding();
Map model = new HashMap();
String levelId = (String)request.get("level_id");
String levelIndex = (String)request.get("index");
if (levelIndex != null) {
scaffolding.getLevels().remove(Integer.parseInt(levelIndex));
}
if (levelId != null && !levelId.equals("")) {
Set scaffoldingCells = scaffolding.getScaffoldingCells();
for (Iterator iter = scaffoldingCells.iterator(); iter.hasNext();) {
ScaffoldingCell sCell = (ScaffoldingCell) iter.next();
if (sCell.getLevel().getId().getValue().equals(levelId)) {
Set cells = sCell.getCells();
for (Iterator i=cells.iterator(); i.hasNext();) {
Cell cell = (Cell) i.next();
lockManager.removeAllLocks(cell.getId().getValue());
i.remove();
}
iter.remove();
}
}
}
sessionBean.setScaffolding(scaffolding);
session.put(EditedScaffoldingStorage.EDITED_SCAFFOLDING_STORAGE_SESSION_KEY,
sessionBean);
model.put(EditedScaffoldingStorage.STORED_SCAFFOLDING_FLAG, "true");
return new ModelAndView("success", model);
}
public LockManager getLockManager() {
return lockManager;
}
public void setLockManager(LockManager lockManager) {
this.lockManager = lockManager;
}
}