package org.rascalmpl.eclipse.navigator; import org.eclipse.core.filesystem.IFileStore; import org.eclipse.jdt.ui.ISharedImages; import org.eclipse.jdt.ui.JavaElementLabelProvider; import org.eclipse.jdt.ui.JavaUI; import org.eclipse.jface.viewers.StyledString; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.PlatformUI; import org.rascalmpl.eclipse.navigator.NavigatorContentProvider.SearchPath; import org.rascalmpl.eclipse.navigator.NavigatorContentProvider.URIContent; import org.rascalmpl.eclipse.navigator.NavigatorContentProvider.ValueContent; public class NavigatorContentLabelProvider extends JavaElementLabelProvider { @Override public String getText(Object element) { if (element instanceof URIContent) { URIContent store = (URIContent) element; return store.isRoot() ? store.getURI().toString() : store.getName(); } else if (element instanceof SearchPath) { return "search path"; } else if (element instanceof ValueContent) { return ((ValueContent) element).getName(); } else { return super.getText(element); } } @Override public StyledString getStyledText(Object element) { if (element instanceof IFileStore) { return new StyledString(getText(element)); } else if (element instanceof URIContent) { return new StyledString(getText(element)); } else if (element instanceof SearchPath || element instanceof ValueContent) { return new StyledString(getText(element)); } return super.getStyledText(element); } @Override public Image getImage(Object element) { if (element instanceof SearchPath || element instanceof ValueContent) { return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_JAR_WITH_SOURCE); } if (element instanceof URIContent) { URIContent curr = (URIContent) element; if (curr.isDirectory()) { if (curr.isRoot()) { return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_JAR_WITH_SOURCE); } else { return PlatformUI.getWorkbench().getSharedImages().getImage(org.eclipse.ui.ISharedImages.IMG_OBJ_FOLDER); } } return PlatformUI.getWorkbench().getSharedImages().getImage(org.eclipse.ui.ISharedImages.IMG_OBJ_FILE); } return super.getImage(element); } }