org.ahp.vinavidai.quiz.action.DisplayEditQuiz.java Source code

Java tutorial

Introduction

Here is the source code for org.ahp.vinavidai.quiz.action.DisplayEditQuiz.java

Source

/*
 * Copyright 2012 Anita Onnuvel
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.ahp.vinavidai.quiz.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.ahp.commons.action.AhpAbstractDisplayAction;
import org.ahp.core.actions.AhpActionHelper;
import org.ahp.core.businessdelegate.AhpBusinessDelegate;
import org.ahp.core.pojo.User;
import org.ahp.vinavidai.enums.NavigateActions;
import org.ahp.vinavidai.enums.SubmitActions;
import org.ahp.vinavidai.pojo.Category;
import org.ahp.vinavidai.pojo.Quiz;
import org.ahp.vinavidai.pojo.SkillLevel;
import org.ahp.vinavidai.quiz.QuizService;
import org.ahp.vinavidai.quiz.form.EditQuizForm;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author Anita Onnuvel
 * 
 * @struts.action path="/DisplayEditQuiz" name="EditQuizForm" scope="session"
 *                validate="false"
 * 
 * @struts.action-forward name="DisplayEditQuiz" path="/quiz/Quiz.jsp"
 * 
 * @struts.action-forward name="DisplayEditQuestion"
 *                        path="/ProcessEditQuestion.do" redirect="true"
 * 
 * @spring.bean name="/DisplayEditQuiz"
 * 
 * @spring.property name="quizService" ref="quizService"
 * 
 */
public class DisplayEditQuiz extends AhpAbstractDisplayAction {

    final static Logger LOGGER = LoggerFactory.getLogger(DisplayEditQuiz.class);

    private QuizService mQuizService;

    public void setQuizService(QuizService pQuizService) {
        this.mQuizService = pQuizService;
    }

    @Override
    public ActionForward display(ActionMapping pActionMapping, ActionForm pActionForm,
            HttpServletRequest pHttpServletRequest, HttpServletResponse pHttpServletResponse) {
        User lLoggedInUser = AhpActionHelper.getLoggedInUser(pHttpServletRequest);
        EditQuizForm lEditQuizForm = (EditQuizForm) pActionForm;
        String lNextPage = StringUtils.trimToEmpty(lEditQuizForm.getNextPage());
        ActionForward lActionForward = pActionMapping.findForward(NavigateActions.DisplayEditQuiz.toString());
        if (NavigateActions.DisplayEditQuiz.toString().equals(lNextPage)) {
            // if ( lEditQuizForm.isSubmitAction( SubmitActions.EMPTY ) )
            // {

            // }
            if (lEditQuizForm.isSubmitAction(SubmitActions.ADD_CATEGORY)) {
                Category lCategory = new Category();
                lCategory.setCategory("");
                lCategory.setQuiz(lEditQuizForm.getQuizUnderEdit());
                lCategory.setAudit(AhpBusinessDelegate.createAudit(lLoggedInUser));
                lEditQuizForm.getCategory().add(lCategory);
            } else if (lEditQuizForm.isSubmitAction(SubmitActions.DELETE_CATEGORY)) {
                int lDeleteIndex = lEditQuizForm.getHiddenDeleteCategoryIndex();
                if (lDeleteIndex != -1) {
                    if (lEditQuizForm.getCategory().size() > lDeleteIndex) {
                        lEditQuizForm.getDeleteCategoryIdSet().add(new Long(lDeleteIndex));
                        lEditQuizForm.getCategory().remove(lDeleteIndex);
                    }
                }
            } else if (lEditQuizForm.isSubmitAction(SubmitActions.ADD_SKILL_LEVEL)) {
                SkillLevel lSkillLevel = new SkillLevel();
                lSkillLevel.setSkillLevel("");
                lSkillLevel.setQuiz(lEditQuizForm.getQuizUnderEdit());
                lSkillLevel.setAudit(AhpBusinessDelegate.createAudit(lLoggedInUser));
                lEditQuizForm.getSkillLevel().add(lSkillLevel);
            } else if (lEditQuizForm.isSubmitAction(SubmitActions.DELETE_SKILL_LEVEL)) {
                int lDeleteIndex = lEditQuizForm.getHiddenDeleteSkillLevelIndex();
                if (lDeleteIndex != -1) {
                    if (lEditQuizForm.getSkillLevel().size() > lDeleteIndex) {
                        lEditQuizForm.getDeleteSkillLevelIdSet().add(new Long(lDeleteIndex));
                        lEditQuizForm.getSkillLevel().remove(lDeleteIndex);
                    }
                }
            } else if (lEditQuizForm.isSubmitAction(SubmitActions.SAVE_CHANGES)) {

            } else {
                Quiz lManagedQuizUnderEdit = this.mQuizService
                        .loadQuiz(lEditQuizForm.getQuizUnderEdit().getQuizId(), true);
                lEditQuizForm.setQuizName(lManagedQuizUnderEdit.getQuizName());
                lEditQuizForm.setQuizDescription(lManagedQuizUnderEdit.getQuizDescription());
                List<Category> categoryList = new ArrayList<Category>();
                categoryList.addAll(lManagedQuizUnderEdit.getCategories());
                lEditQuizForm.setCategory(categoryList);
                List<SkillLevel> skillLevelList = new ArrayList<SkillLevel>();
                skillLevelList.addAll(lManagedQuizUnderEdit.getSkillLevels());
                lEditQuizForm.setSkillLevel(skillLevelList);
            }
            lActionForward = pActionMapping.findForward(NavigateActions.DisplayEditQuiz.toString());
        }
        if (NavigateActions.DisplayEditQuestion.toString().equals(lNextPage)) {
            lActionForward = pActionMapping.findForward(NavigateActions.DisplayEditQuestion.toString());
        }
        return lActionForward;
    }
}