com.aptana.index.core.ui.views.IndexViewLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for com.aptana.index.core.ui.views.IndexViewLabelProvider.java

Source

/**
 * Aptana Studio
 * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
 * Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions).
 * Please see the license.html included with this distribution for details.
 * Any modifications to this file must keep this entire header intact.
 */
package com.aptana.index.core.ui.views;

import java.util.List;

import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.IColorProvider;
import org.eclipse.jface.viewers.IFontProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;

import com.aptana.core.util.StringUtil;
import com.aptana.theme.IThemeManager;
import com.aptana.theme.Theme;
import com.aptana.theme.ThemePlugin;
import com.aptana.theme.preferences.IPreferenceConstants;

/**
 * IndexViewLabelProvider
 */
public class IndexViewLabelProvider extends AbstractProvider<ILabelProvider>
        implements ILabelProvider, IColorProvider, IFontProvider {
    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
     */
    public void addListener(ILabelProviderListener listener) {
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
     */
    public void dispose() {
        // do nothing
    }

    /*
     * (non-Javadoc)
     * @see com.aptana.index.core.ui.views.ClassProcessor#getAttributeName()
     */
    @Override
    public String getAttributeName() {
        return "label-provider"; //$NON-NLS-1$
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
     */
    public Color getBackground(Object element) {
        return null;
    }

    /**
     * getCurrentTheme
     * 
     * @return
     */
    protected Theme getCurrentTheme() {
        return ThemePlugin.getDefault().getThemeManager().getCurrentTheme();
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
     */
    public Font getFont(Object element) {
        if (!useEditorFont()) {
            return null;
        }

        Font font = JFaceResources.getFont(IThemeManager.VIEW_FONT_NAME);
        if (font == null) {
            font = JFaceResources.getTextFont();
        }
        return font;
    }

    protected boolean useEditorFont() {
        return Platform.getPreferencesService().getBoolean(ThemePlugin.PLUGIN_ID,
                IPreferenceConstants.INVASIVE_FONT, false, null);
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
     */
    public Color getForeground(Object element) {
        if (ThemePlugin.applyToViews()) {
            return getCurrentTheme().getForegroundColor();
        }

        return null;
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
     */
    public Image getImage(Object element) {
        List<ILabelProvider> providers = this.getProcessors();
        Image result = null;

        for (ILabelProvider provider : providers) {
            result = provider.getImage(element);

            if (result != null) {
                break;
            }
        }

        return result;
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
     */
    public String getText(Object element) {
        List<ILabelProvider> providers = this.getProcessors();
        String result = StringUtil.EMPTY;

        for (ILabelProvider provider : providers) {
            String text = provider.getText(element);

            if (!StringUtil.isEmpty(text)) {
                result = text;
                break;
            }
        }

        return result;
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
     */
    public boolean isLabelProperty(Object element, String property) {
        return false;
    }

    /*
     * (non-Javadoc)
     * @see
     * org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
     */
    public void removeListener(ILabelProviderListener listener) {
    }
}