com.inkwell.internet.slogan.portlet.SloganContest.java Source code

Java tutorial

Introduction

Here is the source code for com.inkwell.internet.slogan.portlet.SloganContest.java

Source

/**
 * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.inkwell.internet.slogan.portlet;

import com.inkwell.internet.slogan.NoSuchSloganException;
import com.inkwell.internet.slogan.model.Slogan;
import com.inkwell.internet.slogan.model.impl.SloganImpl;
import com.inkwell.internet.slogan.service.SloganLocalServiceUtil;
import com.inkwell.internet.slogan.util.ActionUtil;
import com.inkwell.internet.slogan.util.SloganValidator;
import com.inkwell.internet.slogan.util.WebKeys;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.servlet.SessionErrors;
import com.liferay.portal.kernel.servlet.SessionMessages;
import com.liferay.portal.kernel.util.NullWrapper;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.PortalClassInvoker;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.service.ServiceContext;
import com.liferay.portal.service.ServiceContextFactory;
import com.liferay.util.bridges.mvc.MVCPortlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

/**
 * Portlet implementation class SloganContest
 */
public class SloganContest extends MVCPortlet {

    /**
     * Called when a user is either adding or updating a statement. If the
     * primary key is greater than 0, an update is performed, because there's an
     * existing key. Otherwise, an add is performed.
     *
     * @param request
     * @param response
     * @throws SystemException
     * @throws PortalException
     */
    public void updateSlogan(ActionRequest request, ActionResponse response)
            throws PortalException, SystemException {

        Slogan slogan = ActionUtil.sloganFromRequest(request);

        ArrayList<String> errors = new ArrayList<String>();
        ServiceContext serviceContext = ServiceContextFactory.getInstance(Slogan.class.getName(), request);

        if (SloganValidator.validateSlogan(slogan, errors)) {
            if (slogan.getSloganId() > 0) {
                // Updating

                try {
                    Slogan fromDB = SloganLocalServiceUtil.getSlogan(slogan.getSloganId());

                    if (fromDB != null && (slogan.getSloganId() == fromDB.getSloganId())) {

                        fromDB = SloganLocalServiceUtil.updateSlogan(slogan, false);

                        SessionMessages.add(request, "slogan-added");
                    }
                } catch (PortalException e) {
                    errors.add("failed-to-update");
                } catch (SystemException e) {
                    errors.add("failed-to-update");
                }
            } else {
                // Adding

                try {
                    SloganLocalServiceUtil.addSlogan(slogan, slogan.getUserId(), serviceContext);

                } catch (SystemException e) {
                    errors.add("failed-to-add");
                } catch (PortalException e) {
                    errors.add("failed-to-add");
                }
            }

            // response.setRenderParameter("jspPage", "/html/view.jsp");
        } else {
            for (String error : errors) {
                SessionErrors.add(request, error);
            }

            request.setAttribute(WebKeys.SLOGAN_ENTRY, slogan);
            response.setRenderParameter("jspPage", "/html/edit_slogan.jsp");
        }
    }

    /**
     * Deletes the slogan from the database.
     *
     * @param request
     * @param response
     */
    public void deleteSlogan(ActionRequest request, ActionResponse response) throws Exception {

        long sloganKey = ParamUtil.getLong(request, "resourcePrimKey");

        if (Validator.isNotNull(sloganKey)) {
            SloganLocalServiceUtil.deleteSlogan(sloganKey);
            SessionMessages.add(request, "slogan-deleted");
        } else {
            SessionErrors.add(request, "error-deleting");

        }
    }

    public void render(RenderRequest renderRequest, RenderResponse renderResponse)
            throws PortletException, IOException {
        try {
            Slogan slogan = null;

            long resourcePrimKey = ParamUtil.getLong(renderRequest, "resourcePrimKey");

            if (resourcePrimKey > 0) {
                slogan = SloganLocalServiceUtil.getSlogan(resourcePrimKey);
            } else {
                slogan = new SloganImpl();
            }

            renderRequest.setAttribute(WebKeys.SLOGAN_ENTRY, slogan);
        } catch (Exception e) {
            if (e instanceof NoSuchSloganException) {
                SessionErrors.add(renderRequest, e.getClass().getName());
            } else {
                throw new PortletException(e);
            }
        }

        super.render(renderRequest, renderResponse);
    }

    @SuppressWarnings("deprecation")
    public void invokeTaglibDiscussion(ActionRequest actionRequest, ActionResponse actionResponse)
            throws Exception {
        System.out.println("\n\ndung\n\n");
        Object[] args = new Object[] { new NullWrapper("org.apache.struts.action.ActionMapping"),
                new NullWrapper("org.apache.struts.action.ActionForm"), getPortletConfig(), actionRequest,
                actionResponse };

        PortalClassInvoker.invoke("com.liferay.portlet.messageboards.action.EditDiscussionAction", "processAction",
                args);
    }
}