1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.wcm.webui.selector.page;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22 import org.exoplatform.commons.utils.LazyPageList;
23 import org.exoplatform.commons.utils.ListAccess;
24 import org.exoplatform.commons.utils.ListAccessImpl;
25 import org.exoplatform.ecm.webui.selector.UISelectable;
26 import org.exoplatform.portal.mop.user.UserNode;
27 import org.exoplatform.webui.config.annotation.ComponentConfig;
28 import org.exoplatform.webui.config.annotation.EventConfig;
29 import org.exoplatform.webui.core.UIContainer;
30 import org.exoplatform.webui.core.UIPageIterator;
31 import org.exoplatform.webui.event.Event;
32 import org.exoplatform.webui.event.EventListener;
33
34
35
36
37
38
39
40 @ComponentConfig(
41 template = "classpath:groovy/wcm/webui/selector/page/UIPageSelectorPanel.gtmpl",
42 events = {
43 @EventConfig(listeners = UIPageSelectorPanel.SelectActionListener.class)
44 }
45 )
46 public class UIPageSelectorPanel extends UIContainer {
47
48
49 private static final String PAGE_SELECTOR_ITERATOR = "UIPageSelectorIterator";
50
51
52 private UIPageIterator pageIterator;
53
54
55 private UserNode selectedNode;
56
57
58
59
60
61
62 public UIPageSelectorPanel() throws Exception {
63 pageIterator = addChild(UIPageIterator.class, null, PAGE_SELECTOR_ITERATOR);
64 }
65
66
67
68
69 public void updateGrid() {
70 List<UserNode> children = null;
71 if (selectedNode == null) {
72 UIPageSelector pageSelector = getAncestorOfType(UIPageSelector.class);
73 UIPageNodeSelector pageNodeSelector = pageSelector.getChild(UIPageNodeSelector.class);
74 UserNode rootNode = pageNodeSelector.getRootNodeOfSelectedNav();
75 children = new ArrayList<UserNode>(rootNode.getChildren());
76 } else {
77 children = new ArrayList<UserNode>(selectedNode.getChildren());
78 }
79 ListAccess<UserNode> pageNodeList = new ListAccessImpl<UserNode>(UserNode.class, children);
80 LazyPageList<UserNode> pageList = new LazyPageList<UserNode>(pageNodeList, 10);
81 pageIterator.setPageList(pageList);
82 }
83
84
85
86
87
88
89
90
91 @SuppressWarnings("unchecked")
92 public List getSelectablePages() throws Exception {
93 return pageIterator.getCurrentPageData();
94 }
95
96
97
98
99
100
101 public UserNode getSelectedNode() {
102 return selectedNode;
103 }
104
105
106
107
108
109
110 public void setSelectedNode(UserNode selectedNode) {
111 this.selectedNode = selectedNode;
112 }
113
114
115
116
117
118
119 public UIPageIterator getPageIterator() {
120 return pageIterator;
121 }
122
123
124
125
126
127
128 public void setPageIterator(UIPageIterator pageIterator) {
129 this.pageIterator = pageIterator;
130 }
131
132
133
134
135
136
137
138
139
140
141 public static class SelectActionListener extends EventListener<UIPageSelectorPanel> {
142
143
144
145
146 public void execute(Event<UIPageSelectorPanel> event) throws Exception {
147 UIPageSelectorPanel pageSelectorPanel = event.getSource();
148 String uri = event.getRequestContext().getRequestParameter(OBJECTID) ;
149 UIPageSelector pageSelector = pageSelectorPanel.getAncestorOfType(UIPageSelector.class);
150 ((UISelectable)pageSelector.getSourceComponent()).doSelect(pageSelector.getReturnFieldName(), uri);
151 }
152 }
153 }