Skip to content

Package: TableControlDetailPanelRCPRenderer

TableControlDetailPanelRCPRenderer

nameinstructionbranchcomplexitylinemethod
TableControlDetailPanelRCPRenderer(VTableControl, ViewModelContext, ReportService, EMFFormsDatabindingEMF, EMFFormsLabelProvider, VTViewTemplateProvider, ImageRegistryService, EMFFormsEditSupport)
M: 11 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 10 C: 0
0%
M: 1 C: 0
0%
renderTableControl(SWTGridCell, Composite)
M: 48 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 11 C: 0
0%
M: 1 C: 0
0%
rootDomainModelChanged()
M: 16 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2016 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: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.spi.table.ui.rcp;
15:
16: import javax.inject.Inject;
17:
18: import org.eclipse.emf.ecore.EStructuralFeature.Setting;
19: import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
20: import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
21: import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
22: import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
23: import org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailPanelRenderer;
24: import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
25: import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
26: import org.eclipse.emf.edit.domain.EditingDomain;
27: import org.eclipse.emfforms.spi.common.report.AbstractReport;
28: import org.eclipse.emfforms.spi.common.report.ReportService;
29: import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
30: import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
31: import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
32: import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
33: import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
34: import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
35: import org.eclipse.emfforms.spi.swt.table.AbstractTableViewerComposite;
36: import org.eclipse.jface.viewers.AbstractTableViewer;
37: import org.eclipse.swt.widgets.Composite;
38: import org.eclipse.swt.widgets.Control;
39:
40: /**
41: * {@link TableControlDetailPanelRenderer} which also supports cut/copy/paste.
42: *
43: * @author Johannes Faltermeier
44: *
45: */
46: public class TableControlDetailPanelRCPRenderer extends TableControlDetailPanelRenderer {
47:
48:         private CutCopyPasteListener cutCopyPasteListener;
49:
50:         /**
51:          * Default constructor.
52:          *
53:          * @param vElement the view model element to be rendered
54:          * @param viewContext the view context
55:          * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
56:          * @param emfFormsLabelProvider The {@link EMFFormsLabelProvider}
57:          * @param reportService The {@link ReportService}
58:          * @param vtViewTemplateProvider The {@link VTViewTemplateProvider}
59:          * @param imageRegistryService The {@link ImageRegistryService}
60:          * @param emfFormsEditSupport The {@link EMFFormsEditSupport}
61:          * @since 1.8
62:          */
63:         @Inject
64:         // CHECKSTYLE.OFF: ParameterNumber
65:         public TableControlDetailPanelRCPRenderer(
66:                 VTableControl vElement,
67:                 ViewModelContext viewContext,
68:                 ReportService reportService,
69:                 EMFFormsDatabindingEMF emfFormsDatabinding,
70:                 EMFFormsLabelProvider emfFormsLabelProvider,
71:                 VTViewTemplateProvider vtViewTemplateProvider,
72:                 ImageRegistryService imageRegistryService,
73:                 EMFFormsEditSupport emfFormsEditSupport) {
74:                 // CHECKSTYLE.ON: ParameterNumber
75:                 super(
76:                         vElement,
77:                         viewContext,
78:                         reportService,
79:                         emfFormsDatabinding,
80:                         emfFormsLabelProvider,
81:                         vtViewTemplateProvider,
82:                         imageRegistryService,
83:                         emfFormsEditSupport);
84:         }
85:
86:         @Override
87:         protected Control renderTableControl(SWTGridCell gridCell, Composite parent)
88:                 throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
89:                 final Control control = super.renderTableControl(gridCell, parent);
90:•                if (AbstractTableViewerComposite.class.isInstance(control)) {
91:                         try {
92:                                 final AbstractTableViewer tableViewer = AbstractTableViewerComposite.class.cast(control)
93:                                         .getTableViewer();
94:                                 final EditingDomain editingDomain = getEditingDomain(getViewModelContext().getDomainModel());
95:                                 final Setting setting = getEMFFormsDatabinding().getSetting(getDMRToMultiReference(),
96:                                         getViewModelContext().getDomainModel());
97:                                 cutCopyPasteListener = TableControlRCPRenderer.enableCutCopyPaste(tableViewer, editingDomain, setting);
98:                         } catch (final DatabindingFailedException ex) {
99:                                 getReportService().report(new AbstractReport(ex, "Enabling Cut Copy Paste failed")); //$NON-NLS-1$
100:                         }
101:                 }
102:                 return control;
103:         }
104:
105:         @Override
106:         protected void rootDomainModelChanged() throws DatabindingFailedException {
107:                 super.rootDomainModelChanged();
108:                 final Setting setting = getEMFFormsDatabinding().getSetting(getDMRToMultiReference(),
109:                         getViewModelContext().getDomainModel());
110:                 cutCopyPasteListener.rootDomainModelChanged(setting);
111:         }
112: }