else if (PersistenceDataKeys.PERSISTENCE_FACET.equals(key)) {
set = true;
sink.put(PersistenceDataKeys.PERSISTENCE_FACET, myFacet);
}
else if (JamObjectDescriptor.SELECTED_COMMON_MODEL_ELEMENT.equals(key)) {
final CommonModelElement element = diagram.getSelectedEntity() != null ? diagram.getSelectedEntity() : diagram.getUnit();
set = true;
sink.put(JamObjectDescriptor.SELECTED_COMMON_MODEL_ELEMENT, element);
}
else if (PersistenceDataKeys.PERSISTENCE_UNIT.equals(key)) {
set = true;
sink.put(PersistenceDataKeys.PERSISTENCE_UNIT, diagram.getUnit());
}
else if (DataKeys.PSI_ELEMENT_ARRAY.equals(key)) {
set = true;
final Collection<CommonModelElement> elements = getSelectedElements(diagram);
if (!elements.isEmpty()) {
final HashSet<PsiElement> result = new HashSet<PsiElement>();
for (CommonModelElement element : elements) {
final PsiElement psiElement = element.getIdentifyingPsiElement();
ContainerUtil.addIfNotNull(psiElement, result);
}
sink.put(DataKeys.PSI_ELEMENT_ARRAY, result.toArray(new PsiElement[result.size()]));
}
}
else if (DataKeys.DELETE_ELEMENT_PROVIDER.equals(key)) {
set = true;
final Collection<CommonModelElement> elements = getSelectedElements(diagram);
if (!elements.isEmpty()) {
sink.put(DataKeys.DELETE_ELEMENT_PROVIDER, new JamDeleteProvider(new DefaultUserResponse(diagram.getUnit().getPsiManager().getProject()), elements));
}
}
else if (DataKeys.NAVIGATABLE_ARRAY.equals(key)) {
set = true;
final Collection<CommonModelElement> elements = getSelectedElements(diagram);
if (!elements.isEmpty()) {
final HashSet<OpenFileDescriptor> result = new HashSet<OpenFileDescriptor>();
for (CommonModelElement element : elements) {
final PsiElement psiElement = element.getIdentifyingPsiElement();
if (psiElement != null) {
final PsiFile containingFile = psiElement.getContainingFile();
final VirtualFile file = containingFile == null ? null : containingFile.getVirtualFile();
if (file != null) {
result.add(new OpenFileDescriptor(psiElement.getProject(), file, psiElement.getTextOffset()));