Skip to content

Package: ECPLabelProvider

ECPLabelProvider

nameinstructionbranchcomplexitylinemethod
ECPLabelProvider(ECPModelContextProvider)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
fireEvent(LabelProviderChangedEvent)
M: 16 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 6 C: 0
0%
M: 1 C: 0
0%
getImage(Object)
M: 30 C: 0
0%
M: 8 C: 0
0%
M: 5 C: 0
0%
M: 10 C: 0
0%
M: 1 C: 0
0%
getModelContext(Object)
M: 10 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
getModelContextProvider()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getText(Object)
M: 18 C: 0
0%
M: 4 C: 0
0%
M: 3 C: 0
0%
M: 6 C: 0
0%
M: 1 C: 0
0%
getUIProvider(Object)
M: 18 C: 0
0%
M: 4 C: 0
0%
M: 3 C: 0
0%
M: 6 C: 0
0%
M: 1 C: 0
0%
setModelContextProvider(ECPModelContextProvider)
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /********************************************************************************
2: * Copyright (c) 2011 Eike Stepper (Berlin, Germany) and others.
3: *
4: * All rights reserved. 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: * Eike Stepper - initial API and implementation
13: */
14: package org.eclipse.emf.ecp.internal.ui.model;
15:
16: import org.eclipse.emf.ecp.core.util.ECPContainer;
17: import org.eclipse.emf.ecp.core.util.ECPModelContextProvider;
18: import org.eclipse.emf.ecp.internal.ui.Activator;
19: import org.eclipse.emf.ecp.internal.ui.model.TreeContentProvider.ErrorElement;
20: import org.eclipse.emf.ecp.internal.ui.model.TreeContentProvider.SlowElement;
21: import org.eclipse.emf.ecp.spi.ui.UIProvider;
22: import org.eclipse.emf.ecp.spi.ui.UIProviderRegistry;
23: import org.eclipse.jface.viewers.LabelProvider;
24: import org.eclipse.jface.viewers.LabelProviderChangedEvent;
25: import org.eclipse.swt.graphics.Image;
26: import org.eclipse.swt.widgets.Display;
27:
28: /**
29: * @author Eike Stepper
30: */
31: public class ECPLabelProvider extends LabelProvider implements ECPModelContextProvider, IECPLabelProvider {
32:         private ECPModelContextProvider modelContextProvider;
33:
34:         public ECPLabelProvider(ECPModelContextProvider modelContextProvider) {
35:                 this.modelContextProvider = modelContextProvider;
36:         }
37:
38:         @Override
39:         public String getText(Object element) {
40:                 final UIProvider uiProvider = getUIProvider(element);
41:•                if (uiProvider != null) {
42:                         final String text = uiProvider.getText(element);
43:•                        if (text != null) {
44:                                 return text;
45:                         }
46:                 }
47:
48:                 return super.getText(element);
49:         }
50:
51:         @Override
52:         public Image getImage(Object element) {
53:•                if (element instanceof SlowElement) {
54:                         return Activator.getImage("icons/pending.gif"); //$NON-NLS-1$
55:                 }
56:
57:•                if (element instanceof ErrorElement) {
58:                         return Activator.getImage("icons/error.gif"); //$NON-NLS-1$
59:                 }
60:
61:                 final UIProvider uiProvider = getUIProvider(element);
62:•                if (uiProvider != null) {
63:                         final Image image = uiProvider.getImage(element);
64:•                        if (image != null) {
65:                                 return image;
66:                         }
67:                 }
68:
69:                 return super.getImage(element);
70:         }
71:
72:         public UIProvider getUIProvider(Object element) {
73:                 UIProvider uiProvider = UIProviderRegistry.INSTANCE.getUIProvider(element);
74:•                if (uiProvider == null) {
75:                         final ECPContainer modelContext = getModelContext(element);
76:•                        if (modelContext != null) {
77:                                 uiProvider = UIProviderRegistry.INSTANCE.getUIProvider(modelContext);
78:                         }
79:                 }
80:
81:                 return uiProvider;
82:         }
83:
84:         /** {@inheritDoc} */
85:         @Override
86:         public ECPContainer getModelContext(Object element) {
87:•                if (modelContextProvider != null) {
88:                         return modelContextProvider.getModelContext(element);
89:                 }
90:
91:                 return null;
92:         }
93:
94:         protected final void fireEvent(final LabelProviderChangedEvent event) {
95:                 final Display display = Display.getCurrent();
96:•                if (display == null) {
97:                         Display.getDefault().asyncExec(new Runnable() {
98:                                 @Override
99:                                 public void run() {
100:                                         fireLabelProviderChanged(event);
101:                                 }
102:                         });
103:                 } else {
104:                         fireLabelProviderChanged(event);
105:                 }
106:         }
107:
108:         /**
109:          * {@inheritDoc}
110:          *
111:          * @see org.eclipse.emf.ecp.internal.ui.model.IECPLabelProvider#getModelContextProvider()
112:          */
113:         @Override
114:         public ECPModelContextProvider getModelContextProvider() {
115:                 return modelContextProvider;
116:         }
117:
118:         /**
119:          * {@inheritDoc}
120:          *
121:          * @see org.eclipse.emf.ecp.internal.ui.model.IECPLabelProvider#setModelContextProvider(org.eclipse.emf.ecp.core.util.ECPModelContextProvider)
122:          */
123:         @Override
124:         public void setModelContextProvider(ECPModelContextProvider modelContextProvider) {
125:                 this.modelContextProvider = modelContextProvider;
126:         }
127: }