/* * Copyright 2015 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.eclipse.jface.viewers; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; /** * This class enables possibility to provide and customize tooltips when using * styled label providers. * * @author Michal Anglart * */ public class TooltipsEnablingDelegatingStyledCellLabelProvider extends DelegatingStyledCellLabelProvider implements ILabelProvider { private final IStyledLabelProvider labelProvider; public TooltipsEnablingDelegatingStyledCellLabelProvider(final IStyledLabelProvider labelProvider) { super(labelProvider); this.labelProvider = labelProvider; } @Override public Color getToolTipBackgroundColor(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipBackgroundColor(object); } return super.getToolTipBackgroundColor(object); } @Override public int getToolTipDisplayDelayTime(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipDisplayDelayTime(object); } return super.getToolTipDisplayDelayTime(object); } @Override public Font getToolTipFont(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipFont(object); } return super.getToolTipFont(object); } @Override public Color getToolTipForegroundColor(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipForegroundColor(object); } return super.getToolTipForegroundColor(object); } @Override public Image getToolTipImage(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipImage(object); } return super.getToolTipImage(object); } @Override public Point getToolTipShift(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipShift(object); } return super.getToolTipShift(object); } @Override public int getToolTipStyle(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipStyle(object); } return super.getToolTipStyle(object); } @Override public String getToolTipText(final Object element) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipText(element); } return super.getToolTipText(element); } @Override public int getToolTipTimeDisplayed(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).getToolTipTimeDisplayed(object); } return super.getToolTipTimeDisplayed(object); } @Override public boolean useNativeToolTip(final Object object) { if (labelProvider instanceof CellLabelProvider) { return ((CellLabelProvider) labelProvider).useNativeToolTip(object); } return super.useNativeToolTip(object); } @Override public String getText(final Object element) { return ""; } }