/******************************************************************************* * Copyright (c) 2013 Cloud Bees, Inc. * All rights reserved. * This program is 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: * Cloud Bees, Inc. - initial API and implementation *******************************************************************************/ package com.cloudbees.eclipse.ui.views; import org.eclipse.jface.viewers.IFontProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; public class CBLabelProvider extends LabelProvider implements IFontProvider { private CBTreeView owner; public CBLabelProvider(final CBTreeView owner) { this.owner = owner; } @Override public String getText(final Object obj) { for (ICBTreeProvider provider : this.owner.getProviders()) { if (provider.getLabelProvider()==null) { continue; } String text = provider.getLabelProvider().getText(obj); if (text != null) { return text; } } return null; } @Override public Image getImage(final Object obj) { for (ICBTreeProvider provider : this.owner.getProviders()) { if (provider.getLabelProvider()==null) { continue; } Image img = provider.getLabelProvider().getImage(obj); if (img != null) { return img; } } return null; } public Font getFont(final Object element) { for (ICBTreeProvider provider : this.owner.getProviders()) { if (provider.getLabelProvider()==null) { continue; } ILabelProvider labelProvider = provider.getLabelProvider(); if (labelProvider instanceof IFontProvider) { Font font = ((IFontProvider) labelProvider).getFont(element); if (font != null) { return font; } } } return null; } }