/* * Copyright (c) 2015 Data Harmonisation Panel * * All rights reserved. This program and the accompanying materials are made * available under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution. If not, see <http://www.gnu.org/licenses/>. * * Contributors: * Data Harmonisation Panel <http://www.dhpanel.eu> */ package eu.esdihumboldt.hale.ui.functions.groovy.internal; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.StyledCellLabelProvider; import org.eclipse.jface.viewers.StyledString; import org.eclipse.jface.viewers.ViewerCell; import org.eclipse.swt.graphics.Image; import eu.esdihumboldt.cst.functions.groovy.helper.Category; import eu.esdihumboldt.cst.functions.groovy.helper.HelperFunction; import eu.esdihumboldt.cst.functions.groovy.helper.HelperFunctionOrCategory; import eu.esdihumboldt.cst.functions.groovy.helper.spec.impl.HelperFunctionSpecification; import eu.esdihumboldt.hale.ui.common.CommonSharedImages; import eu.esdihumboldt.hale.ui.common.CommonSharedImagesConstants; /** * Label provider for helper function tray * * @author sameer sheikh */ public class HelperFunctionLabelProvider extends StyledCellLabelProvider implements ILabelProvider { /** * Gets the label image for a Category or a functions * * @param element A category or a function object * @return label image for a category or a function */ @Override public Image getImage(Object element) { if (element instanceof Category) { return CommonSharedImages.getImageRegistry().get( CommonSharedImagesConstants.IMG_DEFINITION_GROUP); } else if (element instanceof HelperFunctionOrCategory) { return CommonSharedImages.getImageRegistry().get( CommonSharedImagesConstants.IMG_FUNCTION); } return null; } /** * Gets the text associated for a category or a function * * @param element A category or a function * @return text for the given category or function. */ @Override public String getText(Object element) { if (element instanceof Category) { return ((Category) element).getName(); } else if (element instanceof HelperFunctionOrCategory) { return ((HelperFunctionOrCategory) element).getName(); } return null; } /** * @see org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell) */ @Override public void update(ViewerCell cell) { Object element = cell.getElement(); String elementName = null; if (element instanceof Category) { cell.setText(((Category) element).getName()); cell.setImage(CommonSharedImages.getImageRegistry().get( CommonSharedImagesConstants.IMG_DEFINITION_GROUP)); } else if (element instanceof HelperFunctionOrCategory) { HelperFunctionSpecification hfs = null; elementName = ((HelperFunctionOrCategory) element).getName(); StyledString text = new StyledString(elementName); try { HelperFunction<?> helper = ((HelperFunctionOrCategory) element).asFunction(); hfs = (HelperFunctionSpecification) helper.getSpec(elementName); text.append(PageFunctions.getStyledParameters(hfs)); } catch (Exception e) { // } cell.setText(text.getString()); cell.setImage(CommonSharedImages.getImageRegistry().get( CommonSharedImagesConstants.IMG_FUNCTION)); cell.setStyleRanges(text.getStyleRanges()); } super.update(cell); } }