Java tutorial
/** * 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) { } }