package net.jeeeyul.eclipse.themes.ui.preference.preset.internal; import net.jeeeyul.eclipse.themes.ui.preference.preset.IJTPreset; import net.jeeeyul.swtend.sam.Function1; import net.jeeeyul.swtend.ui.ResourceRegistry; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; /** * Shared Label Provider for {@link IJTPreset} * * @author Jeeeyul */ public class PresetLabelProvider extends LabelProvider { ResourceRegistry<IJTPreset, Image> imageRegistry; /** * */ public PresetLabelProvider() { imageRegistry = new ResourceRegistry<IJTPreset, Image>(new Function1<IJTPreset, Image>() { @Override public Image apply(IJTPreset t) { return t.getImageDescriptor().createImage(); } }); } @Override public Image getImage(Object element) { IJTPreset preset = (IJTPreset) element; return imageRegistry.get(preset); } @Override public String getText(Object element) { IJTPreset preset = (IJTPreset) element; return preset.getName(); } @Override public void dispose() { imageRegistry.dispose(); super.dispose(); } }