import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.EventBase;
-import eu.etaxonomy.cdm.model.permission.Group;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
-import eu.etaxonomy.cdm.model.permission.User;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.permission.Group;
+import eu.etaxonomy.cdm.model.permission.User;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.ReferencingObjectsContentProvider;
import eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.ReferencingObjectsLabelProvider;
+import eu.etaxonomy.taxeditor.editor.IReferencingObjectsView;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.DescriptionHelper;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @since Aug 16, 2017
*
*/
-public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 {
+public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements IReferencingObjectsView{
private static final Logger logger = Logger
.getLogger(ReferencingObjectsViewE4.class);
viewer.setColumnProperties(titles);
}
- public void updateReferencingObjects(final UUID entityUUID, final Class objectClass) {
+ @Override
+ public void updateReferencingObjects(final UUID entityUUID, final Class objectClass) {
if (actualUuid == entityUUID){
return ;
}
package eu.etaxonomy.taxeditor.handler.defaultHandler;
+import java.util.UUID;
+
import javax.inject.Named;
import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.bulkeditor.AppModelId;
+import eu.etaxonomy.taxeditor.editor.IReferencingObjectsView;
public class OpenReferencingObjectsViewHandler {
+ Object selectedObject;
@Execute
public void execute(EPartService partService) {
MPart part = partService.createPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_REFERENCINGOBJECTS_E4_REFERENCINGOBJECTSVIEWE4);
part = partService.showPart(part, PartState.ACTIVATE);
+ IReferencingObjectsView view = (IReferencingObjectsView)part.getObject();
+ UUID uuid = null;
+ Class clazz = null;
+
+ if (selectedObject instanceof IStructuredSelection){
+ selectedObject = ((IStructuredSelection)selectedObject).getFirstElement();
+ }
+ if (selectedObject instanceof CdmBase){
+ uuid = ((CdmBase)selectedObject).getUuid();
+ clazz = selectedObject.getClass();
+ } else if (selectedObject instanceof UuidAndTitleCache){
+ uuid = ((UuidAndTitleCache)selectedObject).getUuid();
+ clazz = ((UuidAndTitleCache)selectedObject).getType();
+ }
+ if (uuid != null && clazz != null){
+ view.updateReferencingObjects(uuid, clazz);
+ }
+
+
+
}
@CanExecute
boolean canExecute = false;
MPart part = partService.findPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_REFERENCINGOBJECTS_E4_REFERENCINGOBJECTSVIEWE4);
canExecute = !part.equals(activePart);
+
+
+ if (canExecute){
+ String commandId = menuItem.getCommand().getElementId();
+ selectedObject = menuItem.getTransientData().get(commandId+".uuid");
+ if (selectedObject instanceof IStructuredSelection){
+ canExecute = ((IStructuredSelection)selectedObject).size() == 1;
+ }
+ }
menuItem.setVisible(canExecute);
return canExecute;
}