//$Id: MenuAction.java,v 1.1 2008-8-5 上午09:57:35 鄂州蚊子 Exp $ /* * * Copyright c 2005-2009 * Licensed under the Apache License, Version 2.0 (the "License") * http://www.apache.org/licenses/LICENSE-2.0 * */ /******************************************************************************** * @author 鄂州蚊子 * * MODIFICATION DESCRIPTION * * Name Date Description * ============ ============ ============ * 鄂州蚊子 2008-8-5 Created * ********************************************************************************/ package org.beanfuse.webapp.security.action; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; import org.beanfuse.collection.Order; import org.beanfuse.lang.SeqStringUtil; import org.beanfuse.model.Entity; import org.beanfuse.query.EntityQuery; import org.beanfuse.security.Resource; import org.beanfuse.security.menu.Menu; import org.beanfuse.security.menu.MenuProfile; import org.beanfuse.security.menu.service.MenuService; /** * 系统模块(菜单)管理响应类 * * @author 鄂州蚊子 2008-8-4 */ public class MenuAction extends SecurityAction { private MenuService menuService; protected void indexSetting() { put("profiles", entityService.loadAll(MenuProfile.class)); } protected void editSetting(Entity entity) { put("profiles", entityService.loadAll(MenuProfile.class)); Menu menu = (Menu) entity; List resurces = entityService.loadAll(Resource.class); Set existResources = menu.getResources(); if (null != resurces) { resurces.removeAll(existResources); } put("resources", resurces); } protected String saveAndForward(Entity entity) { Menu menu = (Menu) entity; try { List resources = new ArrayList(); String resourceIdSeq = get("resourceIds"); if (null != resourceIdSeq && resourceIdSeq.length() > 0) { resources = entityService.load(Resource.class, "id", SeqStringUtil .transformToLong(resourceIdSeq)); } menu.getResources().clear(); menu.getResources().addAll(resources); menuService.saveOrUpdate(menu); } catch (Exception e) { return forward(ERROR); } return redirect("search", "info.save.success"); } /** * 禁用或激活一个或多个模块 * * @param mapping * @param form * @param request * @param response * @return */ public String activate() { String menuIdSeq = get("menuIds"); Long[] menuIds = SeqStringUtil.transformToLong(menuIdSeq); Boolean isActivate = getBoolean("isActivate"); if (null != isActivate && Boolean.FALSE.equals(isActivate)) menuService.updateState(menuIds, false); else menuService.updateState(menuIds, true); return redirect("search", "info.save.success"); } /** * 打印预览功能列表 * * @param mapping * @param form * @param request * @param response * @return * @throws Exception */ public String preview() { EntityQuery query = new EntityQuery(Menu.class, "menu"); populateConditions(query); query.addOrder(Order.parse("menu.code asc")); put("menus", entityService.search(query)); query.setQueryStr(null); query.setOrders(Collections.EMPTY_LIST); query.setSelect("max(length(menu.code)/2)"); List rs = (List) entityService.search(query); put("depth", rs.get(0)); return forward(); } public void setmenuService(MenuService menuService) { this.menuService = menuService; } }