// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.mdm.repository.ui.navigator; import java.util.List; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.navigator.ILinkHelper; import org.talend.core.model.repository.ERepositoryObjectType; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.designer.core.ui.editor.ProcessEditorInput; import org.talend.mdm.repository.ui.actions.OpenObjectAction; import org.talend.mdm.repository.ui.editors.IRepositoryViewEditorInput; import org.talend.mdm.repository.utils.RepositoryResourceUtil; public class MDMRepositoryLinkHelper implements ILinkHelper { OpenObjectAction openAction; public MDMRepositoryLinkHelper() { } private void initOpenAction() { if (openAction == null) { openAction = new OpenObjectAction(); MDMRepositoryView repositoryView = MDMRepositoryView.show(); openAction.initCommonViewer(repositoryView.getCommonViewer()); } } public IStructuredSelection findSelection(IEditorInput input) { if (input instanceof IRepositoryViewEditorInput) { IRepositoryViewEditorInput rInput = (IRepositoryViewEditorInput) input; return new StructuredSelection(rInput.getViewObject()); } if (input instanceof ProcessEditorInput) { IRepositoryViewObject theViewObj = getViewObjForJob(input); return new StructuredSelection(theViewObj); } return StructuredSelection.EMPTY; } private IRepositoryViewObject getViewObjForJob(IEditorInput input) { ProcessEditorInput rInput = (ProcessEditorInput) input; String name = rInput.getItem().getProperty().getLabel(); List<IRepositoryViewObject> vObjs = RepositoryResourceUtil.findAllViewObjects(ERepositoryObjectType.PROCESS); IRepositoryViewObject theViewObj = null; for (IRepositoryViewObject obj : vObjs) { if (obj.getLabel().equals(name)) { theViewObj = obj; } } return theViewObj; } public void activateEditor(IWorkbenchPage aPage, IStructuredSelection selection) { initOpenAction(); openAction.selectionChanged(selection); } }