// ============================================================================
//
// 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.starting.actions;
import java.util.Properties;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.intro.IIntroSite;
import org.eclipse.ui.intro.config.IIntroAction;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.mdm.repository.i18n.Messages;
import org.talend.mdm.repository.ui.navigator.MDMRepositoryView;
import org.talend.mdm.workbench.serverexplorer.ui.views.ServerExplorer;
import org.talend.repository.model.IProxyRepositoryFactory;
public abstract class AbstractShowViewAction implements IIntroAction {
public void run(IIntroSite site, Properties params) {
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
if (factory.isUserReadOnlyOnCurrentProject()) {
MessageDialog.openWarning(null, Messages.AbstractShowViewAction_authorityTitle, getReadOnlyMessage());
return;
}
doRun(site, params);
}
/**
* DOC HHB Comment method "doRun".
*
* @param site
* @param params
*/
protected abstract void doRun(IIntroSite site, Properties params);
protected abstract String getReadOnlyMessage();
protected ServerExplorer showServerExplorer() throws PartInitException {
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
ServerExplorer serverExplorer = (ServerExplorer) activePage.findView(ServerExplorer.ID);
if (serverExplorer == null) {
serverExplorer = (ServerExplorer) activePage.showView(ServerExplorer.ID);
}
activePage.activate(serverExplorer);
serverExplorer.setFocus();
return serverExplorer;
}
protected MDMRepositoryView showRepositoryView() throws PartInitException {
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
MDMRepositoryView findView = (MDMRepositoryView) activePage.findView(MDMRepositoryView.VIEW_ID);
if (findView == null)
findView = (MDMRepositoryView) activePage.showView(MDMRepositoryView.VIEW_ID);
activePage.activate(findView);
findView.setFocus();
return findView;
}
}