package com.norteksoft.mms.form.web; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.springframework.beans.factory.annotation.Autowired; import com.norteksoft.mms.form.entity.GenerateSetting; import com.norteksoft.mms.form.service.DataTableManager; import com.norteksoft.mms.module.entity.Menu; import com.norteksoft.mms.module.service.MenuManager; import com.norteksoft.product.api.ApiFactory; import com.norteksoft.product.util.ContextUtils; import com.norteksoft.product.util.JsTreeUtils; import com.norteksoft.product.web.struts2.CrudActionSupport; @Namespace("/form") @ParentPackage("default") public class GenerateSettingAction extends CrudActionSupport<GenerateSetting> { private static final long serialVersionUID = 1L; private Long tableId; private MenuManager menuManager; private DataTableManager dataTableManager; private GenerateSetting generateSetting;//生成代码配置实体 private Long settingId;//生成代码配置实体id private Long menuId; private static final String SUCCESS_MESSAGE_LEFT = "<font class=\"onSuccess\"><nobr>"; private static final String MESSAGE_RIGHT = "</nobr></font>"; private static final String ERROR_MESSAGE_LEFT = "<font class=\"onError\"><nobr>"; private Log log = LogFactory.getLog(GenerateSettingAction.class); protected void addErrorMessage(String message){ this.addActionMessage(ERROR_MESSAGE_LEFT+message+MESSAGE_RIGHT); } protected void addSuccessMessage(String message){ this.addActionMessage(SUCCESS_MESSAGE_LEFT+message+MESSAGE_RIGHT); } @Autowired public void setMenuManager(MenuManager menuManager) { this.menuManager = menuManager; } @Override @Action("data-table-generateSetting") public String list() throws Exception { prepareModel(); ApiFactory.getBussinessLogService().log("数据表管理", "生成代码配置页面", ContextUtils.getSystemId("mms")); return "data-table-setting"; } @Override public String input() throws Exception { return null; } /** * 保存生成代码配置信息 */ @Override @Action("data-table-saveSetting") public String save() throws Exception { dataTableManager.saveGenerateSetting(generateSetting); ApiFactory.getBussinessLogService().log("数据表管理", "保存生成代码配置信息", ContextUtils.getSystemId("mms")); addSuccessMessage("保存成功"); return "data-table-setting"; } @Override public String delete() throws Exception { return null; } @Override protected void prepareModel() throws Exception { if(settingId==null){ if(tableId!=null){ generateSetting = dataTableManager.getGenerateSettingByTable(tableId); } if(generateSetting==null){ generateSetting = new GenerateSetting(); } if(tableId!=null){ generateSetting.setTableId(tableId); } }else{ generateSetting = dataTableManager.getGenerateSetting(settingId); if(generateSetting!=null){ if(tableId!=null){ generateSetting.setTableId(tableId); } } } } @Action("generate-code-menu-tree") public String generateCodeMenuTree() throws Exception{ List<Menu> menus=menuManager.getEnabledStandardRootMenuByCompany(); java.util.Collections.sort(menus); StringBuilder tree = new StringBuilder("[ "); for(Menu menu :menus){ if(menu.getChildren()==null||menu.getChildren().isEmpty()){ tree.append(JsTreeUtils.generateJsTreeNodeNew(menu.getId().toString(), "close", menu.getName(), "")).append(","); }else{ tree.append(JsTreeUtils.generateJsTreeNodeNew(menu.getId().toString(), "close", menu.getName(), childMenu(menu.getChildren()),"")).append(","); } } JsTreeUtils.removeLastComma(tree); tree.append(" ]"); renderText(tree.toString()); return null; } /* * 递归菜单父子关系,形成tree */ private String childMenu(List<Menu> menus){ java.util.Collections.sort(menus); StringBuilder tree = new StringBuilder(); for(Menu menu :menus){ if(menu.getChildren()==null||menu.getChildren().isEmpty()){ tree.append(JsTreeUtils.generateJsTreeNodeNew(menu.getId().toString(), "", menu.getName(), "")).append(","); }else{ tree.append(JsTreeUtils.generateJsTreeNodeNew(menu.getId().toString(), "close", menu.getName(), childMenu(menu.getChildren()),"")).append(","); } } JsTreeUtils.removeLastComma(tree); return tree.toString(); } public GenerateSetting getModel() { return generateSetting; } @Autowired public void setDataTableManager(DataTableManager dataTableManager) { this.dataTableManager = dataTableManager; } public void setTableId(Long tableId) { this.tableId = tableId; } public Long getTableId() { return tableId; } public GenerateSetting getGenerateSetting() { return generateSetting; } public Long getSettingId() { return settingId; } public void setSettingId(Long settingId) { this.settingId = settingId; } public Long getMenuId() { return menuId; } public void setMenuId(Long menuId) { this.menuId = menuId; } }