1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.wcm.webui.selector;
18
19 import org.exoplatform.ecm.webui.selector.ComponentSelector;
20 import org.exoplatform.ecm.webui.selector.UISelectable;
21 import org.exoplatform.webui.config.annotation.ComponentConfig;
22 import org.exoplatform.webui.config.annotation.EventConfig;
23 import org.exoplatform.webui.core.UIComponent;
24 import org.exoplatform.webui.core.UIContainer;
25 import org.exoplatform.webui.core.UIPopupWindow;
26 import org.exoplatform.webui.core.lifecycle.UIContainerLifecycle;
27 import org.exoplatform.webui.event.Event;
28 import org.exoplatform.webui.event.EventListener;
29 import org.exoplatform.webui.organization.account.UIUserSelector;
30
31
32
33
34
35
36
37 @ComponentConfig(
38 lifecycle = UIContainerLifecycle.class,
39 events = {@EventConfig(listeners = UIUserMemberSelector.AddUserActionListener.class)}
40 )
41 public class UIUserMemberSelector extends UIContainer implements ComponentSelector {
42
43
44 private UIComponent uiComponent;
45
46
47 private String returnField;
48
49
50 private boolean isUsePopup = true;
51
52
53 private boolean isMulti = true;
54
55
56 private boolean isShowSearchUser = true;
57
58
59 private boolean isShowSearch;
60
61
62
63
64 public UIUserMemberSelector() {}
65
66
67
68
69
70
71 public void init() throws Exception {
72 UIUserSelector uiUserSelector = getChild(UIUserSelector.class);
73 if (uiUserSelector == null) {
74 uiUserSelector = addChild(UIUserSelector.class, null, null);
75 }
76 uiUserSelector.setMulti(isMulti);
77 uiUserSelector.setShowSearchUser(isShowSearchUser);
78 uiUserSelector.setShowSearch(isShowSearch);
79 }
80
81
82
83
84
85
86 public boolean isUsePopup() {
87 return isUsePopup;
88 }
89
90
91
92
93
94
95 public void setUsePopup(boolean isUsePopup) {
96 this.isUsePopup = isUsePopup;
97 }
98
99
100
101
102
103
104 public boolean isMulti() {
105 return isMulti;
106 }
107
108
109
110
111
112
113 public void setMulti(boolean isMulti) {
114 this.isMulti = isMulti;
115 }
116
117
118
119
120
121
122 public boolean isShowSearchUser() {
123 return isShowSearchUser;
124 }
125
126
127
128
129
130
131 public void setShowSearchUser(boolean isShowSearchUser) {
132 this.isShowSearchUser = isShowSearchUser;
133 }
134
135
136
137
138
139
140 public boolean isShowSearch() {
141 return isShowSearch;
142 }
143
144
145
146
147
148
149 public void setShowSearch(boolean isShowSearch) {
150 this.isShowSearch = isShowSearch;
151 }
152
153
154
155
156 public UIComponent getSourceComponent() {
157 return uiComponent;
158 }
159
160
161
162
163
164
165 public String getReturnField() {
166 return returnField;
167 }
168
169
170
171
172
173
174
175 public void setSourceComponent(UIComponent uicomponent, String[] initParams) {
176 uiComponent = uicomponent;
177 if (initParams == null || initParams.length == 0)
178 return;
179 for (int i = 0; i < initParams.length; i++) {
180 if (initParams[i].indexOf("returnField") > -1) {
181 String[] array = initParams[i].split("=");
182 returnField = array[1];
183 break;
184 }
185 returnField = initParams[0];
186 }
187 }
188
189
190
191
192
193
194
195
196
197
198 static public class AddUserActionListener extends EventListener<UIUserMemberSelector> {
199
200
201
202
203 public void execute(Event<UIUserMemberSelector> event) throws Exception {
204 UIUserMemberSelector userMemberSelector = event.getSource();
205 UIUserSelector userSelector = userMemberSelector.getChild(UIUserSelector.class);
206 String returnField = userMemberSelector.getReturnField();
207 ((UISelectable)userMemberSelector.getSourceComponent()).doSelect(returnField, userSelector.getSelectedUsers());
208 if (userMemberSelector.isUsePopup) {
209 UIPopupWindow uiPopup = userMemberSelector.getParent();
210 uiPopup.setShow(false);
211 UIComponent uicomp = userMemberSelector.getSourceComponent().getParent();
212 event.getRequestContext().addUIComponentToUpdateByAjax(uicomp);
213 if (!uiPopup.getId().equals("PopupComponent"))
214 event.getRequestContext().addUIComponentToUpdateByAjax(uiPopup);
215 } else {
216 event.getRequestContext().addUIComponentToUpdateByAjax(
217 userMemberSelector.getSourceComponent());
218 }
219 }
220 }
221 }