]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/DefaultUserMainPage.java
Introduce Argeo user edition
[lgpl/argeo-commons.git] / security / eclipse / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / editors / DefaultUserMainPage.java
diff --git a/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/DefaultUserMainPage.java b/security/eclipse/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/editors/DefaultUserMainPage.java
new file mode 100644 (file)
index 0000000..5495d18
--- /dev/null
@@ -0,0 +1,100 @@
+package org.argeo.security.ui.editors;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.ArgeoException;
+import org.argeo.security.ArgeoUser;
+import org.argeo.security.UserNature;
+import org.argeo.security.nature.SimpleUserNature;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.ColumnLayout;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+
+/**
+ * 
+ * @author bsinou
+ * 
+ *         This page display main info of a specified Ebi. Roles enable the
+ */
+public class DefaultUserMainPage extends FormPage {
+       private final static Log log = LogFactory.getLog(DefaultUserMainPage.class);
+
+       private ArgeoUser user;
+       private SimpleUserNature simpleNature;
+
+       private String simpleNatureType;
+
+       private Text email;
+       private Text description;
+
+       public DefaultUserMainPage(FormEditor editor, ArgeoUser user) {
+               super(editor, "argeoUserEditor.mainPage", "Main");
+               this.user = user;
+
+               if (simpleNatureType != null)
+                       simpleNature = (SimpleUserNature) user.getUserNatures().get(
+                                       simpleNatureType);
+               else
+                       for (UserNature userNature : user.getUserNatures().values())
+                               if (userNature instanceof SimpleUserNature)
+                                       simpleNature = (SimpleUserNature) userNature;
+
+               if (simpleNature == null)
+                       throw new ArgeoException("No simple user nature in user " + user);
+       }
+
+       protected void createFormContent(IManagedForm managedForm) {
+               try {
+                       ScrolledForm form = managedForm.getForm();
+
+                       // Set the title of the current form
+                       form.setText(simpleNature.getFirstName() + " "
+                                       + simpleNature.getLastName());
+
+                       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);
+
+                       FormToolkit toolkit = managedForm.getToolkit();
+
+                       Composite body = toolkit.createComposite(form.getBody());
+                       GridLayout layout = new GridLayout();
+                       layout.marginWidth = layout.marginHeight = 0;
+                       layout.numColumns = 2;
+                       body.setLayout(layout);
+
+                       // Comments
+                       toolkit.createLabel(body, "Username");
+                       toolkit.createLabel(body, user.getUsername());
+                       toolkit.createLabel(body, "Email");
+                       email = toolkit.createText(body, simpleNature.getEmail(), SWT.WRAP
+                                       | SWT.BORDER);
+                       toolkit.createLabel(body, "Description");
+                       description = toolkit.createText(body,
+                                       simpleNature.getDescription(), SWT.MULTI | SWT.WRAP
+                                                       | SWT.BORDER);
+
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+       }
+
+       public void setSimpleNatureType(String simpleNatureType) {
+               this.simpleNatureType = simpleNatureType;
+       }
+
+}