1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.cs.common.ext;
18
19 import java.util.HashMap;
20 import java.util.List;
21 import java.util.Map;
22 import org.exoplatform.container.PortalContainer;
23 import org.exoplatform.services.log.ExoLogger;
24 import org.exoplatform.services.log.Log;
25 import org.exoplatform.webui.core.UIComponent;
26 import org.exoplatform.webui.core.UIContainer;
27 import org.exoplatform.webui.ext.UIExtension;
28 import org.exoplatform.webui.ext.UIExtensionManager;
29
30
31
32
33
34
35
36 public final class UIExtensionUtils {
37 private static final Log logger = ExoLogger.getLogger(UIExtensionUtils.class);
38
39
40
41
42
43
44
45
46 public static Map<String, UIComponent> getComponents(String extensionType, UIContainer parent, Map<String, Object> context) {
47 Map<String, UIComponent> components = new HashMap<String, UIComponent>();
48 UIExtensionManager manager = (UIExtensionManager) PortalContainer.getInstance().getComponentInstance(UIExtensionManager.class);
49 if (manager != null) {
50 List<UIExtension> extensions = manager.getUIExtensions(extensionType);
51 if (extensions != null) {
52 for (UIExtension extension : extensions) {
53 try {
54 UIComponent component = manager.addUIExtension(extension, context, parent);
55 if (component != null) components.put(extension.getName(), component);
56 } catch (Exception e) {
57 if (logger.isDebugEnabled()) logger.debug("failed to get ui component of uiextension: type=" + extensionType, e);
58 }
59 }
60 }
61 }
62 return components;
63 }
64 }