1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.ecm.webui.component.explorer.control.action;
18
19 import java.util.Arrays;
20 import java.util.List;
21
22 import org.exoplatform.ecm.utils.text.Text;
23 import org.exoplatform.ecm.webui.component.explorer.UIJCRExplorer;
24 import org.exoplatform.ecm.webui.component.explorer.control.filter.CanAddNodeFilter;
25 import org.exoplatform.ecm.webui.component.explorer.control.filter.IsCheckedOutFilter;
26 import org.exoplatform.ecm.webui.component.explorer.control.filter.IsMixCommentable;
27 import org.exoplatform.ecm.webui.component.explorer.control.filter.IsNotLockedFilter;
28 import org.exoplatform.ecm.webui.component.explorer.control.listener.UIActionBarActionListener;
29 import org.exoplatform.ecm.webui.component.explorer.popup.actions.UICommentForm;
30 import org.exoplatform.webui.config.annotation.ComponentConfig;
31 import org.exoplatform.webui.config.annotation.EventConfig;
32 import org.exoplatform.webui.core.UIComponent;
33 import org.exoplatform.webui.core.UIPopupContainer;
34 import org.exoplatform.webui.event.Event;
35 import org.exoplatform.webui.ext.filter.UIExtensionFilter;
36 import org.exoplatform.webui.ext.filter.UIExtensionFilters;
37
38
39
40
41
42
43
44 @ComponentConfig(
45 events = {
46 @EventConfig(listeners = CommentActionComponent.CommentActionListener.class)
47 }
48 )
49 public class CommentActionComponent extends UIComponent {
50
51 private static final List<UIExtensionFilter> FILTERS = Arrays.asList(new UIExtensionFilter[] {
52 new CanAddNodeFilter(), new IsMixCommentable(),
53 new IsCheckedOutFilter("UICommentForm.msg.not-checkedout"), new IsNotLockedFilter() });
54
55 @UIExtensionFilters
56 public List<UIExtensionFilter> getFilters() {
57 return FILTERS;
58 }
59
60 public static class CommentActionListener extends UIActionBarActionListener<CommentActionComponent> {
61 public void processEvent(Event<CommentActionComponent> event) throws Exception {
62 UIJCRExplorer uiExplorer = event.getSource().getAncestorOfType(UIJCRExplorer.class);
63 UIPopupContainer uiPopupContainer = uiExplorer.getChild(UIPopupContainer.class);
64 UICommentForm uiCommentForm = uiPopupContainer.createUIComponent(UICommentForm.class, null, null);
65 String commentNodePath = event.getRequestContext().getRequestParameter("nodePath");
66 if (commentNodePath != null && commentNodePath.length() > 0) {
67 uiCommentForm.setNodeCommentPath(Text.escapeIllegalJcrChars(commentNodePath));
68 uiCommentForm.setEdit(true);
69 }
70 uiPopupContainer.activate(uiCommentForm, 750, 0);
71 event.getRequestContext().addUIComponentToUpdateByAjax(uiPopupContainer);
72 }
73 }
74 }