1
2
3
4
5 package org.exoplatform.ecm.webui.core;
6
7 import org.exoplatform.ecm.permission.info.UIPermissionInputSet;
8 import org.exoplatform.webui.core.UIPopupComponent;
9 import org.exoplatform.webui.config.annotation.ComponentConfig;
10 import org.exoplatform.webui.config.annotation.EventConfig;
11 import org.exoplatform.webui.core.UIContainer;
12 import org.exoplatform.webui.core.UIPopupWindow;
13 import org.exoplatform.webui.core.lifecycle.UIContainerLifecycle;
14 import org.exoplatform.webui.event.Event;
15 import org.exoplatform.webui.event.EventListener;
16 import org.exoplatform.webui.organization.account.UIUserSelector;
17
18
19
20
21
22
23
24
25 @ComponentConfig(
26 lifecycle = UIContainerLifecycle.class,
27 events = {@EventConfig(listeners = UIUserContainer.AddUserActionListener.class)}
28 )
29
30 public class UIUserContainer extends UIContainer implements UIPopupComponent {
31
32 public UIUserContainer() throws Exception {
33 UIUserSelector uiUserSelector = getChild(UIUserSelector.class);
34 if (uiUserSelector == null) {
35 uiUserSelector = addChild(UIUserSelector.class, null, null);
36 }
37 uiUserSelector.setMulti(false);
38 uiUserSelector.setShowSearchUser(true);
39 uiUserSelector.setShowSearch(true);
40 }
41
42 public void activate() {
43
44 }
45
46 public void deActivate() {
47
48 }
49
50 static public class AddUserActionListener extends EventListener<UIUserContainer> {
51 public void execute(Event<UIUserContainer> event) throws Exception {
52 UIUserContainer uiUserContainer = event.getSource();
53 UIUserSelector uiUserSelector = uiUserContainer.getChild(UIUserSelector.class);
54 UIPermissionManagerBase uiParent = uiUserContainer.getAncestorOfType(UIPermissionManagerBase.class);
55 UIPermissionFormBase uiPermissionForm = uiParent.getChild(UIPermissionFormBase.class);
56 uiPermissionForm.doSelect(UIPermissionInputSet.FIELD_USERORGROUP, uiUserSelector.getSelectedUsers());
57 UIPopupWindow uiPopup = uiParent.findComponentById("PopupUserSelector");
58 uiPopup.setShow(false);
59 event.getRequestContext().addUIComponentToUpdateByAjax(uiParent);
60 }
61 }
62 }