/*******************************************************************************
* Copyright (C) 2008, 2013 Shawn O. Pearce <spearce@spearce.org> 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
*******************************************************************************/
package org.eclipse.egit.ui.internal.history;
import java.text.MessageFormat;
import org.eclipse.egit.ui.internal.UIText;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.resource.LocalResourceManager;
import org.eclipse.jface.resource.ResourceManager;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jgit.diff.DiffEntry.ChangeType;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.RGB;
/**
* Label provider for {@link FileDiff} objects
*/
public class FileDiffLabelProvider extends ColumnLabelProvider {
private final ResourceManager resourceManager = new LocalResourceManager(
JFaceResources.getResources());
private final Color dimmedForegroundColor;
/**
* @param dimmedForegroundRgb the color used for as foreground color for "unhighlighted" entries
*/
public FileDiffLabelProvider(RGB dimmedForegroundRgb) {
dimmedForegroundColor = resourceManager.createColor(dimmedForegroundRgb);
}
@Override
public String getText(final Object element) {
return ((FileDiff) element).getLabel(element);
}
@Override
public Image getImage(final Object element) {
final FileDiff c = (FileDiff) element;
return (Image) resourceManager.get(c.getImageDescriptor(c));
}
@Override
public void dispose() {
this.resourceManager.dispose();
super.dispose();
}
@Override
public Color getForeground(Object element) {
final FileDiff c = (FileDiff) element;
if (!c.isMarked(FileDiffContentProvider.INTERESTING_MARK_TREE_FILTER_INDEX))
return dimmedForegroundColor;
else
return null;
}
@Override
public String getToolTipText(final Object element) {
final FileDiff c = (FileDiff) element;
if (c.getChange() == ChangeType.RENAME) {
return MessageFormat.format(
UIText.FileDiffLabelProvider_RenamedFromToolTip,
c.getOldPath());
}
return null;
}
}