// ============================================================================
//
// Copyright (C) 2006-2016 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.mdm.repository.core.impl.recyclebin;
import org.eclipse.swt.graphics.Image;
import org.talend.core.model.properties.Item;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.mdm.repository.core.IRepositoryNodeConfiguration;
import org.talend.mdm.repository.core.IRepositoryNodeLabelProvider;
import org.talend.mdm.repository.core.IServerObjectRepositoryType;
import org.talend.mdm.repository.core.impl.AbstractLabelProvider;
import org.talend.mdm.repository.extension.RepositoryNodeConfigurationManager;
import org.talend.mdm.repository.model.mdmproperties.MDMServerObjectItem;
import org.talend.mdm.repository.models.FolderRepositoryObject;
import org.talend.mdm.repository.plugin.RepositoryPlugin;
import org.talend.mdm.repository.utils.EclipseResourceManager;
/**
* DOC hbhong class global comment. Detailled comment <br/>
*
*/
public class RecycleBinLabelProvider extends AbstractLabelProvider {
private static final Image EMPTY_IMG = EclipseResourceManager.getImage(RepositoryPlugin.PLUGIN_ID, "icons/recycle-bin.png"); //$NON-NLS-1$;
private static final Image FULL_IMG = EclipseResourceManager.getImage(RepositoryPlugin.PLUGIN_ID, "icons/recycle-bin.png"); //$NON-NLS-1$;
public String getCategoryLabel(ERepositoryObjectType type) {
return "Recycle bin"; //$NON-NLS-1$
}
@Override
public Image getCategoryImage(Item item) {
return null;
}
@Override
public Image getImage(Object element) {
if (element instanceof IRepositoryViewObject) {
IRepositoryViewObject viewObj = (IRepositoryViewObject) element;
ERepositoryObjectType type = viewObj.getRepositoryObjectType();
if (type == IServerObjectRepositoryType.TYPE_RECYCLE_BIN) {
if (viewObj instanceof FolderRepositoryObject) {
return ((FolderRepositoryObject) viewObj).getChildren().isEmpty() ? EMPTY_IMG : FULL_IMG;
}
}
IRepositoryNodeConfiguration configuration = RepositoryNodeConfigurationManager.getConfiguration(type);
if (configuration != null) {
IRepositoryNodeLabelProvider labelProvider = configuration.getLabelProvider();
return labelProvider.getImage(element);
}
}
return null;
}
@Override
protected String getServerObjectItemText(Item item) {
MDMServerObjectItem mItem = (MDMServerObjectItem) item;
return mItem.getMDMServerObject().getName();
}
}