1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.exoplatform.ecm.webui.component.admin.taxonomy;
19
20 import javax.jcr.RepositoryException;
21
22 import org.exoplatform.ecm.webui.component.admin.UIECMAdminPortlet;
23 import org.exoplatform.ecm.webui.component.admin.taxonomy.action.UIActionForm;
24 import org.exoplatform.ecm.webui.component.admin.taxonomy.action.UIActionTaxonomyManager;
25 import org.exoplatform.ecm.webui.selector.UIPermissionSelector;
26 import org.exoplatform.ecm.webui.tree.selectone.UIOneNodePathSelector;
27 import org.exoplatform.ecm.webui.utils.Utils;
28 import org.exoplatform.services.cms.impl.DMSConfiguration;
29 import org.exoplatform.services.cms.impl.DMSRepositoryConfiguration;
30 import org.exoplatform.services.jcr.RepositoryService;
31 import org.exoplatform.services.jcr.core.ManageableRepository;
32 import org.exoplatform.services.wcm.utils.WCMCoreUtils;
33 import org.exoplatform.webui.config.annotation.ComponentConfig;
34 import org.exoplatform.webui.core.UIComponent;
35 import org.exoplatform.webui.core.UIPopupWindow;
36 import org.exoplatform.webui.core.lifecycle.UIContainerLifecycle;
37 import org.exoplatform.webui.ext.manager.UIAbstractManager;
38
39
40
41
42
43
44
45 @ComponentConfig(lifecycle = UIContainerLifecycle.class)
46 public class UITaxonomyManagerTrees extends UIAbstractManager {
47
48 public UITaxonomyManagerTrees() throws Exception {
49 addChild(UITaxonomyTreeList.class, null, null);
50 }
51
52 public void initPopupTreeContainer(String id) throws Exception {
53 UITaxonomyTreeContainer uiTaxonomyTreeContainer;
54 UIPopupWindow uiPopup = getChildById(id);
55 if (uiPopup == null) {
56 uiPopup = addChild(UIPopupWindow.class, null, id);
57 uiPopup.setWindowSize(650, 250);
58 uiTaxonomyTreeContainer = createUIComponent(UITaxonomyTreeContainer.class, null, null);
59 } else {
60 uiTaxonomyTreeContainer = uiPopup.findFirstComponentOfType(UITaxonomyTreeContainer.class);
61 uiPopup.setRendered(true);
62 }
63 uiPopup.setUIComponent(uiTaxonomyTreeContainer);
64 uiPopup.setShow(true);
65 uiPopup.setShowMask(true);
66 uiPopup.setResizable(true);
67 }
68
69 public void refresh() throws Exception {
70 update();
71 }
72
73 public void update() throws Exception {
74 UITaxonomyTreeList uiTaxonomyTreeList = getChild(UITaxonomyTreeList.class);
75 uiTaxonomyTreeList.refresh(uiTaxonomyTreeList.getUIPageIterator().getCurrentPage());
76 }
77
78 public void initPopupPermission(String membership) throws Exception {
79 removePopup();
80 UIPopupWindow uiPopup = addChild(UIPopupWindow.class, null,
81 UITaxonomyTreeContainer.POPUP_PERMISSION);
82 uiPopup.setShowMask(true);
83 uiPopup.setWindowSize(560, 300);
84 UIPermissionSelector uiTaxonomyTreePermission = createUIComponent(UIPermissionSelector.class,
85 null, null);
86 uiTaxonomyTreePermission.setSelectedMembership(true);
87 if (membership != null && membership.indexOf(":/") > -1) {
88 String[] arrMember = membership.split(":/");
89 uiTaxonomyTreePermission.setCurrentPermission("/" + arrMember[1]);
90 }
91 uiPopup.setUIComponent(uiTaxonomyTreePermission);
92 uiPopup.setShow(true);
93 }
94
95 public String getSystemWorkspaceName() throws RepositoryException {
96 RepositoryService repositoryService = getApplicationComponent(RepositoryService.class);
97 ManageableRepository manageableRepository = repositoryService.getCurrentRepository();
98 return manageableRepository.getConfiguration().getSystemWorkspaceName();
99 }
100
101 public String getDmsSystemWorkspaceName() {
102 DMSConfiguration dmsConfiguration = getApplicationComponent(DMSConfiguration.class);
103 DMSRepositoryConfiguration dmsRepoConfig = dmsConfiguration.getConfig();
104 return dmsRepoConfig.getSystemWorkspace();
105 }
106
107 public void initPopupJCRBrowser(String workspace, boolean isDisable) throws Exception {
108 removePopup();
109 String repository = getAncestorOfType(UIECMAdminPortlet.class).getPreferenceRepository();
110 UIPopupWindow uiPopup = addChild(UIPopupWindow.class, null, UITaxonomyTreeContainer.POPUP_TAXONOMYHOMEPATH);
111 uiPopup.setShowMask(true);
112 uiPopup.setWindowSize(610, 300);
113 String[] filterType = {Utils.NT_FOLDER, Utils.NT_UNSTRUCTURED};
114 UIOneNodePathSelector uiOneNodePathSelector = createUIComponent(UIOneNodePathSelector.class, null, null);
115 uiOneNodePathSelector.setIsDisable(workspace, isDisable);
116 uiOneNodePathSelector.setShowRootPathSelect(true);
117 uiOneNodePathSelector.setAcceptedNodeTypesInTree(filterType);
118 uiOneNodePathSelector.setAcceptedNodeTypesInPathPanel(filterType);
119 uiOneNodePathSelector.setRootNodeLocation(repository, workspace, "/");
120 if (WCMCoreUtils.isAnonim()) {
121 uiOneNodePathSelector.init(WCMCoreUtils.createAnonimProvider());
122 } else if (workspace.equals(getSystemWorkspaceName())) {
123 uiOneNodePathSelector.init(WCMCoreUtils.getSystemSessionProvider());
124 } else {
125 uiOneNodePathSelector.init(WCMCoreUtils.getSystemSessionProvider());
126 }
127 uiPopup.setUIComponent(uiOneNodePathSelector);
128 UITaxonomyTreeContainer uiTaxonomyTreeContainer = findFirstComponentOfType(UITaxonomyTreeContainer.class);
129 uiOneNodePathSelector.setSourceComponent(uiTaxonomyTreeContainer,
130 new String[] { UITaxonomyTreeMainForm.FIELD_HOMEPATH });
131 uiPopup.setShow(true);
132 }
133
134 public void initPopupComponent(UIComponent uiComp, String id) throws Exception {
135 removePopup();
136 UIPopupWindow uiPopup = addChild(UIPopupWindow.class, null, id);
137 uiPopup.setShowMask(true);
138 uiPopup.setUIComponent(uiComp);
139 uiPopup.setWindowSize(640, 300);
140 uiPopup.setShow(true);
141 uiPopup.setResizable(true);
142 }
143
144 private void removePopup() {
145 UIActionTaxonomyManager uiManager = getAncestorOfType(UIActionTaxonomyManager.class);
146 if (uiManager != null) {
147 uiManager.removeChildById(UIActionForm.POPUP_COMPONENT);
148 }
149
150 removeChildById(UIActionForm.POPUP_COMPONENT);
151 removeChildById(UITaxonomyTreeContainer.POPUP_PERMISSION);
152 removeChildById(UITaxonomyTreeContainer.POPUP_TAXONOMYHOMEPATH);
153 }
154 }