1 20 package org.openi.web.controller; 21 22 import java.io.FileInputStream ; 23 import java.io.IOException ; 24 import java.io.InputStream ; 25 import java.util.HashMap ; 26 import java.util.Iterator ; 27 import java.util.LinkedList ; 28 import java.util.List ; 29 import java.util.Map ; 30 import java.util.TreeMap ; 31 import java.util.ResourceBundle ; 32 33 import javax.servlet.http.HttpServletRequest ; 34 import javax.servlet.http.HttpServletResponse ; 35 36 import org.apache.log4j.Logger; 37 import org.openi.analysis.Analysis; 38 import org.openi.menu.AnalysisCollectionMenuVisitor; 39 import org.openi.menu.Menu; 40 import org.openi.menu.MenuBuilder; 41 import org.openi.menu.MenuItem; 42 import org.openi.project.Overview; 43 import org.openi.project.ProjectContext; 44 import org.openi.xml.BeanStorage; 45 import org.openi.xml.RssFeedGenerator; 46 import org.openi.xml.XMLTransformer; 47 import org.springframework.web.servlet.ModelAndView; 48 import org.springframework.web.servlet.mvc.AbstractController; 49 50 51 55 public class DashboardController extends AbstractController { 56 private static Logger logger = Logger.getLogger(DashboardController.class); 57 58 69 protected ModelAndView handleRequestInternal(HttpServletRequest request, 70 HttpServletResponse response) throws Exception { 71 72 ModelAndView modelAndView = null; 73 Map model = new HashMap (); 74 ProjectContext projectContext = (ProjectContext)request.getSession().getAttribute("projectContext"); 75 76 String menuName = request.getParameter("menu"); 77 String overviewKey = request.getParameter("overviewKey"); 78 79 if( (menuName==null || menuName.length()<1) && 80 (overviewKey == null || overviewKey.length()<1)){ 81 82 modelAndView = new ModelAndView("chooseOverviewView", model); 86 }else if(overviewKey != null){ 87 List analyses = new LinkedList (); 89 Overview overview = projectContext.getProject().getOverview(overviewKey); 90 Iterator links = overview.getLinks().iterator(); 91 92 while(links.hasNext()){ 94 String config = (String )links.next(); 95 try{ 96 projectContext.restoreAnalysis(config); 98 analyses.add(new MenuItem(MenuBuilder.constructDisplayName(config), config)); 99 }catch(IOException e){ 100 logger.warn("Trapping IOException - missing analysis in overview, probably need to reconfigure overview", e); 102 analyses.add(new MenuItem(MenuBuilder.constructDisplayName(config) + " - Missing", "broken") ); 103 } 104 } 105 model.put("title", overviewKey); 106 model.put("analyses", analyses); 108 model.put("overview", overview); 109 modelAndView = new ModelAndView("dashboardView", "model", model); 110 }else if(menuName!= null){ 111 logger.debug("building overview for submenu: " + menuName); 112 113 Menu menu = projectContext.buildMenu().getSubMenu(menuName); 114 AnalysisCollectionMenuVisitor visitor = new AnalysisCollectionMenuVisitor(projectContext); 115 menu.accept(visitor); 116 List analyses = new LinkedList (); 117 Iterator links = visitor.getAnalyses().keySet().iterator(); 118 while(links.hasNext()){ 119 String config = (String )links.next(); 120 try{ 121 projectContext.restoreAnalysis(config); 123 analyses.add(new MenuItem(MenuBuilder.constructDisplayName(config), config)); 124 }catch(IOException e){ 125 logger.warn("Trapping IOException - missing analysis in overview, probably need to reconfigure overview", e); 127 analyses.add(new MenuItem(MenuBuilder.constructDisplayName(config) + " - Missing", "broken") ); 128 } 129 } 130 131 model.put("title", menuName); 132 model.put("analyses", analyses); 133 134 Overview overview = new Overview(); 137 overview.setDescription(menuName); 139 model.put("overview", overview); 140 modelAndView = new ModelAndView("dashboardView", "model", model); 141 } 142 143 return modelAndView; 144 } 145 146 147 148 } 149 | Popular Tags |