eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailWizardPage.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityLabelTextProvider.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailSection.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailWizardPage.java -text
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.newWizard.NewGrantedAuthorityWizard;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityLabelTextProvider;
/**
* @author a.kohlbecker
model = new ArrayList<UuidAndTitleCache<GrantedAuthorityImpl>>();
for(GrantedAuthorityImpl authority : authorities){
- model.add(new UuidAndTitleCache<GrantedAuthorityImpl>(GrantedAuthorityImpl.class, authority.getUuid(),String.format("%s", authority.getAuthority())));
+
+ model.add(new UuidAndTitleCache<GrantedAuthorityImpl>(GrantedAuthorityImpl.class, authority.getUuid(),String.format("%s", GrantedAuthorityLabelTextProvider.getText(authority))));
}
}
@Override
protected String getTitle(GrantedAuthorityImpl authority) {
- return authority != null ? authority.getAuthority() : "";
+ return authority != null ? GrantedAuthorityLabelTextProvider.getText(authority) : "";
}
}
import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmAuthority;
import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityLabelTextProvider;
/**
private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
private Label lblEntity;
- private Label lblUuid;
+ private Label lblTarget;
private CRUDOperationChooser operationChooser;
private Button btnDelete;
toolkit.adapt(lblEntity, true, true);
lblEntity.setText("Entity");
- lblUuid = new Label(this, SWT.BORDER);
- GridData gd_lblUuid = new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1);
- gd_lblUuid.heightHint = 30;
- gd_lblUuid.widthHint = 270;
- lblUuid.setLayoutData(gd_lblUuid);
- lblUuid.setAlignment(SWT.CENTER);
- toolkit.adapt(lblUuid, true, true);
- lblUuid.setText("Uuid");
+ lblTarget = new Label(this, SWT.BORDER + SWT.WRAP);
+ GridData gd_lblTarget = new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1);
+ gd_lblTarget.heightHint = 30;
+ gd_lblTarget.widthHint = 270;
+ lblTarget.setLayoutData(gd_lblTarget);
+ lblTarget.setAlignment(SWT.LEFT);
+ toolkit.adapt(lblTarget, true, true);
+ lblTarget.setText("Uuid");
operationChooser = new CRUDOperationChooser(this, SWT.BORDER);
operationChooser.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1));
String entityStr = (cdmAuthority.getPermissionClass() == null)?"":cdmAuthority.getPermissionClass().toString();
lblEntity.setText(entityStr);
- String uuidStr = (cdmAuthority.getTargetUUID() == null)?"":cdmAuthority.getTargetUUID().toString();
- lblUuid.setText(uuidStr);
+ String targetLabelText = GrantedAuthorityLabelTextProvider.getTargetText(cdmAuthority);
+ lblTarget.setText(targetLabelText);
operationChooser.setAuthority(cdmaModel, grantedAuthorityI, cdmAuthority);
package eu.etaxonomy.taxeditor.ui.section.grantedAuthority;
import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
+import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmAuthority;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
@Override
protected void createControls(ICdmFormElement formElement,
GrantedAuthorityImpl entity, int style) {
- text_authority = formFactory.createTextWithLabelElement(formElement, "Authority", entity.getAuthority(), style);
+
+ String labelText = GrantedAuthorityLabelTextProvider.getText(entity);
+ text_authority = formFactory.createTextWithLabelElement(formElement, "Authority", labelText, style);
}
--- /dev/null
+package eu.etaxonomy.taxeditor.ui.section.grantedAuthority;
+
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.springframework.security.core.GrantedAuthority;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmAuthority;
+
+import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmPermissionClass;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class GrantedAuthorityLabelTextProvider {
+
+ public static final Logger logger = Logger.getLogger(CdmAuthority.class);
+
+
+ public static String getText(GrantedAuthority grantedAuthority){
+ String labelText = grantedAuthority.getAuthority();
+ try {
+ CdmAuthority cdmAuthority = CdmAuthority.fromGrantedAuthority(grantedAuthority);
+ String targetLabelText = getTargetText(cdmAuthority);
+ if(targetLabelText.length() > 0){
+ labelText = grantedAuthority.getAuthority().replace(cdmAuthority.getTargetUUID().toString(), targetLabelText);
+ }
+ } catch (Exception e) {
+ /* will in most cases catch a ParsingException
+ * this is ignored
+ */
+ if(!e.getClass().getSimpleName().equals("ParsingException")){
+ e.printStackTrace();
+ }
+ // in case it is a Role
+ labelText = grantedAuthority.getAuthority();
+ }
+ return labelText;
+ }
+
+ public static String getTargetText(GrantedAuthority grantedAuthority){
+ if(grantedAuthority instanceof CdmAuthority){
+ return getCdmAuthorityTargetText((CdmAuthority)grantedAuthority);
+
+ }
+ return "";
+ }
+
+ private static String getCdmAuthorityTargetText(CdmAuthority cdmAuthority) {
+
+ UUID uuid = cdmAuthority.getTargetUUID();
+ String targetText = "";
+
+ if(uuid != null){
+ targetText = uuid.toString();
+ if(cdmAuthority.getPermissionClass() != null){
+ try{
+ switch(cdmAuthority.getPermissionClass()) {
+ case USER:
+ targetText = CdmStore.getService(IUserService.class).load(uuid).getUsername();
+ break;
+ case DESCRIPTIONBASE:
+ targetText = CdmStore.getService(IDescriptionService.class).load(uuid).getTitleCache();
+ break;
+ case DESCRIPTIONELEMENTBASE:
+ targetText = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null).toString();
+ break;
+ case TAXONBASE:
+ targetText = CdmStore.getService(ITaxonService.class).load(uuid).getTitleCache();
+ break;
+ case ALL:
+ // makes not much sense here
+ break;
+ case TAXONNODE:
+ TaxonNode node = CdmStore.getService(ITaxonNodeService.class).load(uuid);
+ if(node.getClassification() != null){
+ targetText = node.getClassification().getTitleCache() + " : ";
+ }
+ if(node.getTaxon() != null){
+ targetText += node.getTaxon().getTitleCache();
+ }
+ break;
+ case CLASSIFICATION:
+ targetText = CdmStore.getService(IClassificationService.class).load(uuid).getTitleCache();
+ break;
+ }
+ } catch (NullPointerException e){
+ logger.warn("Either no service found for " + cdmAuthority.getPermissionClass() + " or entitiy not found" , e);
+ }
+ }
+ }
+
+ return targetText;
+ }
+
+
+}
import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
+import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityLabelTextProvider;
/**
* <p>
} else if(entity instanceof Group){
return ((Group) entity).getName();
} else if(entity instanceof GrantedAuthority){
- return ((GrantedAuthority) entity).getAuthority();
+ return GrantedAuthorityLabelTextProvider.getText(((GrantedAuthority) entity));
}
}
return "";