// ============================================================================ // // 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.utils; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.mdm.repository.core.IRepositoryNodeActionProvider; import org.talend.mdm.repository.core.IRepositoryNodeConfiguration; import org.talend.mdm.repository.extension.RepositoryNodeConfigurationManager; import org.talend.mdm.repository.ui.editors.IRepositoryViewEditorInput; import com.amalto.workbench.views.MDMPerspective; /** * created by HHB on 2013-3-6 Detailled comment * */ public class UIUtil { public static boolean isWorkInUI() { try { return PlatformUI.getWorkbench() != null; } catch (Exception e) { return false; } } public static IEditorPart findOpenedEditor(IEditorInput input) { if (input == null) { throw new IllegalArgumentException(); } IWorkbenchPage page = getCurrentPage(); if (page != null) { return page.findEditor(input); } return null; } private static IWorkbenchPage getCurrentPage() { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); if (window != null) { IWorkbenchPage page = window.getActivePage(); return page; } return null; } // Note:only work for MDM objects public static IEditorPart findOpenedEditor(IRepositoryViewObject viewObj) { if (viewObj == null) { throw new IllegalArgumentException(); } IRepositoryNodeConfiguration configuration = RepositoryNodeConfigurationManager.getConfiguration(viewObj); if (configuration != null) { IRepositoryNodeActionProvider actionProvider = configuration.getActionProvider(); if (actionProvider != null) { IRepositoryViewEditorInput editorInput = actionProvider.getOpenEditorInput(viewObj); if (editorInput != null) { return findOpenedEditor(editorInput); } } } return null; } public static void closeEditor(IEditorPart editorPart, boolean save) { IWorkbenchPage page = getCurrentPage(); if (page != null) { page.closeEditor(editorPart, save); } } public static boolean isMDMPerspective(IWorkbenchPage page) { String perspectiveId = page.getPerspective().getId(); return MDMPerspective.PERPECTIVE_ID.equals(perspectiveId); } }