package com.netifera.platform.ui.spaces.table; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import com.netifera.platform.api.model.IEntity; import com.netifera.platform.api.model.IShadowEntity; import com.netifera.platform.ui.api.model.IEntityLabelProviderService; import com.netifera.platform.ui.internal.spaces.Activator; public class SpaceTableLabelProvider extends LabelProvider implements ITableLabelProvider { private final IEntityLabelProviderService entityLabelProvider; public SpaceTableLabelProvider() { entityLabelProvider = Activator.getDefault().getLabelProvider(); } @Override public String getText(Object element) { if(element instanceof IShadowEntity) { return entityLabelProvider.getFullText((IShadowEntity)element); } return null; } @Override public Image getImage(Object element) { if(element instanceof IShadowEntity) { return entityLabelProvider.getImage((IShadowEntity)element); } return null; } public Image getColumnImage(Object element, int column) { if (column == 0) return getImage(element); return null; } public String getColumnText(Object element, int column) { if (column == 0) return getText(element); if (column == 1) { StringBuffer buffer = new StringBuffer(); List<String> tags = new ArrayList<String>(); tags.addAll(((IEntity)element).getTags()); Collections.sort(tags); for (int i=0; i<tags.size(); i++) { if (i > 0) buffer.append(", "); buffer.append(tags.get(i)); } return buffer.toString(); } if (column == 2) return element.getClass().getSimpleName(); return null; } }