blob: c1ab96da5d526c501e327ce54816acf6d500eca3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 IBM Corporation 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: Sian January - initial version
******************************************************************************/
package org.eclipse.ajdt.internal.ui.editor;
import org.eclipse.ajdt.internal.ui.resources.AspectJImages;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry;
import org.eclipse.jdt.ui.ProblemsLabelDecorator;
import org.eclipse.swt.graphics.Image;
/*
* Sian - Added as part of the fix for bug 78182
*/
/**
* The <code>AspectJEditorErrorTickUpdater</code> will register as a IProblemChangedListener
* to listen on problem changes of the editor's input. It updates the title image when the annotation
* model changed.
*/
public class AspectJEditorTitleImageUpdater {
private ImageDescriptorRegistry registry = JavaPlugin.getImageDescriptorRegistry();
private final Image baseImage = registry.get(AspectJImages.ASPECTJ_FILE.getImageDescriptor());
private final ProblemsLabelDecorator problemsDecorator;
private AspectJEditor editor;
public AspectJEditorTitleImageUpdater(AspectJEditor editor) {
Assert.isNotNull(editor);
this.editor = editor;
problemsDecorator = new ProblemsLabelDecorator(registry);
}
public boolean updateEditorImage(IJavaElement jelement) {
Image titleImage= editor.getTitleImage();
if (titleImage == null) {
return false;
}
Image newImage = problemsDecorator.decorateImage(baseImage, jelement);
if (titleImage != newImage) {
editor.customUpdatedTitleImage(newImage);
return true;
}
return false;
}
public void dispose() {
problemsDecorator.dispose();
}
}