/*******************************************************************************
* Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. 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
*
*******************************************************************************/
package com.cisco.yangide.ext.model.editor.dialog;
import org.eclipse.graphiti.ui.services.GraphitiUi;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import com.cisco.yangide.core.indexing.ElementIndexInfo;
import com.cisco.yangide.core.indexing.ElementIndexType;
import com.cisco.yangide.ext.model.Module;
import com.cisco.yangide.ext.model.editor.dialog.YangElementListSelectionDialog.Transformer;
import com.cisco.yangide.ext.model.editor.util.Strings;
import com.cisco.yangide.ext.model.editor.util.YangDiagramImageProvider;
public class ElementLabelProvider extends LabelProvider {
protected Transformer transformer;
protected Module module;
public ElementLabelProvider(Transformer transformer) {
this.transformer = transformer;
}
public ElementLabelProvider(Module module) {
this.module = module;
this.transformer = new Transformer() {
@Override
public String transform(ElementIndexInfo info) {
if (getModule().getName().equals(info.getModule())) {
return info.getName();
} else {
return info.getModule() + " : " + info.getName();
}
}
};
}
@Override
public Image getImage(Object element) {
if (element instanceof ElementIndexInfo) {
ElementIndexInfo info = (ElementIndexInfo) element;
if (ElementIndexType.GROUPING.equals(info.getType())) {
return GraphitiUi.getImageService().getImageForId(YangDiagramImageProvider.DIAGRAM_TYPE_PROVIDER_ID,
YangDiagramImageProvider.IMG_GROUPING_PROPOSAL);
}
if (ElementIndexType.TYPE.equals(info.getType())) {
return GraphitiUi.getImageService().getImageForId(YangDiagramImageProvider.DIAGRAM_TYPE_PROVIDER_ID,
YangDiagramImageProvider.IMG_CUSTOM_TYPE_PROPOSAL);
}
if (ElementIndexType.IDENTITY.equals(info.getType())) {
return GraphitiUi.getImageService().getImageForId(YangDiagramImageProvider.DIAGRAM_TYPE_PROVIDER_ID,
YangDiagramImageProvider.IMG_IDENTITY_PROPOSAL);
}
} else {
return GraphitiUi.getImageService().getImageForId(YangDiagramImageProvider.DIAGRAM_TYPE_PROVIDER_ID,
YangDiagramImageProvider.IMG_TYPE_PROPOSAL);
}
return super.getImage(element);
}
@Override
public String getText(Object element) {
if (element instanceof ElementIndexInfo) {
return transformer.transform((ElementIndexInfo) element);
}
return Strings.getAsString(element);
}
private Module getModule() {
return module;
}
public void setModule(Module module) {
this.module = module;
}
}