/**
* Copyright (c) 2009-2012 MATSUFUJI Hideharu <matsufuji2008@gmail.com>,
* 2010-2011 KUBO Atsuhiro <kubo@iteman.jp>,
* All rights reserved.
*
* This file is part of MakeGood.
*
* 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
*/
package com.piece_framework.makegood.ui;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.dltk.core.DLTKCore;
import org.eclipse.ui.IStartup;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.texteditor.AbstractTextEditor;
import com.piece_framework.makegood.ui.views.ResultViewController;
import com.piece_framework.makegood.ui.views.TestOutlineViewController;
public class MakeGoodPreparer implements IStartup {
@Override
public void earlyStartup() {
prepare();
}
/**
* @since 1.6.0
*/
private void prepare() {
MakeGoodContext.getInstance().getStatusMonitor().addPreferenceChangeListener(new InstanceScope());
TestOutlineViewController testOutlineViewController = new TestOutlineViewController();
for (IWorkbenchWindow window: PlatformUI.getWorkbench().getWorkbenchWindows()) {
for (IWorkbenchPage page: window.getPages()) {
page.addPartListener(MakeGoodContext.getInstance().getStatusMonitor());
page.addPartListener(testOutlineViewController);
IWorkbenchPart activePart = page.getActivePart();
if (activePart != null) {
MakeGoodContext.getInstance().getActivePart().update(activePart);
if (!(activePart instanceof AbstractTextEditor)) {
MakeGoodContext.getInstance().getStatusMonitor().addSelectionChangedListener(activePart);
}
}
}
};
MakeGoodContext.getInstance().addStatusChangeListener(testOutlineViewController);
DLTKCore.addElementChangedListener(testOutlineViewController);
DebugPlugin.getDefault().addDebugEventListener(new ResultViewController());
PlatformUI.getWorkbench().addWorkbenchListener(MakeGoodContext.getInstance());
ResourcesPlugin.getWorkspace().addResourceChangeListener(new ContinuousTestRunner());
}
}