/****************************************************************************** * Copyright (C) 2011-2013 Fabio Zadrozny * * 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: * Fabio Zadrozny <fabiofz@gmail.com> - initial API and implementation ******************************************************************************/ package com.python.pydev.ui.hierarchy; import org.eclipse.jface.preference.JFacePreferences; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StyledString; import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; import org.eclipse.jface.viewers.StyledString.Styler; import org.eclipse.swt.graphics.Image; import org.python.pydev.shared_core.structure.DataAndImageTreeNode; class HierarchyLabelProvider extends LabelProvider implements IStyledLabelProvider { @Override public Image getImage(Object element) { if (element instanceof DataAndImageTreeNode) { @SuppressWarnings("rawtypes") DataAndImageTreeNode treeNode = (DataAndImageTreeNode) element; return treeNode.image; } return super.getImage(element); } @Override public String getText(Object element) { if (element instanceof DataAndImageTreeNode) { @SuppressWarnings("rawtypes") DataAndImageTreeNode treeNode = (DataAndImageTreeNode) element; Object data = treeNode.data; if (data instanceof HierarchyNodeModel) { HierarchyNodeModel model = (HierarchyNodeModel) data; String spaces = " "; if (model.moduleName != null && model.moduleName.trim().length() > 0) { return model.name + spaces + "(" + model.moduleName + ")"; } return model.name; } return data.toString(); } return super.getText(element); } //not there on all versions of eclipse... @Override public StyledString getStyledText(Object element) { if (element instanceof DataAndImageTreeNode) { @SuppressWarnings("rawtypes") DataAndImageTreeNode treeNode = (DataAndImageTreeNode) element; Object data = treeNode.data; if (data instanceof HierarchyNodeModel) { HierarchyNodeModel model = (HierarchyNodeModel) data; String spaces = " "; StyledString styledString = new StyledString(model.name + spaces); if (model.moduleName != null && model.moduleName.trim().length() > 0) { Styler styler = StyledString.createColorRegistryStyler(JFacePreferences.DECORATIONS_COLOR, null); styledString.append("(" + model.moduleName + ")", styler); } return styledString; } return new StyledString(data.toString()); } return new StyledString(element == null ? "" : element.toString()); } }