/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.cpacs.vampzeroinitializer.gui; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; import java.util.Map; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.swt.graphics.Device; import org.eclipse.swt.graphics.Image; import de.rcenvironment.components.cpacs.vampzeroinitializer.gui.model.Component; import de.rcenvironment.components.cpacs.vampzeroinitializer.gui.model.Discipline; import de.rcenvironment.components.cpacs.vampzeroinitializer.gui.model.Named; import de.rcenvironment.components.cpacs.vampzeroinitializer.gui.model.Parameter; import de.rcenvironment.core.gui.resources.api.ImageManager; import de.rcenvironment.core.gui.resources.api.StandardImages; /** * The label provider for the parameter tree. * * @author Arne Bachmann * @author Markus Kunde */ public class ParameterTreeLabelProvider extends ColumnLabelProvider { private final Map<Class<?>, Image> imageCache = new Hashtable<Class<?>, Image>(); public ParameterTreeLabelProvider(final Device device) { super(); Image rootImage = ImageManager.getInstance().getSharedImage(StandardImages.VAMPZERO_ROOT); Image cImage = ImageManager.getInstance().getSharedImage(StandardImages.VAMPZERO_C); Image dImage = ImageManager.getInstance().getSharedImage(StandardImages.VAMPZERO_D); Image pImage = ImageManager.getInstance().getSharedImage(StandardImages.VAMPZERO_P); imageCache.put(ArrayList.class, rootImage); imageCache.put(Component.class, cImage); imageCache.put(Discipline.class, dImage); imageCache.put(Parameter.class, pImage); } @Override public String getText(final Object element) { if (element instanceof List<?>) { return "Parameters to apply"; } if (element instanceof Named) { return ((Named) element).getName(); } return null; } @Override public Image getImage(final Object element) { return imageCache.get(element.getClass()); // or null } @Override public void addListener(final ILabelProviderListener listener) {} @Override public boolean isLabelProperty(final Object element, final String property) { return false; // label not affected by property changes } @Override public void removeListener(final ILabelProviderListener listener) {} @Override public String getToolTipText(final Object element) { if (element instanceof Parameter) { return element.toString(); } return null; } }