EclipseJDT ASTViewer Source Viewer

Home|eclipse_jdt_astviewer/src/org/eclipse/jdt/astview/views/TrayLabelProvider.java
1/*******************************************************************************
2 * Copyright (c) 2000, 2006 IBM Corporation and others.
3 *
4 * This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License 2.0
6 * which accompanies this distribution, and is available at
7 * https://www.eclipse.org/legal/epl-2.0/
8 *
9 * SPDX-License-Identifier: EPL-2.0
10 *
11 * Contributors:
12 *     IBM Corporation - initial API and implementation
13 *******************************************************************************/
14
15package org.eclipse.jdt.astview.views;
16
17import org.eclipse.swt.SWT;
18import org.eclipse.swt.graphics.Color;
19import org.eclipse.swt.graphics.Image;
20import org.eclipse.swt.widgets.Display;
21
22import org.eclipse.jface.viewers.IColorProvider;
23import org.eclipse.jface.viewers.LabelProvider;
24import org.eclipse.jface.viewers.LabelProviderChangedEvent;
25
26import org.eclipse.jdt.core.Signature;
27import org.eclipse.jdt.core.dom.ASTNode;
28
29public class TrayLabelProvider extends LabelProvider implements IColorProvider {
30
31    private Color fBluefRed;
32    private Color fWidgetForeground;
33
34    private Object fViewerElement;
35
36    public TrayLabelProvider() {
37        Display displayDisplay.getCurrent();
38
39        fReddisplay.getSystemColor(SWT.COLOR_RED);
40        fBluedisplay.getSystemColor(SWT.COLOR_DARK_BLUE);
41        fWidgetForegrounddisplay.getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
42    }
43
44    public void setViewerElement(Object viewerElement) {
45        if (fViewerElement != viewerElement) {
46            fViewerElementviewerElement;
47            fireLabelProviderChanged(new LabelProviderChangedEvent(this));
48        }
49    }
50
51    @Override
52    public String getText(Object obj) {
53        if (obj instanceof DynamicBindingProperty) {
54            DynamicBindingProperty dynamicBindingProperty= (DynamicBindingPropertyobj;
55            dynamicBindingProperty.setViewerElement(fViewerElement instanceof Binding ? (BindingfViewerElement : null);
56            return dynamicBindingProperty.getLabel();
57        } else if (obj instanceof DynamicAttributeProperty) {
58            DynamicAttributeProperty dynamicAttributeProperty= (DynamicAttributePropertyobj;
59            dynamicAttributeProperty.setViewerElement(fViewerElement);
60            return dynamicAttributeProperty.getLabel();
61        } else if (obj instanceof ASTAttribute) {
62            return ((ASTAttributeobj).getLabel();
63        } else if (obj instanceof ASTNode) {
64            return Signature.getSimpleName(((ASTNodeobj).getClass().getName());
65        } else {
66            return ""// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126017
67        }
68    }
69
70    @Override
71    public Image getImage(Object obj) {
72        if (obj instanceof DynamicBindingProperty) {
73            DynamicBindingProperty dynamicBindingProperty= (DynamicBindingPropertyobj;
74            dynamicBindingProperty.setViewerElement(fViewerElement instanceof Binding ? (BindingfViewerElement : null);
75            return dynamicBindingProperty.getImage();
76        } else if (obj instanceof DynamicAttributeProperty) {
77            DynamicAttributeProperty dynamicAttributeProperty= (DynamicAttributePropertyobj;
78            dynamicAttributeProperty.setViewerElement(fViewerElement);
79            return dynamicAttributeProperty.getImage();
80        } else if (obj instanceof ASTAttribute) {
81            return ((ASTAttributeobj).getImage();
82        } else {
83            return null;
84        }
85    }
86
87    /*
88     * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
89     */
90    @Override
91    public void dispose() {
92        super.dispose();
93        fViewerElementnull;
94    }
95
96    @Override
97    public Color getForeground(Object element) {
98        if (element instanceof Binding) {
99            return fBlue;
100
101        } else if (element instanceof ExceptionAttribute) {
102            if (element instanceof DynamicBindingProperty) {
103                ((DynamicBindingPropertyelement).setViewerElement(fViewerElement instanceof Binding ? (BindingfViewerElement : null);
104            } else if (element instanceof DynamicAttributeProperty) {
105                ((DynamicAttributePropertyelement).setViewerElement(fViewerElement);
106            }
107
108            if (((ExceptionAttributeelement).getException() == null)
109//                return null; //Bug 75022: Does not work when label is updated (retains old color, doesn't get default)
110                //TODO remove hackaround when bug 75022 is fixed
111                return fWidgetForeground;
112            else
113                return fRed;
114
115        } else {
116            return null// normal color
117        }
118    }
119
120    /*
121     * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
122     */
123    @Override
124    public Color getBackground(Object element) {
125        return null;
126    }
127
128}
129
MembersX
TrayLabelProvider:getText:Block:Block:dynamicAttributeProperty
TrayLabelProvider:TrayLabelProvider:Block:display
TrayLabelProvider:getImage:Block:Block:dynamicBindingProperty
TrayLabelProvider:getForeground
TrayLabelProvider:TrayLabelProvider
TrayLabelProvider:fViewerElement
TrayLabelProvider:getText:Block:Block:dynamicBindingProperty
TrayLabelProvider:fWidgetForeground
TrayLabelProvider:getImage:Block:Block:dynamicAttributeProperty
TrayLabelProvider:fRed
TrayLabelProvider:getText
TrayLabelProvider:getBackground
TrayLabelProvider:setViewerElement
TrayLabelProvider:getImage
TrayLabelProvider:dispose
TrayLabelProvider:fBlue
Members
X