Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package kz.bsbnb.petcatalog.portlet;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.Locale;
- import java.util.TimeZone;
- import javax.portlet.ActionRequest;
- import javax.portlet.ActionResponse;
- import javax.portlet.PortletRequest;
- import javax.servlet.http.HttpServletRequest;
- import org.apache.commons.lang.StringUtils;
- import com.liferay.portal.kernel.log.Log;
- import com.liferay.portal.kernel.log.LogFactoryUtil;
- import com.liferay.portal.kernel.servlet.SessionErrors;
- import com.liferay.portal.kernel.util.CalendarFactoryUtil;
- import com.liferay.portal.kernel.util.ParamUtil;
- import com.liferay.portal.kernel.util.WebKeys;
- import com.liferay.portal.security.permission.ActionKeys;
- import com.liferay.portal.service.ServiceContext;
- import com.liferay.portal.service.ServiceContextFactory;
- import com.liferay.portal.theme.ThemeDisplay;
- import com.liferay.portal.util.PortalUtil;
- import com.liferay.util.bridges.mvc.MVCPortlet;
- import kz.bsbnb.petcatalog.model.Pet;
- import kz.bsbnb.petcatalog.service.PetLocalServiceUtil;
- public class PetCatalogPortlet extends MVCPortlet {
- // в начале класса всегда определяем логгер log
- private static final Log log = LogFactoryUtil.getLog(PetCatalogPortlet.class.getName());
- // пути на JSP сохраняем в константах
- public static final String PORTLET_PATH = "/html/petcatalog/";
- public static final String VIEW_JSP = PORTLET_PATH + "view.jsp";
- public static final String EDIT_PET_JSP = PORTLET_PATH + "edit-pet.jsp";
- public static final String VIEW_PET_JSP = PORTLET_PATH + "view-pet.jsp";
- // перечисляем используемые параметры и аттрибуты
- public static final String PARAM_PET = "pet";
- public static final String PARAM_PET_ID = "petId";
- public static final String PARAM_PETS = "pets";
- public static final String PARAM_PETS_COUNT = "petsCount";
- public void updatePet(ActionRequest request, ActionResponse response) {
- ThemeDisplay themeDisplay = getThemeDisplay(request);
- String redirect = ParamUtil.getString(request, WebKeys.REDIRECT);
- long petId = ParamUtil.getLong(request, PARAM_PET_ID);
- String name = ParamUtil.getString(request, "name");
- String description = ParamUtil.getString(request, "description");
- Double price = ParamUtil.getDouble(request, "price");
- Date birthday = getDateFromRequest(request, "birthday");
- try {
- ServiceContext serviceContext = ServiceContextFactory.getInstance(Pet.class.getName(), request);
- Pet pet = null;
- // определяем - был ли передан ID объекта или нет
- // если нет - значит мы добавляем новый объект
- // если да - значит обновляем существующий
- if (petId == 0) {
- log.info("User " + themeDisplay.getUserId() + " attemtps to add new pet");
- pet = PetLocalServiceUtil.addPet(themeDisplay.getCompanyId(),
- themeDisplay.getScopeGroupId(),
- themeDisplay.getUserId(),
- name, description, price, birthday,
- serviceContext);
- } else {
- log.info("User " + themeDisplay.getUserId() + " attemtps to edit pet " + petId);
- /*
- pet = PetLocalServiceUtil.updatePet(petId,
- themeDisplay.getUserId(),
- name, description, price, birthday,
- serviceContext);
- */
- }
- log.info("Pet " + pet.getPetId() + " added/updated");
- if (StringUtils.isBlank(redirect)) {
- // В случае если redirect пустой- мы должны остаться на той же
- // форме редактирвоания.
- // такое может быть в случае если редактирование было вызвано из
- // asset publisher-а или формы workflow task
- response.setRenderParameter("jspPage", EDIT_PET_JSP);
- response.setRenderParameter(PARAM_PET_ID, String.valueOf(petId));
- }
- } catch (Exception ex) {
- log.error("Cannot add/update pet", ex);
- copyRequestParameters(request, response);
- SessionErrors.add(request, "cannot-add-pet");
- }
- }
- private ThemeDisplay getThemeDisplay(PortletRequest request) {
- return (ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
- }
- protected void copyRequestParameters(ActionRequest request, ActionResponse response) {
- // copy parameters from action request to response
- for (Object key : request.getParameterMap().keySet()) {
- String val = request.getParameter((String) key);
- if (val != null && !"image".equals(key) && !((String) key).startsWith("fileName")) {
- response.setRenderParameter((String) key, val);
- }
- }
- }
- /// Get Date From Request
- protected Date getDateFromRequest(PortletRequest request, String prefix) {
- return getDateFromRequest(PortalUtil.getHttpServletRequest(request), prefix);
- }
- protected Date getDateFromRequest(HttpServletRequest request, String prefix) {
- return getDateFromRequest(request, prefix, null);
- }
- protected Date getDateFromRequest(HttpServletRequest request, String prefix, TimeZone timeZone) {
- int month = ParamUtil.getInteger(request, prefix + "Month");
- int day = ParamUtil.getInteger(request, prefix + "Day");
- int year = ParamUtil.getInteger(request, prefix + "Year");
- Locale locale = request.getLocale();
- if (timeZone == null) {
- ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
- timeZone = themeDisplay.getTimeZone();
- }
- return getDate(month, day, year, locale, timeZone);
- }
- protected Date getDate(int month, int day, int year, Locale locale, TimeZone timeZone) {
- Calendar date = CalendarFactoryUtil.getCalendar(timeZone, locale);
- date.set(Calendar.MONTH, month);
- date.set(Calendar.DATE, day);
- date.set(Calendar.YEAR, year);
- date.set(Calendar.HOUR_OF_DAY, 0);
- date.set(Calendar.MINUTE, 0);
- date.set(Calendar.SECOND, 0);
- date.set(Calendar.MILLISECOND, 0);
- return date.getTime();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement