package org.eclipse.sirius.editor.properties.api; import java.util.List; import org.eclipse.eef.ide.ui.api.TabDescriptorFilter; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.sirius.business.api.session.Session; import org.eclipse.sirius.business.api.session.SessionManager; import org.eclipse.sirius.editor.tools.internal.presentation.CustomSiriusEditor; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.views.properties.tabbed.ITabDescriptor; import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider; public class EEFTabDescriptorProvider implements ITabDescriptorProvider { @Override public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part, ISelection selection) { if (part instanceof IEditorPart) { IEditorPart iEditorPart = (IEditorPart) part; if (iEditorPart instanceof CustomSiriusEditor) { Session session = SessionManager.INSTANCE.getSessions().iterator().next(); // We have our editor, let's retrieve the tab descriptors if (selection instanceof IStructuredSelection) { IStructuredSelection iStructuredSelection = (IStructuredSelection) selection; final Object[] objects = iStructuredSelection.toArray(); TabDescriptorFilter tabDescriptorFilter = new TabDescriptorFilter(); List<ITabDescriptor> descriptors = tabDescriptorFilter.getTabDescriptors(objects, session.getTransactionalEditingDomain()); return descriptors.toArray(new ITabDescriptor[descriptors.size()]); } } } return new ITabDescriptor[] {}; } }