1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.services.cms.jcrext.activity;
18
19 import javax.jcr.Node;
20 import javax.jcr.Property;
21
22 import org.apache.commons.chain.Context;
23 import org.exoplatform.services.command.action.Action;
24 import org.exoplatform.services.listener.ListenerService;
25 import org.exoplatform.services.security.ConversationState;
26 import org.exoplatform.services.wcm.core.NodetypeConstant;
27 import org.exoplatform.services.wcm.utils.WCMCoreUtils;
28
29
30
31
32
33
34
35 public class RemoveFilePropertyActivityAction implements Action{
36 private ListenerService listenerService=null;
37 private ActivityCommonService activityService = null;
38 public RemoveFilePropertyActivityAction() {
39 listenerService = WCMCoreUtils.getService(ListenerService.class);
40 activityService = WCMCoreUtils.getService(ActivityCommonService.class);
41 }
42 @Override
43 public boolean execute(Context context) throws Exception {
44 Object item = context.get("currentItem");
45 Node node = (item instanceof Property) ?((Property)item).getParent():(Node)item;
46 Node nodeTemp = node;
47 String propertyName = (item instanceof Property) ?((Property)item).getName():((Node)item).getName();
48
49 if (!activityService.isAcceptedFileProperties(propertyName)) return false;
50 if (ConversationState.getCurrent() == null) return false;
51
52 if(node.isNodeType("nt:resource")) node = node.getParent();
53
54 if (node.getPrimaryNodeType().getName().equals(NodetypeConstant.NT_FILE) && activityService.isBroadcastNTFileEvents(node)) {
55
56 listenerService.broadcast(ActivityCommonService.FILE_PROPERTY_REMOVE_ACTIVITY, nodeTemp, propertyName);
57 }
58 return false;
59 }
60
61 }