com.cloudbees.eclipse.ui.views.CBLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for com.cloudbees.eclipse.ui.views.CBLabelProvider.java

Source

/*******************************************************************************
 * 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;
    }

}