package de.hannesniederhausen.storynotes.ui.internal.navigation.widgets;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Image;
import de.hannesniederhausen.storynotes.model.File;
import de.hannesniederhausen.storynotes.model.annotations.IAnnotationConstants;
public class StoryNotesLabelProvider implements ILabelProvider {
@Override
public String getText(Object element) {
if (element instanceof File) {
String filename = ((File) element).getFilename();
if (filename==null)
filename = "Unnamed file";
else {
java.io.File f = new java.io.File(filename);
filename=f.getName();
}
return filename;
}
EStructuralFeature lf = getLabelFeature(element);
if (lf!=null) {
EObject e = (EObject) element;
return e.eGet(lf).toString();
}
return "";
}
public EStructuralFeature getLabelFeature(Object element) {
EObject e = (EObject) element;
EStructuralFeature labelFeature = null;
for (EStructuralFeature f : e.eClass().getEAllStructuralFeatures()) {
if (f.getEAnnotation(IAnnotationConstants.MODEL_LABEL)!=null) {
labelFeature=f;
break;
}
}
return labelFeature;
}
@Override
public void removeListener(ILabelProviderListener listener) {
}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void dispose() {
}
@Override
public void addListener(ILabelProviderListener listener) {
}
@Override
public Image getImage(Object element) {
return null;
}
}