X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fplugins%2Forg.argeo.security.ui.admin%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Feditors%2FDefaultUserMainPage.java;h=c19e122fbde34fae1212ca9839c38c8485decb88;hb=1d5afdce3e91054f07ddd3c98309c363b4cf1d46;hp=22927bd1126c6713f9a30ba705ad5a28ee69cba7;hpb=4c8c237990cda2b1a9be35532796510d9d5734c5;p=lgpl%2Fargeo-commons.git diff --git a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/DefaultUserMainPage.java b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/DefaultUserMainPage.java index 22927bd11..c19e122fb 100644 --- a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/DefaultUserMainPage.java +++ b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/DefaultUserMainPage.java @@ -1,3 +1,18 @@ +/* + * Copyright (C) 2007-2012 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.argeo.security.ui.admin.editors; import java.util.Arrays; @@ -46,17 +61,8 @@ public class DefaultUserMainPage extends FormPage implements ArgeoNames { protected void createFormContent(final IManagedForm mf) { try { ScrolledForm form = mf.getForm(); - form.setText(userProfile.getProperty(ARGEO_FIRST_NAME).getString() - + " " - + userProfile.getProperty(ARGEO_LAST_NAME).getString()); + refreshFormTitle(form); GridLayout mainLayout = new GridLayout(1, true); - // ColumnLayout mainLayout = new ColumnLayout(); - // mainLayout.minNumColumns = 1; - // mainLayout.maxNumColumns = 4; - // mainLayout.topMargin = 0; - // mainLayout.bottomMargin = 5; - // mainLayout.leftMargin = mainLayout.rightMargin = - // mainLayout.horizontalSpacing = mainLayout.verticalSpacing = 10; form.getBody().setLayout(mainLayout); createGeneralPart(form.getBody()); @@ -79,37 +85,25 @@ public class DefaultUserMainPage extends FormPage implements ArgeoNames { body.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); body.setLayout(layout); - // add widgets (view) - // final Text username; - // if (user.getUsername() != null) { - // tk.createLabel(body, "Username"); - // tk.createLabel(body, user.getUsername()); - // username = null; - // } else { - // username = createLT(body, "Username", ""); - // } + final Text commonName = createLT(body, "Displayed Name", + getProperty(Property.JCR_TITLE)); final Text firstName = createLT(body, "First name", - userProfile.getProperty(ARGEO_FIRST_NAME)); + getProperty(ARGEO_FIRST_NAME)); final Text lastName = createLT(body, "Last name", - userProfile.getProperty(ARGEO_LAST_NAME)); + getProperty(ARGEO_LAST_NAME)); final Text email = createLT(body, "Email", - userProfile.getProperty(ARGEO_PRIMARY_EMAIL)); - final Text description = createLT(body, "Description", - userProfile.getProperty(Property.JCR_DESCRIPTION)); + getProperty(ARGEO_PRIMARY_EMAIL)); + final Text description = createLMT(body, "Description", + getProperty(Property.JCR_DESCRIPTION)); // create form part (controller) AbstractFormPart part = new SectionPart(section) { public void commit(boolean onSave) { - // if (username != null) { - // ((SimpleArgeoUser) user).setUsername(username.getText()); - // username.setEditable(false); - // username.setEnabled(false); - // } - // simpleNature.setFirstName(firstName.getText()); - // simpleNature.setLastName(lastName.getText()); - // simpleNature.setEmail(email.getText()); - // simpleNature.setDescription(description.getText()); try { + userProfile.getSession().getWorkspace().getVersionManager() + .checkout(userProfile.getPath()); + userProfile.setProperty(Property.JCR_TITLE, + commonName.getText()); userProfile.setProperty(ARGEO_FIRST_NAME, firstName.getText()); userProfile @@ -119,7 +113,10 @@ public class DefaultUserMainPage extends FormPage implements ArgeoNames { userProfile.setProperty(Property.JCR_DESCRIPTION, description.getText()); userProfile.getSession().save(); + userProfile.getSession().getWorkspace().getVersionManager() + .checkin(userProfile.getPath()); super.commit(onSave); + refreshFormTitle(getManagedForm().getForm()); if (log.isTraceEnabled()) log.trace("General part committed"); } catch (RepositoryException e) { @@ -136,6 +133,18 @@ public class DefaultUserMainPage extends FormPage implements ArgeoNames { getManagedForm().addPart(part); } + private void refreshFormTitle(ScrolledForm form) throws RepositoryException { + form.setText(getProperty(Property.JCR_TITLE) + + (userProfile.getProperty(ARGEO_ENABLED).getBoolean() ? "" + : " [DISABLED]")); + } + + /** @return the property, or the empty string if not set */ + protected String getProperty(String name) throws RepositoryException { + return userProfile.hasProperty(name) ? userProfile.getProperty(name) + .getString() : ""; + } + /** Creates the password section */ protected void createPassworPart(Composite parent) { FormToolkit tk = getManagedForm().getToolkit(); @@ -187,9 +196,14 @@ public class DefaultUserMainPage extends FormPage implements ArgeoNames { return text; } - protected Text createLT(Composite body, String label, Property value) - throws RepositoryException { - return createLT(body, label, value.getString()); + /** Creates label and multiline text. */ + protected Text createLMT(Composite body, String label, String value) { + FormToolkit toolkit = getManagedForm().getToolkit(); + Label lbl = toolkit.createLabel(body, label); + lbl.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false)); + Text text = toolkit.createText(body, value, SWT.BORDER | SWT.MULTI); + text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true)); + return text; } /** Creates label and password. */