Package com.dianping.cat.system.page.alarm

Source Code of com.dianping.cat.system.page.alarm.Handler

package com.dianping.cat.system.page.alarm;

import java.io.IOException;

import javax.servlet.ServletException;

import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
import org.unidal.web.mvc.annotation.PreInboundActionMeta;

import com.dianping.cat.system.SystemPage;
import com.dianping.cat.system.page.login.service.LoginMember;

public class Handler implements PageHandler<Context> {
  public static final String FAIL = "Fail";

  public static final String SUCCESS = "Success";

  @Inject
  private JspViewer m_jspViewer;

  @Inject
  private RecordManager m_recordManager;

  @Inject
  private ScheduledManager m_scheduledManager;

  private String getLoginUserName(Context ctx) {
    LoginMember member = ctx.getSigninMember();

    if (member != null) {
      return member.getUserName();
    }

    return null;
  }

  @Override
  @PreInboundActionMeta("login")
  @PayloadMeta(Payload.class)
  @InboundActionMeta(name = "alarm")
  public void handleInbound(Context ctx) throws ServletException, IOException {
  }

  @Override
  @OutboundActionMeta(name = "alarm")
  public void handleOutbound(Context ctx) throws ServletException, IOException {
    Model model = new Model(ctx);
    Payload payload = ctx.getPayload();
    Action action = payload.getAction();
    String userName = getLoginUserName(ctx);
    boolean result = false;

    switch (action) {
    case SCHEDULED_REPORT_DELETE:
      m_scheduledManager.scheduledReportDelete(payload);
      m_scheduledManager.queryScheduledReports(model, userName);
      break;
    case SCHEDULED_REPORT_LIST:
      m_scheduledManager.queryScheduledReports(model, userName);
      break;
    case SCHEDULED_REPORT_UPDATE:
      m_scheduledManager.scheduledReportUpdate(payload, model);
      break;
    case SCHEDULED_REPORT_UPDATE_SUBMIT:
      m_scheduledManager.scheduledReportUpdateSubmit(payload, model);
      break;
    case SCHEDULED_REPORT_SUB:
      result = m_scheduledManager.scheduledReportSub(payload, userName);
      if (result) {
        model.setOpState(SUCCESS);
      } else {
        model.setOpState(FAIL);
      }
      break;
    case REPORT_RECORD_LIST:
      m_recordManager.queryUserReportRecords(model, userName);
      break;
    case ALARM_RECORD_DETAIL:
      m_recordManager.queryAlarmRecordDetail(payload, model);
      break;
    }

    model.setAction(payload.getAction());
    model.setPage(SystemPage.ALARM);
    m_jspViewer.view(ctx, model);
  }

}
TOP

Related Classes of com.dianping.cat.system.page.alarm.Handler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.