com.nokia.carbide.cpp.internal.news.reader.editor.NewsPageLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for com.nokia.carbide.cpp.internal.news.reader.editor.NewsPageLabelProvider.java

Source

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*
*/

package com.nokia.carbide.cpp.internal.news.reader.editor;

import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableFontProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Display;

import com.nokia.carbide.cpp.internal.news.reader.feed.CarbideSyndEntry;
import com.nokia.carbide.cpp.internal.news.reader.feed.CarbideSyndFeed;

/**
 * Label provider for the Carbide.c++ news page.
 *
 */
public class NewsPageLabelProvider extends LabelProvider implements ITableColorProvider, ITableFontProvider {

    // private content
    private int labelColorID;

    /**
     * The constructor.
     * @param colorID - constant for the matching standard color
     */
    public NewsPageLabelProvider(int colorID) {
        labelColorID = colorID;
    }

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

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.ITableColorProvider#getForeground(java.lang.Object, int)
     */
    public Color getForeground(Object element, int columnIndex) {
        Color color = Display.getDefault().getSystemColor(labelColorID);
        if (element instanceof CarbideSyndFeed) {
            CarbideSyndFeed feed = (CarbideSyndFeed) element;
            if (feed.isNew()) {
                color = Display.getDefault().getSystemColor(SWT.COLOR_RED);
                feed.setIsNew(false);
            }
        }
        return color;
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.ITableFontProvider#getFont(java.lang.Object, int)
     */
    public Font getFont(Object element, int columnIndex) {
        Font font = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
        return font;
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
     */
    @Override
    public String getText(Object element) {
        if (element instanceof CarbideSyndFeed) {
            CarbideSyndFeed feed = (CarbideSyndFeed) element;
            String text = "";
            int count = feed.getUnreadEntries().size();
            if (feed.getTitle().startsWith(NewsPage.NEWS_SUMMARY_TITLE)) {
                text = NewsPage.NEWS_SUMMARY_TITLE + " (" + count + ")";
            } else {
                text = feed.getTitle() + " (" + count + ")";
            }
            return text;
        } else if (element instanceof CarbideSyndEntry) {
            CarbideSyndEntry entry = (CarbideSyndEntry) element;
            return entry.getTitle();
        } else {
            return super.getText(element);
        }
    }

}