@Override protected void onHandleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String type = request.getParameter("type"); String typeId = request.getParameter("typeId"); Integer sAccountId = Integer.parseInt(request.getParameter("sAccountId")); String siteURL = request.getParameter("siteURL"); String timeZoneId = request.getParameter("timeZone"); TimeZone timeZone = TimezoneMapper.getTimezone(timeZoneId); String username = request.getParameter("username"); String localeParam = request.getParameter("locale"); Locale locale = LocaleHelper.toLocale(localeParam); String html = ""; if (ProjectTypeConstants.PROJECT.equals(type)) { ProjectService service = ApplicationContextUtil.getSpringBean(ProjectService.class); SimpleProject project = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipProject(locale, project, siteURL, timeZone); } else if (ProjectTypeConstants.MESSAGE.equals(type)) { MessageService service = ApplicationContextUtil.getSpringBean(MessageService.class); SimpleMessage message = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipMessage(locale, message, siteURL, timeZone); } else if (ProjectTypeConstants.MILESTONE.equals(type)) { MilestoneService service = ApplicationContextUtil.getSpringBean(MilestoneService.class); SimpleMilestone mileStone = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipMilestone(locale, mileStone, siteURL, timeZone); } else if (ProjectTypeConstants.BUG.equals(type)) { BugService service = ApplicationContextUtil.getSpringBean(BugService.class); SimpleBug bug = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipBug(locale, bug, siteURL, timeZone); } else if (ProjectTypeConstants.TASK.equals(type)) { ProjectTaskService service = ApplicationContextUtil.getSpringBean(ProjectTaskService.class); SimpleTask task = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipTask(locale, task, siteURL, timeZone); } else if (ProjectTypeConstants.RISK.equals(type)) { RiskService service = ApplicationContextUtil.getSpringBean(RiskService.class); SimpleRisk risk = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipRisk(locale, risk, siteURL, timeZone); } else if (ProjectTypeConstants.PROBLEM.equals(type)) { ProblemService service = ApplicationContextUtil.getSpringBean(ProblemService.class); SimpleProblem problem = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipProblem(locale, problem, siteURL, timeZone); } else if (ProjectTypeConstants.BUG_VERSION.equals(type)) { VersionService service = ApplicationContextUtil.getSpringBean(VersionService.class); SimpleVersion version = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipVersion(locale, version, siteURL, timeZone); } else if (ProjectTypeConstants.BUG_COMPONENT.equals(type)) { ComponentService service = ApplicationContextUtil.getSpringBean(ComponentService.class); SimpleComponent component = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipComponent(locale, component, siteURL, timeZone); } else if (ProjectTypeConstants.PAGE.equals(type)) { ProjectPageService pageService = ApplicationContextUtil.getSpringBean(ProjectPageService.class); Page page = pageService.getPage(typeId, username); html = ProjectTooltipGenerator.generateToolTipPage(locale, page, siteURL, timeZone); } else if (ProjectTypeConstants.STANDUP.equals(type)) { StandupReportService service = ApplicationContextUtil.getSpringBean(StandupReportService.class); SimpleStandupReport standup = service.findById(Integer.parseInt(typeId), sAccountId); html = ProjectTooltipGenerator.generateToolTipStandUp(locale, standup, siteURL, timeZone); } else if (CrmTypeConstants.ACCOUNT.equals(type)) { AccountService service = ApplicationContextUtil.getSpringBean(AccountService.class); SimpleAccount account = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateToolTipAccount(locale, account, siteURL); } else if (CrmTypeConstants.CONTACT.equals(type)) { ContactService service = ApplicationContextUtil.getSpringBean(ContactService.class); SimpleContact contact = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateToolTipContact(locale, contact, siteURL, timeZone); } else if (CrmTypeConstants.CAMPAIGN.equals(type)) { CampaignService service = ApplicationContextUtil.getSpringBean(CampaignService.class); SimpleCampaign account = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateTooltipCampaign(locale, account, siteURL, timeZone); } else if (CrmTypeConstants.LEAD.equals(type)) { LeadService service = ApplicationContextUtil.getSpringBean(LeadService.class); SimpleLead lead = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateTooltipLead(locale, lead, siteURL, timeZone); } else if (CrmTypeConstants.OPPORTUNITY.equals(type)) { OpportunityService service = ApplicationContextUtil.getSpringBean(OpportunityService.class); SimpleOpportunity opportunity = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateTooltipOpportunity(locale, opportunity, siteURL, timeZone); } else if (CrmTypeConstants.CASE.equals(type)) { CaseService service = ApplicationContextUtil.getSpringBean(CaseService.class); SimpleCase cases = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateTooltipCases(locale, cases, siteURL, timeZone); } else if (CrmTypeConstants.MEETING.equals(type)) { MeetingService service = ApplicationContextUtil.getSpringBean(MeetingService.class); SimpleMeeting meeting = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateToolTipMeeting(locale, meeting, siteURL, timeZone); } else if (CrmTypeConstants.CALL.equals(type)) { CallService service = ApplicationContextUtil.getSpringBean(CallService.class); SimpleCall call = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateToolTipCall(locale, call, siteURL, timeZone); } else if (CrmTypeConstants.TASK.equals(type)) { TaskService service = ApplicationContextUtil.getSpringBean(TaskService.class); com.esofthead.mycollab.module.crm.domain.SimpleTask crmTask = service.findById(Integer.parseInt(typeId), sAccountId); html = CrmTooltipGenerator.generateToolTipCrmTask(locale, crmTask, siteURL, timeZone); } else if ("User".equals(type)) { UserService service = ApplicationContextUtil.getSpringBean(UserService.class); SimpleUser user = service.findUserByUserNameInAccount(username, sAccountId); html = CommonTooltipGenerator.generateTooltipUser(locale, user, siteURL, timeZone); } else { LOG.error("Can not generate tooltip for item has type " + type); } response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(html); return; } catch (Exception e) { LOG.error("Error while get html tooltip attachForm TooltipGeneratorServletRequestHandler", e); String html = null; PrintWriter out = response.getWriter(); out.println(html); return; } }