/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.red_core;
import org.eclipse.swt.custom.StyleRange;
import org.python.pydev.core.callbacks.ICallbackListener;
import org.python.pydev.debug.codecoverage.CoverageCache;
import org.python.pydev.debug.codecoverage.PyCodeCoverageView;
import org.python.pydev.ui.IViewCreatedObserver;
import org.python.pydev.ui.IViewWithControls;
public class AddRedCoreThemeToView implements IViewCreatedObserver {
private static boolean registeredForStyleOnCoverage = false;
@SuppressWarnings("unchecked")
public void notifyViewCreated(IViewWithControls view) {
if (!AddRedCoreThemeAvailable.isRedCoreAvailableForTheming()) {
return;
}
AddRedCoreThemeToViewCallbacks onViewCreatedListener = new AddRedCoreThemeToViewCallbacks();
view.getOnControlCreated().registerListener(onViewCreatedListener.onControlCreated);
view.getOnControlDisposed().registerListener(onViewCreatedListener.onControlDisposed);
if (view instanceof PyCodeCoverageView) {
if (!registeredForStyleOnCoverage) {
//Only register once as it's static.
registeredForStyleOnCoverage = true;
final AddRedCorePreferences preferences = new AddRedCorePreferences();
CoverageCache.onStyleCreated.registerListener(new ICallbackListener<StyleRange>() {
public Object call(StyleRange obj) {
obj.foreground = preferences.getHyperlinkTextAttribute().getForeground();
return null;
}
});
}
}
}
}