Package name.abuchen.portfolio.ui.views.columns

Source Code of name.abuchen.portfolio.ui.views.columns.NameColumn$NameColumnLabelProvider

package name.abuchen.portfolio.ui.views.columns;

import name.abuchen.portfolio.model.Account;
import name.abuchen.portfolio.model.Adaptor;
import name.abuchen.portfolio.model.Classification;
import name.abuchen.portfolio.model.InvestmentPlan;
import name.abuchen.portfolio.model.Named;
import name.abuchen.portfolio.model.Portfolio;
import name.abuchen.portfolio.model.Security;
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.PortfolioPlugin;
import name.abuchen.portfolio.ui.util.Column;
import name.abuchen.portfolio.ui.util.ColumnViewerSorter;
import name.abuchen.portfolio.ui.util.StringEditingSupport;

import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;

public class NameColumn extends Column
{
    public static class NameColumnLabelProvider extends ColumnLabelProvider
    {
        @Override
        public String getText(Object e)
        {
            Named n = Adaptor.adapt(Named.class, e);
            return n != null ? n.getName() : null;
        }

        @Override
        public Image getImage(Object e)
        {
            Named n = Adaptor.adapt(Named.class, e);

            if (n instanceof Security)
                return PortfolioPlugin.image(PortfolioPlugin.IMG_SECURITY);
            else if (n instanceof Account)
                return PortfolioPlugin.image(PortfolioPlugin.IMG_ACCOUNT);
            else if (n instanceof Portfolio)
                return PortfolioPlugin.image(PortfolioPlugin.IMG_PORTFOLIO);
            else if (n instanceof InvestmentPlan)
                return PortfolioPlugin.image(PortfolioPlugin.IMG_INVESTMENTPLAN);
            else if (n instanceof Classification)
                return PortfolioPlugin.image(PortfolioPlugin.IMG_CATEGORY);
            else
                return null;
        }

        @Override
        public String getToolTipText(Object e)
        {
            Named element = Adaptor.adapt(Named.class, e);
            if (element == null)
                return null;
            else if (element instanceof Security)
                return ((Security) element).toInfoString();
            else
                return element.getName();
        }
    }

    public NameColumn()
    {
        this("name"); //$NON-NLS-1$
    }

    public NameColumn(String id)
    {
        this(id, Messages.ColumnName, SWT.LEFT, 300);
    }

    public NameColumn(String id, String label, int style, int defaultWidth)
    {
        super(id, label, style, defaultWidth);

        setLabelProvider(new NameColumnLabelProvider());
        setSorter(ColumnViewerSorter.create(Named.class, "name")); //$NON-NLS-1$
        new StringEditingSupport(Named.class, "name").setMandatory(true).attachTo(this); //$NON-NLS-1$
    }
}
TOP

Related Classes of name.abuchen.portfolio.ui.views.columns.NameColumn$NameColumnLabelProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.