001
014
015 package com.liferay.taglib.ui;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.kernel.util.StringPool;
021 import com.liferay.portlet.asset.AssetRendererFactoryRegistryUtil;
022 import com.liferay.portlet.asset.model.AssetEntry;
023 import com.liferay.portlet.asset.model.AssetRenderer;
024 import com.liferay.portlet.asset.model.AssetRendererFactory;
025 import com.liferay.portlet.asset.service.AssetEntryLocalServiceUtil;
026 import com.liferay.taglib.util.IncludeTag;
027
028 import javax.servlet.http.HttpServletRequest;
029
030
033 public class AssetMetadataTag extends IncludeTag {
034
035 public String getClassName() {
036 return _className;
037 }
038
039 public long getClassPK() {
040 return _classPK;
041 }
042
043 public String[] getMetadataFields() {
044 return _metadataFields;
045 }
046
047 public boolean isFilterByMetadata() {
048 return _filterByMetadata;
049 }
050
051 public void setClassName(String className) {
052 _className = className;
053 }
054
055 public void setClassPK(long classPK) {
056 _classPK = classPK;
057 }
058
059 public void setFilterByMetadata(boolean filterByMetadata) {
060 _filterByMetadata = filterByMetadata;
061 }
062
063 public void setMetadataFields(String[] metadataFields) {
064 _metadataFields = metadataFields;
065 }
066
067 @Override
068 protected void cleanUp() {
069 _className = StringPool.BLANK;
070 _classPK = 0;
071 _filterByMetadata = false;
072 _metadataFields = null;
073 }
074
075 @Override
076 protected String getPage() {
077 return _PAGE;
078 }
079
080 @Override
081 protected void setAttributes(HttpServletRequest request) {
082 AssetEntry assetEntry = AssetEntryLocalServiceUtil.fetchEntry(
083 _className, _classPK);
084
085 request.setAttribute(
086 "liferay-ui:asset-metadata:assetEntry", assetEntry);
087
088 AssetRendererFactory<?> assetRendererFactory =
089 AssetRendererFactoryRegistryUtil.getAssetRendererFactoryByClassName(
090 _className);
091
092 try {
093 AssetRenderer<?> assetRenderer =
094 assetRendererFactory.getAssetRenderer(_classPK);
095
096 request.setAttribute(
097 "liferay-ui:asset-metadata:assetRenderer", assetRenderer);
098 }
099 catch (PortalException pe) {
100 _log.error(pe, pe);
101 }
102
103 request.setAttribute("liferay-ui:asset-metadata:className", _className);
104 request.setAttribute("liferay-ui:asset-metadata:classPK", _classPK);
105 request.setAttribute(
106 "liferay-ui:asset-metadata:filterByMetadata", _filterByMetadata);
107 request.setAttribute(
108 "liferay-ui:asset-metadata:metadataFields", _metadataFields);
109 }
110
111 private static final String _PAGE =
112 "/html/taglib/ui/asset_metadata/page.jsp";
113
114 private static final Log _log = LogFactoryUtil.getLog(
115 AssetMetadataTag.class);
116
117 private String _className = StringPool.BLANK;
118 private long _classPK;
119 private boolean _filterByMetadata;
120 private String[] _metadataFields;
121
122 }