From: Andreas Kohlbecker Date: Thu, 13 Sep 2012 10:31:46 +0000 (+0000) Subject: GrantedAuthoritySelectionDialog implemented for #2990 (implement missing parts of... X-Git-Tag: 3.6.0~1022^2~7 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/28b3f4aa50c83b3dec76a40b3e116e462b3a586d GrantedAuthoritySelectionDialog implemented for #2990 (implement missing parts of Groups admin details view) --- diff --git a/.gitattributes b/.gitattributes index d5105fce4..58caab21a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1231,6 +1231,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/sele eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FeatureSelectionDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FeatureTreeSelectionDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FieldObservationSelectionDialog.java -text +eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GroupSelectionDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/InstitutionSelectionDialog.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NameSelectionDialog.java -text diff --git a/eu.etaxonomy.taxeditor.cdmlib/.classpath b/eu.etaxonomy.taxeditor.cdmlib/.classpath index afa268e1d..73a0fced3 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/.classpath +++ b/eu.etaxonomy.taxeditor.cdmlib/.classpath @@ -122,7 +122,7 @@ - + diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar index f131a431c..25f118068 100644 Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar and b/eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar differ diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java index 5b9ed355d..b302a8ead 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java @@ -249,18 +249,18 @@ public class CdmStore { } /** - * Generic method that will return an implementation of the given service - * interface or null if the + * Generic method that will scan the getters of {@link ICdmApplicationConfiguration} for the given service + * interface. If a matching getter is found the according service implementation is returned by + * invoking the getter otherwise the method returns null. * * @param * @param serviceClass - * @return + * @return the configured implementation of serviceClass or null */ public static T getService(Class serviceClass) { ICdmApplicationConfiguration configuration = getCurrentApplicationConfiguration(); - Method[] methods = ICdmApplicationConfiguration.class - .getDeclaredMethods(); + Method[] methods = ICdmApplicationConfiguration.class.getDeclaredMethods(); T service = null; diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java index 4f024bd3c..242af0320 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java @@ -493,8 +493,10 @@ public abstract class AbstractFilteredCdmResourceSelectionDialogcdmBaseToBeFiltered) + * so it is not available in the filtered list. */ private void filterExcludedObjects() { if (model != null && cdmBaseToBeFiltered != null) { diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java new file mode 100644 index 000000000..794f7b695 --- /dev/null +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java @@ -0,0 +1,102 @@ +// $Id$ +/** +* Copyright (C) 2007 EDIT +* European Distributed Institute of Taxonomy +* http://www.e-taxonomy.eu +* +* The contents of this file are subject to the Mozilla Public License Version 1.1 +* See LICENSE.TXT at the top of this package for the full license terms. +*/ + +package eu.etaxonomy.taxeditor.ui.dialog.selection; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.eclipse.swt.widgets.Shell; +import org.springframework.security.core.GrantedAuthority; + +import eu.etaxonomy.cdm.api.conversation.ConversationHolder; +import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService; +import eu.etaxonomy.cdm.api.service.IGroupService; +import eu.etaxonomy.cdm.api.service.IUserService; +import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl; +import eu.etaxonomy.cdm.model.common.UuidAndTitleCache; +import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard; +import eu.etaxonomy.taxeditor.newWizard.NewGroupWizard; +import eu.etaxonomy.taxeditor.store.CdmStore; + +/** + * @author a.kohlbecker + * @created Sept 12, 2011 + * @version 1.0 + */ +public class GrantedAuthoritySelectionDialog extends AbstractFilteredCdmResourceSelectionDialog { + + public static GrantedAuthority select(Shell shell, ConversationHolder conversation, GrantedAuthorityImpl authority){ + + GrantedAuthoritySelectionDialog dialog = new GrantedAuthoritySelectionDialog(shell, conversation, + "Choose Granted Authority", false, GrantedAuthoritySelectionDialog.class.getCanonicalName(), authority); + + return getSelectionFromDialog(dialog); + } + + /** + * @param shell + * @param conversation + * @param title + * @param multi + * @param settings + * @param cdmObject + */ + protected GrantedAuthoritySelectionDialog(Shell shell, + ConversationHolder conversation, String title, boolean multi, + String settings, GrantedAuthorityImpl cdmObject) { + super(shell, conversation, title, multi, settings, cdmObject); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.ui.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#initModel() + */ + @Override + protected void initModel() { + List authorities = CdmStore.getService(IGrantedAuthorityService.class).list(GrantedAuthorityImpl.class, null, null, null, null); + + model = new ArrayList>(); + + for(GrantedAuthorityImpl authority : authorities){ + model.add(new UuidAndTitleCache(GrantedAuthorityImpl.class, authority.getUuid(),String.format("%s", authority.getAuthority()))); + } + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.ui.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getNewWizardLinkText() + */ + @Override + protected String getNewWizardLinkText() { + return "Create a new GrantedAuthority."; + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.ui.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getNewEntityWizard(java.lang.String) + */ + @Override + protected AbstractNewEntityWizard getNewEntityWizard(String parameter) { + return new NewGroupWizard(); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.ui.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID) + */ + @Override + protected GrantedAuthorityImpl getPersistentObject(UUID uuid) { + return CdmStore.getService(IGrantedAuthorityService.class).load(uuid); + } + + @Override + protected String getTitle(GrantedAuthorityImpl authority) { + return authority != null ? authority.getAuthority() : ""; + } + +} diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GrantedAuthorityDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GrantedAuthorityDetailSection.java index 10a155474..aebc5a524 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GrantedAuthorityDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GrantedAuthorityDetailSection.java @@ -17,6 +17,7 @@ import org.springframework.security.core.GrantedAuthority; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.model.common.Group; import eu.etaxonomy.taxeditor.store.StoreUtil; +import eu.etaxonomy.taxeditor.ui.dialog.selection.GrantedAuthoritySelectionDialog; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; @@ -62,11 +63,11 @@ public class GrantedAuthorityDetailSection extends */ @Override public GrantedAuthority createNewElement() { - StoreUtil - .warningDialog("Not implemented yet", getClass(), - "This functionality needs to be implemented in CDM Library first."); - // TODO GrantedAuthoritySelectionDialog.select(...); - GrantedAuthority selection = null; +// StoreUtil +// .warningDialog("Not implemented yet", getClass(), +// "This functionality needs to be implemented in CDM Library first."); + + GrantedAuthority selection = GrantedAuthoritySelectionDialog.select(getLayoutComposite().getShell(), getConversationHolder(), null); return selection; } @@ -101,7 +102,7 @@ public class GrantedAuthorityDetailSection extends */ @Override public String getEmptyString() { - return "No Granted Athorities yet."; + return "No Granted Authorities yet."; } /*