1 package org
.argeo
.security
.ui
.editors
;
3 import org
.apache
.commons
.logging
.Log
;
4 import org
.apache
.commons
.logging
.LogFactory
;
5 import org
.argeo
.ArgeoException
;
6 import org
.argeo
.security
.ArgeoSecurityService
;
7 import org
.argeo
.security
.ArgeoUser
;
8 import org
.argeo
.security
.SimpleArgeoUser
;
9 import org
.argeo
.security
.nature
.SimpleUserNature
;
10 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
11 import org
.eclipse
.ui
.IEditorInput
;
12 import org
.eclipse
.ui
.IEditorSite
;
13 import org
.eclipse
.ui
.PartInitException
;
14 import org
.eclipse
.ui
.forms
.editor
.FormEditor
;
16 /** Editor for an Argeo user. */
17 public class ArgeoUserEditor
extends FormEditor
{
18 private final static Log log
= LogFactory
.getLog(ArgeoUserEditor
.class);
20 public final static String ID
= "org.argeo.security.ui.argeoUserEditor";
22 private ArgeoUser user
;
23 private ArgeoSecurityService securityService
;
25 public void init(IEditorSite site
, IEditorInput input
)
26 throws PartInitException
{
27 super.init(site
, input
);
28 String username
= ((ArgeoUserEditorInput
) getEditorInput())
30 if (username
== null) {// new
31 user
= new SimpleArgeoUser();
32 user
.getUserNatures().put(SimpleUserNature
.TYPE
,
33 new SimpleUserNature());
35 user
= securityService
.getSecurityDao().getUser(username
);
36 this.setPartProperty("name", username
!= null ? username
: "<new user>");
37 setPartName(username
!= null ? username
: "<new user>");
40 protected void addPages() {
42 addPage(new DefaultUserMainPage(this, securityService
, user
));
44 } catch (PartInitException e
) {
45 throw new ArgeoException("Not able to add page ", e
);
50 public void doSave(IProgressMonitor monitor
) {
52 // TODO: make it more generic
53 findPage(DefaultUserMainPage
.ID
).doSave(monitor
);
55 if (securityService
.getSecurityDao().userExists(user
.getUsername()))
56 securityService
.updateUser(user
);
59 // FIXME: make it cleaner
60 ((SimpleArgeoUser
)user
).setPassword(user
.getUsername());
61 securityService
.newUser(user
);
62 setPartName(user
.getUsername());
63 } catch (Exception e
) {
64 // TODO Auto-generated catch block
68 firePropertyChange(PROP_DIRTY
);
72 public void doSaveAs() {
76 public boolean isSaveAsAllowed() {
80 public void setSecurityService(ArgeoSecurityService securityService
) {
81 this.securityService
= securityService
;