Advertisement
akakunin

PetCatalogPortlet.java

Dec 6th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.83 KB | None | 0 0
  1. package kz.bsbnb.petcatalog.portlet;
  2.  
  3. import java.util.Calendar;
  4. import java.util.Date;
  5. import java.util.Locale;
  6. import java.util.TimeZone;
  7.  
  8. import javax.portlet.ActionRequest;
  9. import javax.portlet.ActionResponse;
  10. import javax.portlet.PortletRequest;
  11. import javax.servlet.http.HttpServletRequest;
  12.  
  13. import org.apache.commons.lang.StringUtils;
  14.  
  15. import com.liferay.portal.kernel.log.Log;
  16. import com.liferay.portal.kernel.log.LogFactoryUtil;
  17. import com.liferay.portal.kernel.servlet.SessionErrors;
  18. import com.liferay.portal.kernel.util.CalendarFactoryUtil;
  19. import com.liferay.portal.kernel.util.ParamUtil;
  20. import com.liferay.portal.kernel.util.WebKeys;
  21. import com.liferay.portal.security.permission.ActionKeys;
  22. import com.liferay.portal.service.ServiceContext;
  23. import com.liferay.portal.service.ServiceContextFactory;
  24. import com.liferay.portal.theme.ThemeDisplay;
  25. import com.liferay.portal.util.PortalUtil;
  26. import com.liferay.util.bridges.mvc.MVCPortlet;
  27.  
  28. import kz.bsbnb.petcatalog.model.Pet;
  29. import kz.bsbnb.petcatalog.service.PetLocalServiceUtil;
  30.  
  31. public class PetCatalogPortlet extends MVCPortlet {
  32. // в начале класса всегда определяем логгер log
  33. private static final Log log = LogFactoryUtil.getLog(PetCatalogPortlet.class.getName());
  34.  
  35. // пути на JSP сохраняем в константах
  36. public static final String PORTLET_PATH = "/html/petcatalog/";
  37. public static final String VIEW_JSP = PORTLET_PATH + "view.jsp";
  38. public static final String EDIT_PET_JSP = PORTLET_PATH + "edit-pet.jsp";
  39. public static final String VIEW_PET_JSP = PORTLET_PATH + "view-pet.jsp";
  40.  
  41. // перечисляем используемые параметры и аттрибуты
  42. public static final String PARAM_PET = "pet";
  43. public static final String PARAM_PET_ID = "petId";
  44. public static final String PARAM_PETS = "pets";
  45. public static final String PARAM_PETS_COUNT = "petsCount";
  46.  
  47.  
  48. public void updatePet(ActionRequest request, ActionResponse response) {
  49. ThemeDisplay themeDisplay = getThemeDisplay(request);
  50. String redirect = ParamUtil.getString(request, WebKeys.REDIRECT);
  51. long petId = ParamUtil.getLong(request, PARAM_PET_ID);
  52.  
  53. String name = ParamUtil.getString(request, "name");
  54. String description = ParamUtil.getString(request, "description");
  55. Double price = ParamUtil.getDouble(request, "price");
  56. Date birthday = getDateFromRequest(request, "birthday");
  57.  
  58. try {
  59. ServiceContext serviceContext = ServiceContextFactory.getInstance(Pet.class.getName(), request);
  60.  
  61. Pet pet = null;
  62. // определяем - был ли передан ID объекта или нет
  63. // если нет - значит мы добавляем новый объект
  64. // если да - значит обновляем существующий
  65. if (petId == 0) {
  66.  
  67. log.info("User " + themeDisplay.getUserId() + " attemtps to add new pet");
  68.  
  69. pet = PetLocalServiceUtil.addPet(themeDisplay.getCompanyId(),
  70. themeDisplay.getScopeGroupId(),
  71. themeDisplay.getUserId(),
  72. name, description, price, birthday,
  73. serviceContext);
  74. } else {
  75.  
  76. log.info("User " + themeDisplay.getUserId() + " attemtps to edit pet " + petId);
  77.  
  78. /*
  79. pet = PetLocalServiceUtil.updatePet(petId,
  80. themeDisplay.getUserId(),
  81. name, description, price, birthday,
  82. serviceContext);
  83. */
  84.  
  85. }
  86.  
  87. log.info("Pet " + pet.getPetId() + " added/updated");
  88.  
  89. if (StringUtils.isBlank(redirect)) {
  90. // В случае если redirect пустой- мы должны остаться на той же
  91. // форме редактирвоания.
  92. // такое может быть в случае если редактирование было вызвано из
  93. // asset publisher-а или формы workflow task
  94. response.setRenderParameter("jspPage", EDIT_PET_JSP);
  95. response.setRenderParameter(PARAM_PET_ID, String.valueOf(petId));
  96. }
  97. } catch (Exception ex) {
  98. log.error("Cannot add/update pet", ex);
  99. copyRequestParameters(request, response);
  100. SessionErrors.add(request, "cannot-add-pet");
  101. }
  102. }
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111. private ThemeDisplay getThemeDisplay(PortletRequest request) {
  112. return (ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
  113. }
  114.  
  115. protected void copyRequestParameters(ActionRequest request, ActionResponse response) {
  116. // copy parameters from action request to response
  117. for (Object key : request.getParameterMap().keySet()) {
  118. String val = request.getParameter((String) key);
  119. if (val != null && !"image".equals(key) && !((String) key).startsWith("fileName")) {
  120. response.setRenderParameter((String) key, val);
  121. }
  122. }
  123. }
  124.  
  125.  
  126. /// Get Date From Request
  127. protected Date getDateFromRequest(PortletRequest request, String prefix) {
  128.  
  129. return getDateFromRequest(PortalUtil.getHttpServletRequest(request), prefix);
  130. }
  131.  
  132.  
  133. protected Date getDateFromRequest(HttpServletRequest request, String prefix) {
  134.  
  135. return getDateFromRequest(request, prefix, null);
  136. }
  137.  
  138.  
  139. protected Date getDateFromRequest(HttpServletRequest request, String prefix, TimeZone timeZone) {
  140. int month = ParamUtil.getInteger(request, prefix + "Month");
  141. int day = ParamUtil.getInteger(request, prefix + "Day");
  142. int year = ParamUtil.getInteger(request, prefix + "Year");
  143.  
  144. Locale locale = request.getLocale();
  145. if (timeZone == null) {
  146. ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
  147. timeZone = themeDisplay.getTimeZone();
  148. }
  149.  
  150. return getDate(month, day, year, locale, timeZone);
  151.  
  152. }
  153.  
  154. protected Date getDate(int month, int day, int year, Locale locale, TimeZone timeZone) {
  155.  
  156. Calendar date = CalendarFactoryUtil.getCalendar(timeZone, locale);
  157.  
  158. date.set(Calendar.MONTH, month);
  159. date.set(Calendar.DATE, day);
  160. date.set(Calendar.YEAR, year);
  161. date.set(Calendar.HOUR_OF_DAY, 0);
  162. date.set(Calendar.MINUTE, 0);
  163. date.set(Calendar.SECOND, 0);
  164. date.set(Calendar.MILLISECOND, 0);
  165.  
  166. return date.getTime();
  167. }
  168.  
  169.  
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement