package org.goko.core.workspace.tree; import java.util.List; import org.apache.commons.collections.CollectionUtils; import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StyledString; import org.eclipse.swt.graphics.Image; import org.goko.core.common.exception.GkException; import org.goko.core.log.GkLog; import org.goko.core.workspace.bean.ProjectContainerUiProvider; import org.goko.core.workspace.internal.Activator; public class GkProjectLabelProvider extends LabelProvider implements IStyledLabelProvider { /** LOG */ private static final GkLog LOG = GkLog.getLogger(GkProjectLabelProvider.class); public GkProjectLabelProvider() { } /** (inheritDoc) * @see org.eclipse.jface.viewers.BaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener) */ @Override public void addListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } @Override public void dispose() { // TODO Auto-generated method stub } @Override public boolean isLabelProperty(Object element, String property) { // TODO Auto-generated method stub return false; } @Override public void removeListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } /** (inheritDoc) * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object) */ @Override public StyledString getStyledText(Object element) { try { if(element instanceof ProjectContainerUiProvider){ ProjectContainerUiProvider uiProvider = (ProjectContainerUiProvider) element; if(uiProvider != null){ return uiProvider.getStyledText(element); } }else{ List<ProjectContainerUiProvider> uiProvider = Activator.getWorkspaceUIService().getProjectContainerUiProvider(); if(CollectionUtils.isNotEmpty(uiProvider)){ for (ProjectContainerUiProvider projectContainerUiProvider : uiProvider) { if(projectContainerUiProvider.providesLabelFor(element)){ return projectContainerUiProvider.getStyledText(element); } } } } } catch (GkException e) { LOG.error(e); } return new StyledString("No label provider found for ["+String.valueOf(element)+"]"); } /** (inheritDoc) * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getImage(java.lang.Object) */ @Override public Image getImage(Object element) { try { if(element instanceof ProjectContainerUiProvider){ ProjectContainerUiProvider uiProvider = (ProjectContainerUiProvider) element; if(uiProvider != null){ return uiProvider.getImage(element); } }else{ List<ProjectContainerUiProvider> uiProvider = Activator.getWorkspaceUIService().getProjectContainerUiProvider(); if(CollectionUtils.isNotEmpty(uiProvider)){ for (ProjectContainerUiProvider projectContainerUiProvider : uiProvider) { if(projectContainerUiProvider.providesLabelFor(element)){ return projectContainerUiProvider.getImage(element); } } } } } catch (GkException e) { LOG.error(e); } return null; } }