]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/parts/JcrUsersTable.java
[maven-release-plugin] prepare for next development iteration
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui / src / org / argeo / eclipse / ui / parts / JcrUsersTable.java
1 package org.argeo.eclipse.ui.parts;
2
3 @Deprecated
4 public class JcrUsersTable {
5 }
6 /**
7 * Composite that contains a JFace table to display users that are stored in JCR
8 * following the Argeo Conventions (See {@link ArgeoNames}
9 */
10 // public class JcrUsersTable extends Composite implements ArgeoNames {
11 // // private final static Log log =
12 // // LogFactory.getLog(UserTableComposite.class);
13 //
14 // private static final long serialVersionUID = -7385959046279360420L;
15 //
16 // private Session session;
17 //
18 // private boolean hasFilter;
19 // private boolean hasSelectionColumn;
20 // private int tableStyle;
21 //
22 // private TableViewer usersViewer;
23 // private Text filterTxt;
24 // private String filterHelpMsg = "Type filter criterion "
25 // + "separated by a space";
26 //
27 // private Font italic;
28 // private Font bold;
29 //
30 // /** Overwrite to display other columns */
31 // public List<JcrColumnDefinition> getColumnsDef() {
32 // List<JcrColumnDefinition> columnDefs = new ArrayList<JcrColumnDefinition>();
33 //
34 // // User ID
35 // columnDefs.add(new JcrColumnDefinition(ARGEO_USER_ID,
36 // PropertyType.STRING, "User ID", 100));
37 // // Displayed name
38 // columnDefs.add(new JcrColumnDefinition(Property.JCR_TITLE,
39 // PropertyType.STRING, "Name", 150));
40 //
41 // // E-mail
42 // columnDefs.add(new JcrColumnDefinition(ARGEO_PRIMARY_EMAIL,
43 // PropertyType.STRING, "E-mail", 150));
44 //
45 // // Description
46 // columnDefs.add(new JcrColumnDefinition(Property.JCR_DESCRIPTION,
47 // PropertyType.STRING, "Description", 200));
48 //
49 // return columnDefs;
50 // }
51 //
52 // public JcrUsersTable(Composite parent, int style, Session session) {
53 // super(parent, SWT.NO_FOCUS);
54 // this.tableStyle = style;
55 // this.session = session;
56 // }
57 //
58 // /**
59 // *
60 // * @param addFilter
61 // * choose to add a field to filter results or not
62 // * @param addSelection
63 // * choose to add a column to select some of the displayed results
64 // * or not
65 // */
66 // public void populate(boolean addFilter, boolean addSelection) {
67 // // initialization
68 // Composite parent = this;
69 // italic = EclipseUiUtils.getItalicFont(parent);
70 // bold = EclipseUiUtils.getBoldFont(parent);
71 // hasFilter = addFilter;
72 // hasSelectionColumn = addSelection;
73 //
74 // // Main Layout
75 // GridLayout layout = EclipseUiUtils.noSpaceGridLayout();
76 // layout.verticalSpacing = 5;
77 // this.setLayout(layout);
78 // if (hasFilter)
79 // createFilterPart(parent);
80 // usersViewer = createTableViewer(parent);
81 // // EclipseUiSpecificUtils.enableToolTipSupport(usersViewer);
82 // usersViewer.setContentProvider(new UsersContentProvider());
83 // refreshFilteredList();
84 // }
85 //
86 // public List<Node> getSelectedUsers() {
87 // if (hasSelectionColumn) {
88 // Object[] elements = ((CheckboxTableViewer) usersViewer)
89 // .getCheckedElements();
90 //
91 // List<Node> result = new ArrayList<Node>();
92 // for (Object obj : elements) {
93 // result.add((Node) obj);
94 // }
95 // return result;
96 // } else
97 // throw new EclipseUiException("Unvalid request: no selection column "
98 // + "has been created for the current table");
99 // }
100 //
101 // /** Returns the User table viewer, typically to add doubleclick listener */
102 // public TableViewer getTableViewer() {
103 // return usersViewer;
104 // }
105 //
106 // /** Returns filter String or null */
107 // protected String getFilterString() {
108 // return hasFilter ? filterTxt.getText() : null;
109 // }
110 //
111 // private TableViewer createTableViewer(final Composite parent) {
112 // int style = tableStyle | SWT.H_SCROLL | SWT.V_SCROLL;
113 // if (hasSelectionColumn)
114 // style = style | SWT.CHECK;
115 //
116 // Table table = new Table(parent, style);
117 // table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
118 //
119 // TableViewer viewer;
120 // if (hasSelectionColumn)
121 // viewer = new CheckboxTableViewer(table);
122 // else
123 // viewer = new TableViewer(table);
124 // table.setLinesVisible(true);
125 // table.setHeaderVisible(true);
126 //
127 // TableViewerColumn column;
128 // int offset = 0;
129 // if (hasSelectionColumn) {
130 // offset = 1;
131 // column = ViewerUtils.createTableViewerColumn(viewer, "", SWT.NONE,
132 // 25);
133 // column.setLabelProvider(new ColumnLabelProvider() {
134 // private static final long serialVersionUID = 1L;
135 //
136 // @Override
137 // public String getText(Object element) {
138 // return null;
139 // }
140 // });
141 // SelectionAdapter selectionAdapter = new SelectionAdapter() {
142 // private static final long serialVersionUID = 1L;
143 //
144 // boolean allSelected = false;
145 //
146 // @Override
147 // public void widgetSelected(SelectionEvent e) {
148 // allSelected = !allSelected;
149 // ((CheckboxTableViewer) usersViewer)
150 // .setAllChecked(allSelected);
151 // }
152 // };
153 // column.getColumn().addSelectionListener(selectionAdapter);
154 // }
155 //
156 // // Create other columns
157 // List<JcrColumnDefinition> colDefs = getColumnsDef();
158 //
159 // NodeViewerComparator comparator = new NodeViewerComparator();
160 // int i = offset;
161 // for (JcrColumnDefinition colDef : colDefs) {
162 // column = ViewerUtils.createTableViewerColumn(viewer,
163 // colDef.getHeaderLabel(), SWT.NONE, colDef.getColumnSize());
164 // column.setLabelProvider(new CLProvider(colDef.getPropertyName()));
165 // column.getColumn().addSelectionListener(
166 // JcrUiUtils.getNodeSelectionAdapter(i,
167 // colDef.getPropertyType(), colDef.getPropertyName(),
168 // comparator, viewer));
169 // i++;
170 // }
171 //
172 // // IMPORTANT: initialize comparator before setting it
173 // JcrColumnDefinition firstCol = colDefs.get(0);
174 // comparator.setColumn(firstCol.getPropertyType(),
175 // firstCol.getPropertyName());
176 // viewer.setComparator(comparator);
177 //
178 // return viewer;
179 // }
180 //
181 // private class CLProvider extends SimpleJcrNodeLabelProvider {
182 //
183 // private static final long serialVersionUID = 1L;
184 //
185 // public CLProvider(String propertyName) {
186 // super(propertyName);
187 // }
188 //
189 // public String getToolTipText(Object element) {
190 // return getText(element);
191 // }
192 //
193 // // @Override
194 // // public Font getFont(Object elem) {
195 // // // self
196 // // String username = getProperty(elem, ARGEO_USER_ID);
197 // // if (username.equals(session.getUserID()))
198 // // return bold;
199 // // // disabled
200 // // try {
201 // // Node userProfile = (Node) elem;
202 // // if (!userProfile.getProperty(ARGEO_ENABLED).getBoolean())
203 // // return italic;
204 // // else
205 // // return null;
206 // // } catch (RepositoryException e) {
207 // // throw new EclipseUiException("Cannot get font for " + username, e);
208 // // }
209 // // }
210 // }
211 //
212 // @Override
213 // public boolean setFocus() {
214 // usersViewer.getTable().setFocus();
215 // return true;
216 // }
217 //
218 // @Override
219 // public void dispose() {
220 // super.dispose();
221 // }
222 //
223 // public void refresh() {
224 // refreshFilteredList();
225 // }
226 //
227 // private String getProperty(Object element, String name) {
228 // try {
229 // Node userProfile = (Node) element;
230 // return userProfile.hasProperty(name) ? userProfile
231 // .getProperty(name).getString() : "";
232 // } catch (RepositoryException e) {
233 // throw new EclipseUiException("Cannot get property " + name, e);
234 // }
235 // }
236 //
237 // private class UsersContentProvider implements IStructuredContentProvider {
238 // private static final long serialVersionUID = 1L;
239 //
240 // public Object[] getElements(Object inputElement) {
241 // return (Object[]) inputElement;
242 // }
243 //
244 // public void dispose() {
245 // }
246 //
247 // public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
248 // }
249 // }
250 //
251 // /* MANAGE FILTER */
252 // private void createFilterPart(Composite parent) {
253 // // Text Area for the filter
254 // filterTxt = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH
255 // | SWT.ICON_CANCEL);
256 // filterTxt.setMessage(filterHelpMsg);
257 // filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
258 // | GridData.HORIZONTAL_ALIGN_FILL));
259 // filterTxt.addModifyListener(new ModifyListener() {
260 // private static final long serialVersionUID = 1L;
261 //
262 // public void modifyText(ModifyEvent event) {
263 // refreshFilteredList();
264 // }
265 // });
266 // }
267 //
268 // /**
269 // * Refresh the user list: caller might overwrite in order to display a
270 // * subset of all users, typically to remove current user from the list
271 // */
272 // protected void refreshFilteredList() {
273 // List<Node> nodes;
274 // try {
275 // nodes = JcrUtils.nodeIteratorToList(listFilteredElements(session,
276 // hasFilter ? filterTxt.getText() : null));
277 // usersViewer.setInput(nodes.toArray());
278 // } catch (RepositoryException e) {
279 // throw new EclipseUiException("Unable to list users", e);
280 // }
281 // }
282 //
283 // /**
284 // * Build repository request : caller might overwrite in order to display a
285 // * subset of all users
286 // */
287 // protected NodeIterator listFilteredElements(Session session, String filter)
288 // throws RepositoryException {
289 // QueryManager queryManager = session.getWorkspace().getQueryManager();
290 // QueryObjectModelFactory factory = queryManager.getQOMFactory();
291 //
292 // Selector source = factory.selector(ArgeoTypes.ARGEO_USER_PROFILE,
293 // ArgeoTypes.ARGEO_USER_PROFILE);
294 //
295 // // Dynamically build constraint depending on the filter String
296 // Constraint defaultC = null;
297 // if (filter != null && !"".equals(filter.trim())) {
298 // String[] strs = filter.trim().split(" ");
299 // for (String token : strs) {
300 // StaticOperand so = factory.literal(session.getValueFactory()
301 // .createValue("*" + token + "*"));
302 // Constraint currC = factory.fullTextSearch(
303 // source.getSelectorName(), null, so);
304 // if (defaultC == null)
305 // defaultC = currC;
306 // else
307 // defaultC = factory.and(defaultC, currC);
308 // }
309 // }
310 //
311 // Ordering order = factory.ascending(factory.propertyValue(
312 // source.getSelectorName(), ARGEO_USER_ID));
313 // Ordering[] orderings = { order };
314 //
315 // QueryObjectModel query = factory.createQuery(source, defaultC,
316 // orderings, null);
317 //
318 // QueryResult result = query.execute();
319 // return result.getNodes();
320 // }
321 // }