/******************************************************************************* * This file is part of the Symfony eclipse plugin. * * (c) Robert Gruendler <r.gruendler@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. ******************************************************************************/ package com.dubture.symfony.ui.views; import java.text.MessageFormat; import org.eclipse.core.resources.IProject; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.StyledCellLabelProvider; import org.eclipse.jface.viewers.StyledString; import org.eclipse.jface.viewers.StyledString.Styler; import org.eclipse.jface.viewers.ViewerCell; import org.eclipse.php.internal.ui.util.PHPPluginImages; import org.eclipse.swt.graphics.Image; import com.dubture.symfony.core.model.Bundle; import com.dubture.symfony.core.model.Service; import com.dubture.symfony.ui.SymfonyPluginImages; @SuppressWarnings("restriction") public class ServiceLabelProvider extends StyledCellLabelProvider implements ILabelProvider { @Override public void update(ViewerCell cell) { Object element = cell.getElement(); Styler style = null; if (element instanceof IProject) { IProject project = (IProject) element; StyledString styledString = new StyledString(project.getName(), style); cell.setText(styledString.toString()); cell.setImage(PHPPluginImages.get(PHPPluginImages.IMG_OBJS_PHP_PROJECT)); } else if (element instanceof Service) { Service service = (Service) element; String name = service.getClassName() != null ? service.getClassName() : service.getId(); StyledString styledString = new StyledString(name, style); String decoration = MessageFormat.format(" [{0}]", new Object[] { service.getId() }); //$NON-NLS-1$ styledString.append(decoration, StyledString.DECORATIONS_STYLER); cell.setText(styledString.toString()); cell.setStyleRanges(styledString.getStyleRanges()); if (service.isPublic()) { cell.setImage(SymfonyPluginImages.get(SymfonyPluginImages.IMG_OBJS_SERVICE_PUBLIC)); } else { cell.setImage(SymfonyPluginImages.get(SymfonyPluginImages.IMG_OBJS_SERVICE_PRIVATE)); } } else if (element instanceof Bundle) { Bundle bundle = (Bundle) element; StyledString styledString = new StyledString(bundle.getElementName(), style); cell.setText(styledString.toString()); cell.setImage(SymfonyPluginImages.get(SymfonyPluginImages.IMG_OBJS_BUNDLE2)); } } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) */ @Override public Image getImage(Object element) { return null; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) */ @Override public String getText(Object element) { if (element instanceof Service) { Service service = (Service) element; return service.getElementName(); } return ""; } }