Skip to content

Package: ValidationTreeViewerFactory

ValidationTreeViewerFactory

nameinstructionbranchcomplexitylinemethod
ValidationTreeViewerFactory()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
addDoubleClickListener(TreeViewer)
M: 1 C: 32
97%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
create(Composite)
M: 0 C: 78
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 20
100%
M: 0 C: 1
100%
createValidationViewer(Composite)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
static {...}
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH 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: * Johannes Faltermeier - initial API and implementation
13: * Christian W. Damus - bug 546899
14: *
15: *******************************************************************************/
16:
17: package org.eclipse.emf.ecp.internal.ui.validation;
18:
19: import javax.inject.Inject;
20: import javax.inject.Provider;
21:
22: import org.eclipse.core.runtime.CoreException;
23: import org.eclipse.core.runtime.IConfigurationElement;
24: import org.eclipse.core.runtime.Platform;
25: import org.eclipse.e4.core.di.annotations.Creatable;
26: import org.eclipse.jface.viewers.IDoubleClickListener;
27: import org.eclipse.jface.viewers.TreeViewer;
28: import org.eclipse.swt.SWT;
29: import org.eclipse.swt.widgets.Composite;
30: import org.eclipse.swt.widgets.Tree;
31: import org.eclipse.swt.widgets.TreeColumn;
32:
33: /**
34: * Helper class for creating the tree viewer used for the validation view.
35: *
36: * @author jfaltermeier
37: *
38: */
39: @Creatable
40: public final class ValidationTreeViewerFactory {
41:
42:         private static final ValidationTreeViewerFactory BASIC = new ValidationTreeViewerFactory();
43:
44:         @Inject
45:         private Provider<ValidationContentProvider> contentProviderProvider;
46:
47:         @Inject
48:         private Provider<ValidationLabelProvider> labelProviderProvider;
49:
50:         static {
51:                 BASIC.contentProviderProvider = ValidationContentProvider::new;
52:                 BASIC.labelProviderProvider = ValidationLabelProvider::new;
53:         }
54:
55:         /**
56:          * Initializes me.
57:          */
58:         public ValidationTreeViewerFactory() {
59:                 super();
60:         }
61:
62:         /**
63:          * Creates a {@link TreeViewer} which is able to display validation results from
64:          * {@link org.eclipse.core.runtime.IStatus IStatus} objects.
65:          *
66:          * @param parent the parent of the viewer
67:          * @return the tree viewer
68:          */
69:         public TreeViewer create(Composite parent) {
70:                 final Tree validationTree = new Tree(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
71:                 validationTree.setHeaderVisible(true);
72:                 validationTree.setLinesVisible(true);
73:                 final TreeViewer treeViewer = new TreeViewer(validationTree);
74:
75:                 final TreeColumn messageColumn = new TreeColumn(validationTree, SWT.LEFT);
76:                 messageColumn.setAlignment(SWT.LEFT);
77:                 messageColumn.setText(Messages.ValidationTreeViewerFactory_Description);
78:                 messageColumn.setWidth(600);
79:
80:                 final TreeColumn objectColumn = new TreeColumn(validationTree, SWT.LEFT);
81:                 objectColumn.setAlignment(SWT.LEFT);
82:                 objectColumn.setText(Messages.ValidationTreeViewerFactory_Object);
83:                 objectColumn.setWidth(200);
84:
85:                 final TreeColumn featureColumn = new TreeColumn(validationTree, SWT.LEFT);
86:                 featureColumn.setAlignment(SWT.LEFT);
87:                 featureColumn.setText(Messages.ValidationTreeViewerFactory_Feature);
88:                 featureColumn.setWidth(200);
89:
90:                 treeViewer.setContentProvider(contentProviderProvider.get());
91:                 treeViewer.setLabelProvider(labelProviderProvider.get());
92:                 addDoubleClickListener(treeViewer);
93:                 return treeViewer;
94:         }
95:
96:         /**
97:          * Creates a {@link TreeViewer} which is able to display validation results from
98:          * {@link org.eclipse.core.runtime.IStatus IStatus} objects.
99:          *
100:          * @param parent the parent of the viewer
101:          * @return the tree viewer
102:          */
103:         public static TreeViewer createValidationViewer(Composite parent) {
104:                 return BASIC.create(parent);
105:         }
106:
107:         /**
108:          * @param treeViewer
109:          */
110:         private static void addDoubleClickListener(TreeViewer treeViewer) {
111:                 IConfigurationElement[] doubleClickListener = Platform.getExtensionRegistry().getConfigurationElementsFor(
112:                         "org.eclipse.emf.ecp.ui.validation.doubleClickListener"); //$NON-NLS-1$
113:•                for (final IConfigurationElement element : doubleClickListener) {
114:                         doubleClickListener = null;
115:                         try {
116:                                 final IDoubleClickListener dcl = (IDoubleClickListener) element.createExecutableExtension("class"); //$NON-NLS-1$
117:                                 treeViewer.addDoubleClickListener(dcl);
118:                         } catch (final CoreException e) {
119:                         }
120:                 }
121:         }
122:
123: }