package org.exoplatform.ecm.webui.component.explorer.control.filter; import org.exoplatform.services.wcm.core.NodetypeConstant; import org.exoplatform.webui.ext.filter.UIExtensionAbstractFilter; import org.exoplatform.webui.ext.filter.UIExtensionFilterType; import javax.jcr.Node; import javax.jcr.RepositoryException; import java.util.Map; /** * Created by The eXo Platform SEA * Author : eXoPlatform * toannh@exoplatform.com * On 8/7/15 * Filter for Edit button * Edit content for content type * Edit property for nt:file */ public class IsContainBinaryFilter extends UIExtensionAbstractFilter { public IsContainBinaryFilter() { this("UIActionBar.msg.node-checkedin"); } public IsContainBinaryFilter(String messageKey) { super(messageKey, UIExtensionFilterType.MANDATORY); } public boolean accept(Map<String, Object> context) throws Exception { if (context == null) return true; Node currentNode = (Node) context.get(Node.class.getName()); if(NodetypeConstant.NT_FILE.equals(currentNode.getPrimaryNodeType().getName())) { try { String mimeType = currentNode.getNode(NodetypeConstant.JCR_CONTENT) .getProperty(NodetypeConstant.JCR_MIME_TYPE).getString(); if (mimeType != null && !(mimeType.startsWith("text") || mimeType.indexOf("groovy") >= 0)) { return true; } } catch (RepositoryException re) { return false; } } return false; } public void onDeny(Map<String, Object> context) throws Exception {} }