[Escapek-commits] SF.net SVN: escapek: [816] org.escapek.client.ui.security/trunk/src/org/ escapek
Status: Pre-Alpha
Brought to you by:
nicolasjouanin
|
From: <nic...@us...> - 2007-02-16 10:19:46
|
Revision: 816
http://svn.sourceforge.net/escapek/?rev=816&view=rev
Author: nicolasjouanin
Date: 2007-02-16 02:19:34 -0800 (Fri, 16 Feb 2007)
Log Message:
-----------
Merging
Modified Paths:
--------------
org.escapek.client.ui.security/trunk/src/org/escapek/client/ui/security/editors/forms/RoleMainFormPage.java
Modified: org.escapek.client.ui.security/trunk/src/org/escapek/client/ui/security/editors/forms/RoleMainFormPage.java
===================================================================
--- org.escapek.client.ui.security/trunk/src/org/escapek/client/ui/security/editors/forms/RoleMainFormPage.java 2007-02-15 20:47:54 UTC (rev 815)
+++ org.escapek.client.ui.security/trunk/src/org/escapek/client/ui/security/editors/forms/RoleMainFormPage.java 2007-02-16 10:19:34 UTC (rev 816)
@@ -1,379 +1,379 @@
-/**
- * Escape-K
- * Copyright (C) 2006 Nicolas Jouanin, and individual contributors
- * as indicated by the @authors tag. See copyright.txt in the
- * distribution for a full listing of individual contributors.
- * Contact: es...@gm...
- *
- * This file is part of Escape-K.
- *
- * Escape-K is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Escape-K is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * --------------------------------------------------------------------------
- * $Id$
- * --------------------------------------------------------------------------
- */
-package org.escapek.client.ui.security.editors.forms;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.databinding.BindingEvent;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.IBindingListener;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.escapek.client.core.services.ObjectChangeService;
-import org.escapek.client.core.ui.EscapeKFormPage;
-import org.escapek.client.core.ui.databinding.DataBindingContextFactory;
-import org.escapek.client.ui.security.SecurityActivator;
-import org.escapek.client.ui.security.editors.RoleEditorInput;
-import org.escapek.client.ui.security.editors.forms.providers.ObservableUserLabelProvider;
-import org.escapek.client.ui.tools.FormTools;
-import org.escapek.core.dto.security.RoleDTO;
-import org.escapek.core.dto.security.TicketDTO;
-import org.escapek.core.dto.security.UserDTO;
-import org.escapek.core.exceptions.EntityNotFoundException;
-import org.escapek.core.exceptions.SecurityException;
-import org.escapek.core.serviceManager.ServiceWrapper;
-import org.escapek.core.serviceManager.Exceptions.ConnectionException;
-import org.escapek.core.services.interfaces.IRemoteSecurityService;
-import org.escapek.i18n.LocaleService;
-import org.escapek.i18n.MessageService;
-import org.escapek.logger.LoggerPlugin;
-import org.escapek.logger.LoggingConstants;
-
-/**
- *
- * @author nicolasjouanin
- *
- */
-public class RoleMainFormPage extends EscapeKFormPage
- implements IBindingListener
-{
- private RoleDTO editedRole;
- private List<UserDTO> userList;
- private List<RoleDTO> roleList;
- private FormToolkit toolkit;
- private String title;
- private Text nameText;
- private Text descText;
- private TableViewer userViewer;
- private TableViewer roleViewer;
- private Button addUserButton;
- private Button delUserButton;
- private Button addRoleButton;
- private Button delRoleButton;
- private boolean dirty;
- private DataBindingContext bindingContext;
-
- private MessageService message;
- private MessageService commonMessages;
-
- private IRemoteSecurityService securityService;
-
- public RoleMainFormPage(FormEditor editor, String id, String title)
- {
- super(editor, id, title);
- this.title = title;
- message = LocaleService.getMessageService(LocaleService.uiMessages);
- commonMessages = LocaleService.getMessageService(LocaleService.commonMessages);
-
- dirty = false;
- editedRole = ((RoleEditorInput)(editor.getEditorInput())).getRole();
- userList = new ArrayList<UserDTO>();
-
- try
- {
- securityService = ServiceWrapper.getInstance().getSecurityService();
- }
- catch (ConnectionException e)
- {
- //This exception should have already been tested
- LoggerPlugin.LogWarning(SecurityActivator.PLUGIN_ID, LoggingConstants.UNEXPECTED_EXCEPTION,
- "Couldn't get Security service", e);
- }
- }
-
- @Override
- protected void createFormContent(IManagedForm managedForm)
- {
- toolkit = managedForm.getToolkit();
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- managedForm.getForm().getBody().setLayout(layout);
- managedForm.getForm().setText(this.title);
-
- createMainSection(managedForm);
- //createInheritedRoleSection(managedForm);
- createMemberUserSection(managedForm);
-
- //Data binding
- bindGUI();
- }
-
- private void createMainSection(IManagedForm managedForm)
- {
- GridData data = new GridData();
- Section dataSection = toolkit.createSection(managedForm.getForm().getBody(),
- Section.TITLE_BAR|Section.EXPANDED);
- TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
- td.colspan = 2;
- dataSection.setLayoutData(td);
- dataSection.setText(message.getString("roleEditor.mainForm.dataSection.title"));
-
- Composite sectionClient = toolkit.createComposite(dataSection);
- GridLayout clientLayout = new GridLayout();
- clientLayout.numColumns = 2;
- sectionClient.setLayout(clientLayout);
-
- //Id
- FormTools.createLabel(sectionClient, toolkit, commonMessages.getString("common.repId.label"));
- Text idText = toolkit.createText(sectionClient, "", SWT.BORDER | SWT.READ_ONLY);
- idText.setText(editedRole.getId().toString());
- idText.setEditable(false);
- data = new GridData(SWT.LEFT, SWT.FILL, false, false);
- idText.setLayoutData(data);
-
- //Name
- data = new GridData(SWT.FILL, SWT.TOP, false, false);
- FormTools.createLabel(sectionClient, toolkit, message.getString("roleEditor.mainForm.dataSection.name.label"), data);
- nameText = toolkit.createText(sectionClient, "", SWT.BORDER);
- data = new GridData(SWT.FILL, SWT.FILL, true, false);
- nameText.setLayoutData(data);
-
- data = new GridData(SWT.FILL, SWT.TOP, false, false);
- FormTools.createLabel(sectionClient, toolkit, commonMessages.getString("common.description.label"), data);
-
- //Description
- descText = toolkit.createText(sectionClient, "", SWT.MULTI);
- descText.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- data = new GridData(SWT.FILL, SWT.FILL, true, true);
- data.heightHint = 50;
- descText.setLayoutData(data);
-
- toolkit.paintBordersFor(dataSection);
- dataSection.setClient(sectionClient);
-
- }
-
- private void createInheritedRoleSection(IManagedForm managedForm)
- {
- GridData data = new GridData();
- Section section = toolkit.createSection(managedForm.getForm().getBody(),
- Section.TITLE_BAR|Section.EXPANDED);
- TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
- td.colspan = 2;
- section.setLayoutData(td);
- section.setText(message.getString("roleEditor.mainForm.grantedUserSection.title"));
-
- Composite sectionClient = toolkit.createComposite(section);
- GridLayout clientLayout = new GridLayout();
- clientLayout.numColumns = 2;
- sectionClient.setLayout(clientLayout);
-
- Table roleTable = toolkit.createTable(sectionClient, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI);
- TableColumn nameColumn = new TableColumn(roleTable, SWT.LEFT);
- nameColumn.setText(commonMessages.getString("common.roleName.columnText"));
- nameColumn.setWidth(100);
- roleTable.setHeaderVisible(true);
- TableColumn descColumn = new TableColumn(roleTable, SWT.LEFT);
- descColumn.setText(commonMessages.getString("common.desc.columnText"));
- descColumn.setWidth(400);
- data = new GridData(SWT.FILL, SWT.FILL, true, true);
- data.heightHint = 200;
- data.verticalSpan = 2;
- roleTable.setLayoutData(data);
- roleViewer = new TableViewer(roleTable);
-
- addRoleButton = toolkit.createButton(sectionClient,
- commonMessages.getString("common.addButton.text"), SWT.NONE);
- data = new GridData(SWT.FILL, SWT.TOP, false, false);
- addRoleButton.setLayoutData(data);
- delRoleButton = toolkit.createButton(sectionClient,
- commonMessages.getString("common.delButton.text"), SWT.NONE);
- data = new GridData(SWT.FILL, SWT.TOP, false, false);
- delRoleButton.setLayoutData(data);
- toolkit.paintBordersFor(section);
- section.setClient(sectionClient);
- }
-
- private void createMemberUserSection(IManagedForm managedForm)
- {
- GridData data = new GridData();
- Section section = toolkit.createSection(managedForm.getForm().getBody(),
- Section.TITLE_BAR|Section.EXPANDED);
- TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
- td.colspan = 2;
- section.setLayoutData(td);
- section.setText(message.getString("roleEditor.mainForm.grantedUserSection.title"));
-
- Composite sectionClient = toolkit.createComposite(section);
- GridLayout clientLayout = new GridLayout();
- clientLayout.numColumns = 2;
- sectionClient.setLayout(clientLayout);
-
- Table memberTable = toolkit.createTable(sectionClient, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI);
- TableColumn loginColumn = new TableColumn(memberTable, SWT.LEFT);
- loginColumn.setText(commonMessages.getString("common.login.columnText"));
- loginColumn.setWidth(100);
- memberTable.setHeaderVisible(true);
- TableColumn descColumn = new TableColumn(memberTable, SWT.LEFT);
- descColumn.setText(commonMessages.getString("common.desc.columnText"));
- descColumn.setWidth(400);
- data = new GridData(SWT.FILL, SWT.FILL, true, true);
- data.heightHint = 200;
- data.verticalSpan = 2;
- memberTable.setLayoutData(data);
- userViewer = new TableViewer(memberTable);
-
- addUserButton = toolkit.createButton(sectionClient,
- commonMessages.getString("common.addButton.text"), SWT.NONE);
- data = new GridData(SWT.FILL, SWT.TOP, false, false);
- addUserButton.setLayoutData(data);
- delUserButton = toolkit.createButton(sectionClient,
- commonMessages.getString("common.delButton.text"), SWT.NONE);
- data = new GridData(SWT.FILL, SWT.TOP, false, false);
- delUserButton.setLayoutData(data);
- toolkit.paintBordersFor(section);
- section.setClient(sectionClient);
- }
-
- protected void bindGUI()
- {
- bindingContext = DataBindingContextFactory.create();
- bindingContext.bindValue(SWTObservables.observeText(nameText, SWT.Modify),
- BeansObservables.observeValue(editedRole, "name"), null);
- bindingContext.bindValue(SWTObservables.observeText(descText, SWT.Modify),
- BeansObservables.observeValue(editedRole, "description"), null);
-
- //Tables Binding
- ObservableListContentProvider memberViewerContentProvider = new ObservableListContentProvider();
- userViewer.setContentProvider(memberViewerContentProvider);
- IObservableMap[] userAttributeMaps = BeansObservables.observeMaps(
- memberViewerContentProvider.getKnownElements(), UserDTO.class,
- new String[] { "loginString" ,"description"});
- userViewer.setLabelProvider(new ObservableUserLabelProvider(userAttributeMaps));
-
-// ObservableListContentProvider roleViewerContentProvider = new ObservableListContentProvider();
-// roleViewer.setContentProvider(roleViewerContentProvider);
-// IObservableMap[] roleAttributeMaps = BeansObservables.observeMaps(
-// memberViewerContentProvider.getKnownElements(), RoleDTO.class,
-// new String[] { "name" ,"description"});
-// roleViewer.setLabelProvider(new ObservableRoleLabelProvider(roleAttributeMaps));
-
- try
- {
- TicketDTO ticket = ServiceWrapper.getInstance().getTicket();
- Collection<UserDTO> users = securityService.getRoleGrantedUsers(ticket.getId(), editedRole.getId());
- if(users != null)
- userList.addAll(users);
- userViewer.setInput(new WritableList(SWTObservables.getRealm(Display.getDefault()), userList, UserDTO.class));
-
-// Collection<RoleDTO> roles = securityService.getInheritedRoles(ticket.getId(), editedRole.getId());
-// if(roles != null)
-// roleList.addAll(roles);
-// roleViewer.setInput(new WritableList(SWTObservables.getRealm(Display.getDefault()), roleList, RoleDTO.class));
- }
- catch(SecurityException e)
- {
-
- }
- //Modification listener
- bindingContext.addBindingEventListener(this);
- }
-
- public IStatus handleBindingEvent(BindingEvent e)
- {
- if(e.copyType == BindingEvent.EVENT_COPY_TO_MODEL &&
- e.pipelinePosition == BindingEvent.PIPELINE_AFTER_GET &&
- !dirty)
- {
- dirty = true;
- firePropertyChange(PROP_DIRTY);
- }
- return Status.OK_STATUS;
- }
-
- @Override
- public void doSave(IProgressMonitor monitor)
- {
- monitor.beginTask(message.getString("roleEditor.info.saveInProgress"), 3);
- bindingContext.updateModels();
- monitor.worked(1);
- try
- {
- IRemoteSecurityService security = ServiceWrapper.getInstance().getSecurityService();
- TicketDTO ticket = ServiceWrapper.getInstance().getTicket();
- RoleDTO updatedRole = security.updateRole(ticket.getId(), editedRole);
- monitor.worked(1);
- editedRole.setName(updatedRole.getName());
- editedRole.setDescription(updatedRole.getDescription());
- bindingContext.updateTargets();
- monitor.worked(1);
- }
- catch (ConnectionException e)
- {
- monitor.setCanceled(true);
- }
- catch (EntityNotFoundException e)
- {
- monitor.setCanceled(true);
- }
- catch (SecurityException e)
- {
- monitor.setCanceled(true);
- //TODO : manage it
- }
- monitor.done();
- ObjectChangeService.getInstance().fireObjectChanged(editedRole);
- }
-
- @Override
- public boolean isDirty()
- {
- return dirty;
- }
-
- @Override
- public void dispose()
- {
- editedRole = null;
- super.dispose();
- }
-}
+/**
+ * Escape-K
+ * Copyright (C) 2006 Nicolas Jouanin, and individual contributors
+ * as indicated by the @authors tag. See copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ * Contact: es...@gm...
+ *
+ * This file is part of Escape-K.
+ *
+ * Escape-K is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Escape-K is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * --------------------------------------------------------------------------
+ * $Id$
+ * --------------------------------------------------------------------------
+ */
+package org.escapek.client.ui.security.editors.forms;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.core.databinding.BindingEvent;
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.IBindingListener;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.escapek.client.core.services.ObjectChangeService;
+import org.escapek.client.core.ui.EscapeKFormPage;
+import org.escapek.client.core.ui.databinding.DataBindingContextFactory;
+import org.escapek.client.ui.security.SecurityActivator;
+import org.escapek.client.ui.security.editors.RoleEditorInput;
+import org.escapek.client.ui.security.editors.forms.providers.ObservableUserLabelProvider;
+import org.escapek.client.ui.tools.FormTools;
+import org.escapek.core.dto.security.RoleDTO;
+import org.escapek.core.dto.security.TicketDTO;
+import org.escapek.core.dto.security.UserDTO;
+import org.escapek.core.exceptions.EntityNotFoundException;
+import org.escapek.core.exceptions.SecurityException;
+import org.escapek.core.serviceManager.ServiceWrapper;
+import org.escapek.core.serviceManager.Exceptions.ConnectionException;
+import org.escapek.core.services.interfaces.IRemoteSecurityService;
+import org.escapek.i18n.LocaleService;
+import org.escapek.i18n.MessageService;
+import org.escapek.logger.LoggerPlugin;
+import org.escapek.logger.LoggingConstants;
+
+/**
+ *
+ * @author nicolasjouanin
+ *
+ */
+public class RoleMainFormPage extends EscapeKFormPage
+ implements IBindingListener
+{
+ private RoleDTO editedRole;
+ private List<UserDTO> userList;
+ private List<RoleDTO> roleList;
+ private FormToolkit toolkit;
+ private String title;
+ private Text nameText;
+ private Text descText;
+ private TableViewer userViewer;
+ private TableViewer roleViewer;
+ private Button addUserButton;
+ private Button delUserButton;
+ private Button addRoleButton;
+ private Button delRoleButton;
+ private boolean dirty;
+ private DataBindingContext bindingContext;
+
+ private MessageService message;
+ private MessageService commonMessages;
+
+ private IRemoteSecurityService securityService;
+
+ public RoleMainFormPage(FormEditor editor, String id, String title)
+ {
+ super(editor, id, title);
+ this.title = title;
+ message = LocaleService.getMessageService(LocaleService.uiMessages);
+ commonMessages = LocaleService.getMessageService(LocaleService.commonMessages);
+
+ dirty = false;
+ editedRole = ((RoleEditorInput)(editor.getEditorInput())).getRole();
+ userList = new ArrayList<UserDTO>();
+
+ try
+ {
+ securityService = ServiceWrapper.getInstance().getSecurityService();
+ }
+ catch (ConnectionException e)
+ {
+ //This exception should have already been tested
+ LoggerPlugin.LogWarning(SecurityActivator.PLUGIN_ID, LoggingConstants.UNEXPECTED_EXCEPTION,
+ "Couldn't get Security service", e);
+ }
+ }
+
+ @Override
+ protected void createFormContent(IManagedForm managedForm)
+ {
+ toolkit = managedForm.getToolkit();
+ TableWrapLayout layout = new TableWrapLayout();
+ layout.numColumns = 2;
+ managedForm.getForm().getBody().setLayout(layout);
+ managedForm.getForm().setText(this.title);
+
+ createMainSection(managedForm);
+ //createInheritedRoleSection(managedForm);
+ createMemberUserSection(managedForm);
+
+ //Data binding
+ bindGUI();
+ }
+
+ private void createMainSection(IManagedForm managedForm)
+ {
+ GridData data = new GridData();
+ Section dataSection = toolkit.createSection(managedForm.getForm().getBody(),
+ Section.TITLE_BAR|Section.EXPANDED);
+ TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
+ td.colspan = 2;
+ dataSection.setLayoutData(td);
+ dataSection.setText(message.getString("roleEditor.mainForm.dataSection.title"));
+
+ Composite sectionClient = toolkit.createComposite(dataSection);
+ GridLayout clientLayout = new GridLayout();
+ clientLayout.numColumns = 2;
+ sectionClient.setLayout(clientLayout);
+
+ //Id
+ FormTools.createLabel(sectionClient, toolkit, commonMessages.getString("common.repId.label"));
+ Text idText = toolkit.createText(sectionClient, "", SWT.BORDER | SWT.READ_ONLY);
+ idText.setText(editedRole.getId().toString());
+ idText.setEditable(false);
+ data = new GridData(SWT.LEFT, SWT.FILL, false, false);
+ idText.setLayoutData(data);
+
+ //Name
+ data = new GridData(SWT.FILL, SWT.TOP, false, false);
+ FormTools.createLabel(sectionClient, toolkit, message.getString("roleEditor.mainForm.dataSection.name.label"), data);
+ nameText = toolkit.createText(sectionClient, "", SWT.BORDER);
+ data = new GridData(SWT.FILL, SWT.FILL, true, false);
+ nameText.setLayoutData(data);
+
+ data = new GridData(SWT.FILL, SWT.TOP, false, false);
+ FormTools.createLabel(sectionClient, toolkit, commonMessages.getString("common.description.label"), data);
+
+ //Description
+ descText = toolkit.createText(sectionClient, "", SWT.MULTI);
+ descText.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
+ data = new GridData(SWT.FILL, SWT.FILL, true, true);
+ data.heightHint = 50;
+ descText.setLayoutData(data);
+
+ toolkit.paintBordersFor(dataSection);
+ dataSection.setClient(sectionClient);
+
+ }
+
+ private void createInheritedRoleSection(IManagedForm managedForm)
+ {
+ GridData data = new GridData();
+ Section section = toolkit.createSection(managedForm.getForm().getBody(),
+ Section.TITLE_BAR|Section.EXPANDED);
+ TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
+ td.colspan = 2;
+ section.setLayoutData(td);
+ section.setText(message.getString("roleEditor.mainForm.grantedUserSection.title"));
+
+ Composite sectionClient = toolkit.createComposite(section);
+ GridLayout clientLayout = new GridLayout();
+ clientLayout.numColumns = 2;
+ sectionClient.setLayout(clientLayout);
+
+ Table roleTable = toolkit.createTable(sectionClient, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI);
+ TableColumn nameColumn = new TableColumn(roleTable, SWT.LEFT);
+ nameColumn.setText(commonMessages.getString("common.roleName.columnText"));
+ nameColumn.setWidth(100);
+ roleTable.setHeaderVisible(true);
+ TableColumn descColumn = new TableColumn(roleTable, SWT.LEFT);
+ descColumn.setText(commonMessages.getString("common.desc.columnText"));
+ descColumn.setWidth(400);
+ data = new GridData(SWT.FILL, SWT.FILL, true, true);
+ data.heightHint = 200;
+ data.verticalSpan = 2;
+ roleTable.setLayoutData(data);
+ roleViewer = new TableViewer(roleTable);
+
+ addRoleButton = toolkit.createButton(sectionClient,
+ commonMessages.getString("common.addButton.text"), SWT.NONE);
+ data = new GridData(SWT.FILL, SWT.TOP, false, false);
+ addRoleButton.setLayoutData(data);
+ delRoleButton = toolkit.createButton(sectionClient,
+ commonMessages.getString("common.delButton.text"), SWT.NONE);
+ data = new GridData(SWT.FILL, SWT.TOP, false, false);
+ delRoleButton.setLayoutData(data);
+ toolkit.paintBordersFor(section);
+ section.setClient(sectionClient);
+ }
+
+ private void createMemberUserSection(IManagedForm managedForm)
+ {
+ GridData data = new GridData();
+ Section section = toolkit.createSection(managedForm.getForm().getBody(),
+ Section.TITLE_BAR|Section.EXPANDED);
+ TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
+ td.colspan = 2;
+ section.setLayoutData(td);
+ section.setText(message.getString("roleEditor.mainForm.grantedUserSection.title"));
+
+ Composite sectionClient = toolkit.createComposite(section);
+ GridLayout clientLayout = new GridLayout();
+ clientLayout.numColumns = 2;
+ sectionClient.setLayout(clientLayout);
+
+ Table memberTable = toolkit.createTable(sectionClient, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI);
+ TableColumn loginColumn = new TableColumn(memberTable, SWT.LEFT);
+ loginColumn.setText(commonMessages.getString("common.login.columnText"));
+ loginColumn.setWidth(100);
+ memberTable.setHeaderVisible(true);
+ TableColumn descColumn = new TableColumn(memberTable, SWT.LEFT);
+ descColumn.setText(commonMessages.getString("common.desc.columnText"));
+ descColumn.setWidth(400);
+ data = new GridData(SWT.FILL, SWT.FILL, true, true);
+ data.heightHint = 200;
+ data.verticalSpan = 2;
+ memberTable.setLayoutData(data);
+ userViewer = new TableViewer(memberTable);
+
+ addUserButton = toolkit.createButton(sectionClient,
+ commonMessages.getString("common.addButton.text"), SWT.NONE);
+ data = new GridData(SWT.FILL, SWT.TOP, false, false);
+ addUserButton.setLayoutData(data);
+ delUserButton = toolkit.createButton(sectionClient,
+ commonMessages.getString("common.delButton.text"), SWT.NONE);
+ data = new GridData(SWT.FILL, SWT.TOP, false, false);
+ delUserButton.setLayoutData(data);
+ toolkit.paintBordersFor(section);
+ section.setClient(sectionClient);
+ }
+
+ protected void bindGUI()
+ {
+ bindingContext = DataBindingContextFactory.create();
+ bindingContext.bindValue(SWTObservables.observeText(nameText, SWT.Modify),
+ BeansObservables.observeValue(editedRole, "name"), null);
+ bindingContext.bindValue(SWTObservables.observeText(descText, SWT.Modify),
+ BeansObservables.observeValue(editedRole, "description"), null);
+
+ //Tables Binding
+ ObservableListContentProvider memberViewerContentProvider = new ObservableListContentProvider();
+ userViewer.setContentProvider(memberViewerContentProvider);
+ IObservableMap[] userAttributeMaps = BeansObservables.observeMaps(
+ memberViewerContentProvider.getKnownElements(), UserDTO.class,
+ new String[] { "loginString" ,"description"});
+ userViewer.setLabelProvider(new ObservableUserLabelProvider(userAttributeMaps));
+
+// ObservableListContentProvider roleViewerContentProvider = new ObservableListContentProvider();
+// roleViewer.setContentProvider(roleViewerContentProvider);
+// IObservableMap[] roleAttributeMaps = BeansObservables.observeMaps(
+// memberViewerContentProvider.getKnownElements(), RoleDTO.class,
+// new String[] { "name" ,"description"});
+// roleViewer.setLabelProvider(new ObservableRoleLabelProvider(roleAttributeMaps));
+
+ try
+ {
+ TicketDTO ticket = ServiceWrapper.getInstance().getTicket();
+ Collection<UserDTO> users = securityService.getRoleGrantedUsers(ticket.getId(), editedRole.getId());
+ if(users != null)
+ userList.addAll(users);
+ userViewer.setInput(new WritableList(SWTObservables.getRealm(Display.getDefault()), userList, UserDTO.class));
+
+// Collection<RoleDTO> roles = securityService.getInheritedRoles(ticket.getId(), editedRole.getId());
+// if(roles != null)
+// roleList.addAll(roles);
+// roleViewer.setInput(new WritableList(SWTObservables.getRealm(Display.getDefault()), roleList, RoleDTO.class));
+ }
+ catch(SecurityException e)
+ {
+
+ }
+ //Modification listener
+ bindingContext.addBindingEventListener(this);
+ }
+
+ public IStatus handleBindingEvent(BindingEvent e)
+ {
+ if(e.copyType == BindingEvent.EVENT_COPY_TO_MODEL &&
+ e.pipelinePosition == BindingEvent.PIPELINE_AFTER_GET &&
+ !dirty)
+ {
+ dirty = true;
+ firePropertyChange(PROP_DIRTY);
+ }
+ return Status.OK_STATUS;
+ }
+
+ @Override
+ public void doSave(IProgressMonitor monitor)
+ {
+ monitor.beginTask(message.getString("roleEditor.info.saveInProgress"), 3);
+ bindingContext.updateModels();
+ monitor.worked(1);
+ try
+ {
+ IRemoteSecurityService security = ServiceWrapper.getInstance().getSecurityService();
+ TicketDTO ticket = ServiceWrapper.getInstance().getTicket();
+ RoleDTO updatedRole = security.updateRole(ticket.getId(), editedRole);
+ monitor.worked(1);
+ editedRole.setName(updatedRole.getName());
+ editedRole.setDescription(updatedRole.getDescription());
+ bindingContext.updateTargets();
+ monitor.worked(1);
+ }
+ catch (ConnectionException e)
+ {
+ monitor.setCanceled(true);
+ }
+ catch (EntityNotFoundException e)
+ {
+ monitor.setCanceled(true);
+ }
+ catch (SecurityException e)
+ {
+ monitor.setCanceled(true);
+ //TODO : manage it
+ }
+ monitor.done();
+ ObjectChangeService.getInstance().fireObjectChanged(editedRole);
+ }
+
+ @Override
+ public boolean isDirty()
+ {
+ return dirty;
+ }
+
+ @Override
+ public void dispose()
+ {
+ editedRole = null;
+ super.dispose();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|