1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.social.webui.space;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22 import org.exoplatform.social.core.space.model.Space;
23 import org.exoplatform.webui.application.WebuiRequestContext;
24 import org.exoplatform.webui.config.annotation.ComponentConfig;
25 import org.exoplatform.webui.config.annotation.EventConfig;
26 import org.exoplatform.webui.core.model.SelectItemOption;
27 import org.exoplatform.webui.event.Event;
28 import org.exoplatform.webui.event.EventListener;
29 import org.exoplatform.webui.form.UIFormInputSet;
30 import org.exoplatform.webui.form.UIFormRadioBoxInput;
31
32
33 @ComponentConfig(
34 template = "war:/groovy/social/webui/space/UIVisibilityFormInputSet.gtmpl",
35 events = {
36 @EventConfig(listeners = UISpaceVisibility.ChangeVisibilityActionListener.class)
37 }
38 )
39 public class UISpaceVisibility extends UIFormInputSet {
40 public static final String UI_SPACE_REGISTRATION = "UIRegistration";
41 private static final String REGISTRATION_BINDING = "registration";
42 private String visibility;
43
44
45
46
47
48
49 public UISpaceVisibility(String name) throws Exception {
50 super(name);
51 setComponentConfig(getClass(), null);
52 setVisibility(Space.PRIVATE);
53
54 List<SelectItemOption<String>> spaceRegistration = new ArrayList<SelectItemOption<String>>(3);
55
56 SelectItemOption<String> openOption = new SelectItemOption<String>(Space.OPEN);
57 openOption.setSelected(true);
58 spaceRegistration.add(openOption);
59
60 SelectItemOption<String> validationOption = new SelectItemOption<String>(Space.VALIDATION);
61 spaceRegistration.add(validationOption);
62
63 SelectItemOption<String> closeOption = new SelectItemOption<String>(Space.CLOSE);
64 spaceRegistration.add(closeOption);
65
66 UIFormRadioBoxInput uiRadioRegistration = new UIFormRadioBoxInput(UI_SPACE_REGISTRATION,
67 REGISTRATION_BINDING,
68 spaceRegistration);
69 uiRadioRegistration.setValue(Space.OPEN);
70 addUIFormInput(uiRadioRegistration);
71 }
72
73 public void setVisibility(String visibility) {
74 this.visibility = visibility;
75 }
76
77 public String getVisibility() {
78 return visibility;
79 }
80
81 static public class ChangeVisibilityActionListener extends EventListener<UISpaceVisibility> {
82 public void execute(Event<UISpaceVisibility> event) throws Exception {
83 UISpaceVisibility uiSpaceVisibility = event.getSource();
84 String oldVisibility = uiSpaceVisibility.getVisibility();
85 String visibility = Space.HIDDEN.equals(oldVisibility) ? Space.PRIVATE : Space.HIDDEN;
86 uiSpaceVisibility.setVisibility(visibility);
87 WebuiRequestContext ctx = event.getRequestContext();
88 ctx.addUIComponentToUpdateByAjax(uiSpaceVisibility);
89 }
90 }
91 }