/******************************************************************************* * Copyright (c) 2009, 2013 Alena Laskavaia and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Alena Laskavaia - initial API and implementation * Alex Ruiz (Google) * Sergey Prigogin (Google) *******************************************************************************/ package org.eclipse.cdt.codan.internal.ui.cxx; import org.eclipse.ui.IEditorReference; import org.eclipse.ui.IStartup; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; /** * @author Alena Laskavaia */ public class Startup implements IStartup { @Override public void earlyStartup() { registerListeners(); } /** * Register part listener for editor to install c ast reconcile listener */ private void registerListeners() { final IWorkbench workbench = PlatformUI.getWorkbench(); workbench.getDisplay().asyncExec(new Runnable() { @Override public void run() { IWorkbenchWindow active = workbench.getActiveWorkbenchWindow(); if (active == null) return; // The workbench is shutting down. final IWorkbenchPage page = active.getActivePage(); CodanPartListener partListener = new CodanPartListener(); page.addPartListener(partListener); // Check current open editors. for (IEditorReference ref : page.getEditorReferences()) { partListener.partOpened(ref); } } }); } }