1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.wcm.ext.component.activity;
18
19 import java.util.Date;
20
21 import org.exoplatform.social.core.activity.model.ExoSocialActivity;
22 import org.exoplatform.social.service.rest.Util;
23 import org.exoplatform.social.webui.Utils;
24 import org.exoplatform.social.webui.activity.BaseUIActivity;
25 import org.exoplatform.social.webui.activity.UIActivitiesContainer;
26 import org.exoplatform.social.webui.composer.PopupContainer;
27 import org.exoplatform.webui.config.annotation.ComponentConfig;
28 import org.exoplatform.webui.config.annotation.EventConfig;
29 import org.exoplatform.webui.core.lifecycle.UIFormLifecycle;
30 import org.exoplatform.webui.event.Event;
31 import org.exoplatform.webui.event.EventListener;
32
33 @ComponentConfig(
34 lifecycle = UIFormLifecycle.class,
35 template = "classpath:groovy/ecm/social-integration/plugin/link/UILinkActivity.gtmpl",
36 events = {
37 @EventConfig(listeners = UILinkActivity.ViewDocumentActionListener.class),
38 @EventConfig(listeners = BaseUIActivity.LoadLikesActionListener.class),
39 @EventConfig(listeners = BaseUIActivity.ToggleDisplayCommentFormActionListener.class),
40 @EventConfig(listeners = BaseUIActivity.LikeActivityActionListener.class),
41 @EventConfig(listeners = BaseUIActivity.SetCommentListStatusActionListener.class),
42 @EventConfig(listeners = BaseUIActivity.PostCommentActionListener.class),
43 @EventConfig(listeners = BaseUIActivity.DeleteActivityActionListener.class),
44 @EventConfig(listeners = BaseUIActivity.DeleteCommentActionListener.class),
45 @EventConfig(listeners = BaseUIActivity.LikeCommentActionListener.class),
46 @EventConfig(listeners = BaseUIActivity.EditActivityActionListener.class),
47 @EventConfig(listeners = BaseUIActivity.EditCommentActionListener.class)
48 }
49 )
50 public class UILinkActivity extends BaseUIActivity {
51
52 public static final String ACTIVITY_TYPE = "LINK_ACTIVITY";
53
54 private String linkSource = "";
55 private String linkTitle = "";
56 private String linkImage = "";
57 private String linkDescription = "";
58 private String linkComment = "";
59 private String embedHtml = "";
60
61 public String getLinkComment() {
62 return linkComment;
63 }
64 public void setLinkComment(String linkComment) {
65 this.linkComment = linkComment;
66 }
67 public String getLinkDescription() {
68 return UILinkUtil.simpleEscapeHtml(Util.getDecodeQueryURL(linkDescription));
69 }
70 public void setLinkDescription(String linkDescription) {
71 this.linkDescription = linkDescription;
72 }
73 public String getLinkImage() {
74 return linkImage;
75 }
76 public void setLinkImage(String linkImage) {
77 this.linkImage = linkImage;
78 }
79 public String getLinkSource() {
80 return UILinkUtil.simpleEscapeHtml(Util.getDecodeQueryURL(linkSource));
81 }
82 public void setLinkSource(String linkSource) {
83 this.linkSource = linkSource;
84 }
85 public String getLinkTitle() {
86 return UILinkUtil.simpleEscapeHtml(Util.getDecodeQueryURL(linkTitle));
87 }
88 public void setLinkTitle(String linkTitle) {
89 this.linkTitle = linkTitle;
90 }
91 public String getEmbedHtml() {
92 return embedHtml;
93 }
94 public void setEmbedHtml(String embedHtml) {
95 this.embedHtml = embedHtml;
96 }
97
98 @Override
99 protected void editActivity(String message) {
100 ExoSocialActivity activity = getActivity();
101 activity.getTemplateParams().put(UILinkActivityComposer.COMMENT_PARAM, message);
102 getActivity().setUpdated(new Date());
103 this.setLinkComment(message);
104 Utils.getActivityManager().updateActivity(getActivity());
105 }
106
107 public static class ViewDocumentActionListener extends EventListener<UILinkActivity> {
108 @Override
109 public void execute(Event<UILinkActivity> event) throws Exception {
110 UILinkActivity uiLinkActivity = event.getSource();
111 UIActivitiesContainer uiActivitiesContainer = uiLinkActivity.getAncestorOfType(UIActivitiesContainer.class);
112 PopupContainer uiPopupContainer = uiActivitiesContainer.getPopupContainer();
113
114 UIDocumentPreview uiDocumentPreview = uiPopupContainer.createUIComponent(UIDocumentPreview.class, null,
115 "UIDocumentPreview");
116 uiDocumentPreview.setBaseUIActivity(uiLinkActivity);
117
118 uiPopupContainer.activate(uiDocumentPreview, 0, 0, true);
119 event.getRequestContext().addUIComponentToUpdateByAjax(uiPopupContainer);
120 }
121 }
122 }