/*******************************************************************************
* Copyright (c) 2007, 2008 Spring IDE Developers
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Spring IDE Developers - initial API and implementation
*******************************************************************************/
package org.springframework.ide.eclipse.ui.internal.navigator;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.navigator.ICommonContentExtensionSite;
import org.eclipse.ui.navigator.ICommonLabelProvider;
import org.springframework.ide.eclipse.core.model.ISpringProject;
import org.springframework.ide.eclipse.ui.SpringUIImages;
import org.springframework.ide.eclipse.ui.SpringUILabelProvider;
import org.springframework.ide.eclipse.ui.SpringUIPlugin;
/**
* This {@link ICommonLabelProvider} knows about the Spring projects.
* @author Torsten Juergeleit
* @author Christian Dupuis
* @since 2.0
*/
public class SpringNavigatorLabelProvider extends SpringUILabelProvider implements
ICommonLabelProvider {
private static final String SPRING_EXPLORER_LABEL = "Spring Explorer";
private static final String SPRING_ELEMENTS_LABEL = "Spring Elements";
private String providerId;
public SpringNavigatorLabelProvider() {
super(true);
}
public void init(ICommonContentExtensionSite config) {
providerId = config.getExtension().getId();
}
public void restoreState(IMemento memento) {
}
public void saveState(IMemento memento) {
}
public String getDescription(Object element) {
if (element instanceof ISpringProject) {
if (SpringUIPlugin.PROJECT_EXPLORER_CONTENT_PROVIDER_ID.equals(providerId)) {
return new StringBuilder().append(SPRING_ELEMENTS_LABEL).append(" - ").append(
((ISpringProject) element).getProject().getName()).toString();
}
else if (SpringUIPlugin.SPRING_EXPLORER_CONTENT_PROVIDER_ID.equals(providerId)) {
return ((ISpringProject) element).getElementName();
}
}
return null;
}
@Override
public String toString() {
return providerId;
}
@Override
protected Image getImage(Object element, Object parentElement) {
if (element instanceof ISpringProject
&& SpringUIPlugin.PROJECT_EXPLORER_CONTENT_PROVIDER_ID.equals(providerId)) {
return SpringUIImages.getImage(SpringUIImages.IMG_OBJS_SPRING);
}
return super.getImage(element, parentElement);
}
@Override
protected String getText(Object element, Object parentElement) {
if (element instanceof ISpringProject
&& SpringUIPlugin.PROJECT_EXPLORER_CONTENT_PROVIDER_ID.equals(providerId)) {
return SPRING_ELEMENTS_LABEL;
}
else if (element instanceof IWorkspaceRoot) {
return SPRING_EXPLORER_LABEL;
}
return super.getText(element, parentElement);
}
}