]> git.argeo.org Git - lgpl/argeo-commons.git/blob - UserViewer.java
a520da1bd791ba0e718a4ad23818c3481ed7646d
[lgpl/argeo-commons.git] / UserViewer.java
1 package org.argeo.cms.users;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5
6 import org.argeo.cms.CmsEditable;
7 import org.argeo.cms.CmsException;
8 import org.argeo.cms.CmsUtils;
9 import org.argeo.cms.viewers.AbstractPageViewer;
10 import org.argeo.cms.viewers.EditablePart;
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.events.MouseAdapter;
13 import org.eclipse.swt.events.MouseEvent;
14 import org.eclipse.swt.events.MouseListener;
15 import org.eclipse.swt.graphics.Point;
16 import org.eclipse.swt.widgets.Composite;
17 import org.eclipse.swt.widgets.Control;
18
19 public class UserViewer extends AbstractPageViewer {
20 private static final long serialVersionUID = -717973369525981931L;
21 private UserPart userPart;
22
23 public UserViewer(Composite parent, int style, Node userNode,
24 CmsEditable cmsEditable) throws RepositoryException {
25 this(new UserPart(parent, SWT.NO_BACKGROUND, userNode), style,
26 userNode, cmsEditable);
27 }
28
29 private UserViewer(UserPart userPart, int style, Node userNode,
30 CmsEditable cmsEditable) throws RepositoryException {
31 super(userPart, style, cmsEditable);
32 this.userPart = userPart;
33 userPart.createControl(userPart,"cms_test");
34 userPart.setStyle("cms_test");
35 refresh();
36 userPart.setLayoutData(CmsUtils.fillWidth());
37 userPart.setMouseListener(getMouseListener());
38
39 // Add other parts
40 // userRolesPart.createControl(userPart,"cms_test");
41 // userPart.setStyle("cms_test");
42 // refresh();
43 // userPart.setLayoutData(CmsUtils.fillWidth());
44 // userPart.setMouseListener(getMouseListener());
45
46
47 }
48
49 // private JcrComposite createParents(Composite parent, Node userNode)
50 // throws RepositoryException {
51 // this.parent = ;
52 // return this.parent;
53 // }
54
55 @Override
56 public Control getControl() {
57 return userPart;
58 }
59
60 // MOUSE LISTENER
61 @Override
62 protected MouseListener createMouseListener() {
63 return new ML();
64 }
65
66 private class ML extends MouseAdapter {
67 private static final long serialVersionUID = 8526890859876770905L;
68
69 @Override
70 public void mouseDoubleClick(MouseEvent e) {
71 if (e.button == 1) {
72 Control source = (Control) e.getSource();
73 if (getCmsEditable().canEdit()) {
74 getCmsEditable().startEditing();
75 EditablePart composite = findDataParent(source);
76 Point point = new Point(e.x, e.y);
77 edit(composite, source.toDisplay(point));
78 }
79 }
80 }
81 }
82
83 protected void updateContent(EditablePart part) throws RepositoryException {
84 if (part instanceof UserPart)
85 ((UserPart) part).refresh();
86 }
87
88
89 private EditablePart findDataParent(Control parent) {
90 if (parent instanceof EditablePart) {
91 return (EditablePart) parent;
92 }
93 if (parent.getParent() != null)
94 return findDataParent(parent.getParent());
95 else
96 throw new CmsException("No data parent found");
97 }
98
99 protected void refresh(Control control) throws RepositoryException {
100 if (control instanceof UserPart)
101 ((UserPart) control).refresh();
102 }
103
104 }