| /******************************************************************************* |
| * Copyright (c) 2009, 2011 SpringSource, a divison of VMware, Inc. 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: |
| * SpringSource, a division of VMware, Inc. - initial API and implementation |
| * SAP AG - moving to Eclipse Libra project and enhancements |
| *******************************************************************************/ |
| package org.eclipse.libra.framework.editor.ui.internal.dependencies; |
| |
| import org.eclipse.draw2d.IFigure; |
| import org.eclipse.jface.viewers.ILabelProvider; |
| import org.eclipse.jface.viewers.ILabelProviderListener; |
| import org.eclipse.jface.viewers.ISelectionChangedListener; |
| import org.eclipse.jface.viewers.SelectionChangedEvent; |
| import org.eclipse.libra.framework.editor.core.model.IBundle; |
| import org.eclipse.pde.internal.ui.PDEPluginImages; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.graphics.Color; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.swt.widgets.Display; |
| import org.eclipse.ui.forms.widgets.FormToolkit; |
| import org.eclipse.zest.core.viewers.IConnectionStyleProvider; |
| import org.eclipse.zest.core.viewers.IEntityStyleProvider; |
| import org.eclipse.zest.core.widgets.ZestStyles; |
| |
| /** |
| * @author Christian Dupuis |
| * @author Kaloyan Raev |
| */ |
| public class BundleDependencyLabelProvider implements ILabelProvider, IEntityStyleProvider, IConnectionStyleProvider, |
| ISelectionChangedListener { |
| |
| private final Color blackColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK); |
| |
| private final Color colorBorder = new Color(null, 0, 0, 0); |
| |
| private final Color colorRel = new Color(null, 150, 150, 255); |
| |
| private final Color colorRelated = new Color(null, 236, 255, 122); |
| |
| private final Color colorRelResolved = new Color(null, 255, 100, 100); |
| |
| private final Color colorTestBackground = new Color(null, 255, 255, 255); |
| |
| private final Color colorTestHighlight = new Color(null, 182, 217, 0); |
| |
| private final BundleDependencyContentProvider contentProvider; |
| |
| private final Color grayColor = Display.getCurrent().getSystemColor(SWT.COLOR_GRAY); |
| |
| /** |
| * @param formToolkit |
| */ |
| public BundleDependencyLabelProvider(BundleDependencyContentProvider contentProvider, FormToolkit formToolkit) { |
| this.contentProvider = contentProvider; |
| } |
| |
| public void addListener(ILabelProviderListener listener) { |
| // nothing |
| } |
| |
| public void dispose() { |
| colorTestBackground.dispose(); |
| colorTestHighlight.dispose(); |
| colorRel.dispose(); |
| colorRelResolved.dispose(); |
| colorBorder.dispose(); |
| colorRelated.dispose(); |
| } |
| |
| public boolean fisheyeNode(Object entity) { |
| return false; |
| } |
| |
| public Color getBackgroundColour(Object entity) { |
| if (entity instanceof IBundle) { |
| if (contentProvider.isSelected((IBundle) entity)) { |
| return colorRelated; |
| } |
| } |
| return colorTestBackground; |
| } |
| |
| public Color getBorderColor(Object entity) { |
| return colorBorder; |
| } |
| |
| public Color getBorderHighlightColor(Object entity) { |
| return colorBorder; |
| } |
| |
| public int getBorderWidth(Object entity) { |
| return 1; |
| } |
| |
| public Color getColor(Object rel) { |
| if (rel instanceof BundleDependency) { |
| if (contentProvider.isSelected((BundleDependency) rel)) { |
| return blackColor; |
| } |
| return grayColor; |
| } |
| return colorRel; |
| } |
| |
| public int getConnectionStyle(Object rel) { |
| return ZestStyles.CONNECTIONS_DASH; |
| } |
| |
| public Color getForegroundColour(Object entity) { |
| return colorBorder; |
| } |
| |
| public Color getHighlightColor(Object rel) { |
| if (rel instanceof BundleDependency) { |
| return blackColor; |
| } |
| return colorTestHighlight; |
| } |
| |
| public Image getImage(Object element) { |
| if (element instanceof IBundle) { |
| return PDEPluginImages.get(PDEPluginImages.OBJ_DESC_BUNDLE); |
| } |
| return null; |
| } |
| |
| public int getLineWidth(Object rel) { |
| return 1; |
| } |
| |
| public Color getNodeHighlightColor(Object entity) { |
| return colorTestHighlight; |
| } |
| |
| public String getText(Object element) { |
| if (element instanceof IBundle) { |
| return ((IBundle) element).getSymbolicName() + " (" + ((IBundle) element).getVersion() + ")"; |
| } |
| return null; |
| } |
| |
| public IFigure getTooltip(Object entity) { |
| return null; |
| } |
| |
| public boolean isLabelProperty(Object element, String property) { |
| return false; |
| } |
| |
| public void removeListener(ILabelProviderListener listener) { |
| // nothing |
| } |
| |
| public void selectionChanged(SelectionChangedEvent event) { |
| // nothing |
| } |
| |
| } |