001
014
015 package com.liferay.taglib.ui;
016
017 import com.liferay.portal.kernel.servlet.taglib.ui.BreadcrumbEntry;
018 import com.liferay.portal.kernel.servlet.taglib.ui.BreadcrumbUtil;
019 import com.liferay.portal.kernel.util.ArrayUtil;
020 import com.liferay.portal.kernel.util.Validator;
021 import com.liferay.portlet.portletdisplaytemplate.util.PortletDisplayTemplateUtil;
022 import com.liferay.taglib.util.IncludeTag;
023
024 import java.util.ArrayList;
025 import java.util.Collections;
026 import java.util.List;
027
028 import javax.servlet.http.HttpServletRequest;
029
030
033 public class BreadcrumbTag extends IncludeTag {
034
035 public void setDdmTemplateGroupId(long ddmTemplateGroupId) {
036 _ddmTemplateGroupId = ddmTemplateGroupId;
037 }
038
039 public void setDdmTemplateKey(String ddmTemplateKey) {
040 _ddmTemplateKey = ddmTemplateKey;
041 }
042
043 public void setShowCurrentGroup(boolean showCurrentGroup) {
044 _showCurrentGroup = showCurrentGroup;
045 }
046
047 public void setShowGuestGroup(boolean showGuestGroup) {
048 _showGuestGroup = showGuestGroup;
049 }
050
051 public void setShowLayout(boolean showLayout) {
052 _showLayout = showLayout;
053 }
054
055 public void setShowParentGroups(boolean showParentGroups) {
056 _showParentGroups = showParentGroups;
057 }
058
059 public void setShowPortletBreadcrumb(boolean showPortletBreadcrumb) {
060 _showPortletBreadcrumb = showPortletBreadcrumb;
061 }
062
063 @Override
064 protected void cleanUp() {
065 _ddmTemplateGroupId = 0;
066 _ddmTemplateKey = null;
067 _showCurrentGroup = true;
068 _showGuestGroup = false;
069 _showLayout = true;
070 _showParentGroups = true;
071 _showPortletBreadcrumb = true;
072 }
073
074 protected List<BreadcrumbEntry> getBreadcrumbEntries(
075 HttpServletRequest request) {
076
077 List<BreadcrumbEntry> breadcrumbEntries = Collections.emptyList();
078
079 List<Integer> breadcrumbEntryTypes = new ArrayList<>();
080
081 if (_showCurrentGroup) {
082 breadcrumbEntryTypes.add(BreadcrumbUtil.ENTRY_TYPE_CURRENT_GROUP);
083 }
084
085 if (_showGuestGroup) {
086 breadcrumbEntryTypes.add(BreadcrumbUtil.ENTRY_TYPE_GUEST_GROUP);
087 }
088
089 if (_showLayout) {
090 breadcrumbEntryTypes.add(BreadcrumbUtil.ENTRY_TYPE_LAYOUT);
091 }
092
093 if (_showParentGroups) {
094 breadcrumbEntryTypes.add(BreadcrumbUtil.ENTRY_TYPE_PARENT_GROUP);
095 }
096
097 if (_showPortletBreadcrumb) {
098 breadcrumbEntryTypes.add(BreadcrumbUtil.ENTRY_TYPE_PORTLET);
099 }
100
101 try {
102 breadcrumbEntries = BreadcrumbUtil.getBreadcrumbEntries(
103 request, ArrayUtil.toIntArray(breadcrumbEntryTypes));
104 }
105 catch (Exception e) {
106 }
107
108 return breadcrumbEntries;
109 }
110
111 protected String getDisplayStyle() {
112 if (Validator.isNotNull(_ddmTemplateKey)) {
113 return PortletDisplayTemplateUtil.getDisplayStyle(_ddmTemplateKey);
114 }
115
116 return null;
117 }
118
119 @Override
120 protected String getPage() {
121 return _PAGE;
122 }
123
124 @Override
125 protected void setAttributes(HttpServletRequest request) {
126 request.setAttribute(
127 "liferay-ui:breadcrumb:breadcrumbEntries",
128 getBreadcrumbEntries(request));
129 request.setAttribute(
130 "liferay-ui:breadcrumb:displayStyle", getDisplayStyle());
131 request.setAttribute(
132 "liferay-ui:breadcrumb:displayStyleGroupId", _ddmTemplateGroupId);
133 }
134
135 private static final String _PAGE = "/html/taglib/ui/breadcrumb/page.jsp";
136
137 private long _ddmTemplateGroupId;
138 private String _ddmTemplateKey;
139 private boolean _showCurrentGroup = true;
140 private boolean _showGuestGroup;
141 private boolean _showLayout = true;
142 private boolean _showParentGroups = true;
143 private boolean _showPortletBreadcrumb = true;
144
145 }