Advertisement
akakunin

PetAssetRendererFactory

Dec 7th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. package kz.bsbnb.petcatalog.asset;
  2. import javax.portlet.PortletURL;
  3.  
  4. import com.liferay.portal.kernel.exception.PortalException;
  5. import com.liferay.portal.kernel.exception.SystemException;
  6. import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
  7. import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
  8. import com.liferay.portal.kernel.util.WebKeys;
  9. import com.liferay.portal.security.permission.PermissionChecker;
  10. import com.liferay.portal.theme.ThemeDisplay;
  11. import com.liferay.portlet.asset.model.AssetRenderer;
  12. import com.liferay.portlet.asset.model.BaseAssetRendererFactory;
  13.  
  14. import kz.bsbnb.petcatalog.PortletKeys;
  15. import kz.bsbnb.petcatalog.model.Pet;
  16. import kz.bsbnb.petcatalog.portlet.PetCatalogPortlet;
  17. import kz.bsbnb.petcatalog.service.PetLocalServiceUtil;
  18. import kz.bsbnb.petcatalog.service.permissions.PetCatalogPermission;
  19. import kz.bsbnb.petcatalog.service.permissions.PetPermission;
  20.  
  21. /**
  22. * Класс отвечает за создание PetAssetRenderer классов
  23. *
  24. */
  25. public class PetAssetRendererFactory extends BaseAssetRendererFactory {
  26.  
  27. public static final String TYPE = "pet";
  28.  
  29. /**
  30. * создает renderer класс для объекта - в нашем случае PetAssetRenderer
  31. *
  32. */
  33. @Override
  34. public AssetRenderer getAssetRenderer(long classPK, int type)
  35. throws PortalException, SystemException {
  36.  
  37. Pet pet = PetLocalServiceUtil.getPet(classPK);
  38.  
  39. PetAssetRenderer petAssetRenderer =
  40. new PetAssetRenderer(pet);
  41.  
  42. return petAssetRenderer;
  43. }
  44.  
  45. @Override
  46. public String getClassName() {
  47. return Pet.class.getName();
  48. }
  49.  
  50. @Override
  51. public String getType() {
  52. return TYPE;
  53. }
  54.  
  55. /**
  56. * Генерирует ссылку на диалог создания новой сущности. Используется в
  57. * публикаторе в кнопке Add...
  58. */
  59. @Override
  60. public PortletURL getURLAdd(
  61. LiferayPortletRequest liferayPortletRequest,
  62. LiferayPortletResponse liferayPortletResponse) {
  63.  
  64. ThemeDisplay themeDisplay =
  65. (ThemeDisplay) liferayPortletRequest.getAttribute(
  66. WebKeys.THEME_DISPLAY);
  67.  
  68. if (!PetCatalogPermission.contains(
  69. themeDisplay.getPermissionChecker(),
  70. themeDisplay.getScopeGroupId(), PetCatalogPermission.ACTION_ADD_PET)) {
  71.  
  72. return null;
  73. }
  74.  
  75. PortletURL portletURL = liferayPortletResponse.createRenderURL(
  76. PortletKeys.PET_CATALOG);
  77.  
  78. portletURL.setParameter("jspPage", PetCatalogPortlet.EDIT_PET_JSP);
  79.  
  80. return portletURL;
  81. }
  82.  
  83.  
  84. @Override
  85. public boolean hasPermission(
  86. PermissionChecker permissionChecker, long classPK, String actionId)
  87. throws Exception {
  88.  
  89. return PetPermission.contains(
  90. permissionChecker, classPK, actionId);
  91. }
  92.  
  93.  
  94. /**
  95. * Если этот метод возвращает true - тогда объекты этого типа появляются в
  96. * списке "Add Related Assets"
  97. *
  98. */
  99. @Override
  100. public boolean isLinkable() {
  101. return _LINKABLE;
  102. }
  103.  
  104. private static final boolean _LINKABLE = true;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement