// ============================================================================
//
// Copyright (C) 2006-2012 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.repository.ui.properties;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.talend.commons.ui.runtime.image.ImageProvider;
import org.talend.repository.RepositoryPlugin;
import org.talend.repository.model.RepositoryNode;
/**
* DOC mhelleboid class global comment. Detailled comment <br/>
*
* $Id: PropsTitleLabelProvider.java 77219 2012-01-24 01:14:15Z mhirt $
*
*/
public class PropsTitleLabelProvider extends LabelProvider {
// The TabbedPropertySheetPage(RepositoryView.java row 417 ) and TalendTabbedPropertySheetPage(TalendEditor row 428)
// will use the same TabbedPropertyRegistry(TabbedPropertyRegistryFactory.java row 69) with the same LabelProvider.
// So the GefEditorLabelProvider and the PropsTitleLabelProvider will be confilcted.
// See issue 973 and commitment 3231
// BTW,I feel this adapter kind of solution is not good.
// by bqian 26 April 2007
private ILabelProvider gefEditorNodeLabelProvider = RepositoryPlugin.getDefault().getDesignerCoreService()
.getGEFEditorNodeLabelProvider();
@Override
public String getText(Object element) {
RepositoryNode repositoryNode = getRepositoryNode(element);
if (repositoryNode != null) {
return repositoryNode.getLabel();
}
return gefEditorNodeLabelProvider.getText(element);
}
@Override
public Image getImage(Object element) {
RepositoryNode repositoryNode = getRepositoryNode(element);
if (repositoryNode != null) {
return ImageProvider.getImage(repositoryNode.getIcon());
}
return gefEditorNodeLabelProvider.getImage(element);
}
private RepositoryNode getRepositoryNode(Object element) {
if (element instanceof IStructuredSelection) {
Object firstElement = ((IStructuredSelection) element).getFirstElement();
return SectionFilter.getRepositoryNode(firstElement);
}
return null;
}
}