/******************************************************************************* * Copyright (c) 2002, 2015 IBM Corporation 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 * * Contributors: * IBM Rational Software - Initial API and implementation * Red Hat Inc. - Modification for Autotools usage *******************************************************************************/ package org.eclipse.cdt.internal.autotools.ui.properties; import org.eclipse.cdt.internal.autotools.core.configure.IAConfiguration; import org.eclipse.cdt.internal.autotools.core.configure.IConfigureOption; import org.eclipse.cdt.internal.autotools.ui.AutotoolsUIPluginImages; import org.eclipse.cdt.ui.newui.UIMessages; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ResourceManager; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; public class ToolListLabelProvider extends LabelProvider { private final Image IMG_TOOL = AutotoolsUIPluginImages.get(AutotoolsUIPluginImages.IMG_CFG_TOOL); private final Image IMG_CAT = AutotoolsUIPluginImages.get(AutotoolsUIPluginImages.IMG_CFG_CATEGORY); private static final String ERROR_UNKNOWN_ELEMENT = "ConfigurePropertyPage.error.Unknown_tree_element"; //$NON-NLS-1$ private ImageDescriptor descriptor = null; private ResourceManager manager = null; private IAConfiguration cfg = null; public ToolListLabelProvider(IAConfiguration cfg) { this.cfg = cfg; } public IAConfiguration getCfg() { return cfg; } public void setCfg(IAConfiguration cfg) { this.cfg = cfg; } @Override public Image getImage(Object element) { if (!(element instanceof ToolListElement)) { throw unknownElement(element); } Image defaultImage = IMG_CAT; ToolListElement toolListElement = (ToolListElement)element; IConfigureOption cat = cfg.getOption(toolListElement.getName()); if (cat == null) { defaultImage = IMG_TOOL; } // Use default icon for display return defaultImage; } @Override public String getText(Object element) { if (!(element instanceof ToolListElement)) { throw unknownElement(element); } ToolListElement toolListElement = (ToolListElement)element; IConfigureOption cat = cfg.getOption(toolListElement.getName()); if (cat == null) { return toolListElement.getName(); } else { return cat.getDescription(); } } protected RuntimeException unknownElement(Object element) { return new RuntimeException(UIMessages.getFormattedString(ERROR_UNKNOWN_ELEMENT, element.getClass().getName())); } /** * Disposing any images that were allocated for it. * * @since 3.0 */ @Override public void dispose() { if (descriptor != null && manager != null) { manager.destroyImage(descriptor); } }; }