Skip to content

Package: CustomControlStub3$LeagueChangeListener

CustomControlStub3$LeagueChangeListener

nameinstructionbranchcomplexitylinemethod
CustomControlStub3.LeagueChangeListener(CustomControlStub3)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
notifyChanged()
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2013 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.custom.ui.swt.test;
15:
16: import java.util.LinkedHashSet;
17: import java.util.Set;
18:
19: import org.eclipse.core.databinding.property.value.IValueProperty;
20: import org.eclipse.emf.databinding.EMFProperties;
21: import org.eclipse.emf.ecp.view.spi.custom.model.ECPCustomControlChangeListener;
22: import org.eclipse.emf.ecp.view.spi.custom.model.ECPHardcodedReferences;
23: import org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT;
24: import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexDomainModelReference;
25: import org.eclipse.emf.ecp.view.spi.indexdmr.model.VIndexdmrFactory;
26: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
27: import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
28: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
29: import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
30: import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
31: import org.eclipse.emf.emfstore.bowling.BowlingPackage;
32: import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
33: import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
34: import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
35: import org.eclipse.jface.layout.TableColumnLayout;
36: import org.eclipse.jface.viewers.TableViewer;
37: import org.eclipse.swt.SWT;
38: import org.eclipse.swt.layout.GridData;
39: import org.eclipse.swt.widgets.Composite;
40: import org.eclipse.swt.widgets.Control;
41: import org.eclipse.swt.widgets.Label;
42:
43: /**
44: * @author jfaltermeier
45: *
46: */
47: public class CustomControlStub3 extends ECPAbstractCustomControlSWT implements ECPHardcodedReferences {
48:         // private VFeaturePathDomainModelReference playersReference;
49:         // private VFeaturePathDomainModelReference nameReference;
50:         // private VFeaturePathDomainModelReference dateReference;
51:         private final Set<VDomainModelReference> features = new LinkedHashSet<VDomainModelReference>();
52:
53:         public static final String CHANGE_NOTICED = "CHANGE!";
54:
55:         private Label label;
56:
57:         public CustomControlStub3() {
58:                 super();
59:         }
60:
61:         /**
62:          * {@inheritDoc}
63:          *
64:          * @see org.eclipse.emf.ecp.view.spi.custom.model.ECPHardcodedReferences#getNeededDomainModelReferences()
65:          */
66:         @Override
67:         public Set<VDomainModelReference> getNeededDomainModelReferences() {
68:                 if (features.isEmpty()) {
69:                         final VFeaturePathDomainModelReference playersReference = VViewFactory.eINSTANCE
70:                                 .createFeaturePathDomainModelReference();
71:                         playersReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getLeague_Players());
72:
73:                         final VIndexDomainModelReference nameReference = VIndexdmrFactory.eINSTANCE
74:                                 .createIndexDomainModelReference();
75:                         nameReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_Name());
76:                         nameReference.setIndex(0);
77:                         nameReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getLeague_Players());
78:
79:                         final VIndexDomainModelReference dateReference = VIndexdmrFactory.eINSTANCE
80:                                 .createIndexDomainModelReference();
81:                         dateReference.setDomainModelEFeature(BowlingPackage.eINSTANCE.getPlayer_DateOfBirth());
82:                         nameReference.setIndex(0);
83:                         dateReference.getDomainModelEReferencePath().add(BowlingPackage.eINSTANCE.getLeague_Players());
84:
85:                         features.add(playersReference);
86:                         features.add(nameReference);
87:                         features.add(dateReference);
88:                 }
89:                 return features;
90:         }
91:
92:         /**
93:          * {@inheritDoc}
94:          *
95:          * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#getGridDescription()
96:          */
97:         @Override
98:         public SWTGridDescription getGridDescription() {
99:                 // TODO Auto-generated method stub
100:                 return GridDescriptionFactory.INSTANCE.createSimpleGrid(1, 2, null);
101:         }
102:
103:         /**
104:          * {@inheritDoc}
105:          *
106:          * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
107:          * org.eclipse.swt.widgets.Composite)
108:          */
109:         @Override
110:         public Control renderControl(SWTGridCell cell, Composite parent) throws NoRendererFoundException,
111:                 NoPropertyDescriptorFoundExeption {
112:                 if (cell.getColumn() == 0) {
113:                         label = new Label(parent, SWT.NONE);
114:                         label.setText("Players: ");
115:                         return label;
116:                 }
117:                 if (cell.getColumn() == 1) {
118:                         final Composite tableParent = new Composite(parent, SWT.NONE);
119:
120:                         final Composite tableComposite = new Composite(tableParent, SWT.NONE);
121:                         final TableViewer tableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.FULL_SELECTION
122:                                 | SWT.V_SCROLL);
123:                         tableViewer.getControl().setLayoutData(new GridData());
124:                         tableComposite.setLayout(new TableColumnLayout());
125:
126:                         final IValueProperty[] valueProperties = EMFProperties.values(BowlingPackage.Literals.PLAYER__NAME,
127:                                 BowlingPackage.Literals.PLAYER__DATE_OF_BIRTH);
128:
129:                         createViewerBinding(getResolvedDomainModelReference(BowlingPackage.eINSTANCE.getLeague_Players()),
130:                                 tableViewer,
131:                                 valueProperties);
132:
133:                         registerChangeListener(getResolvedDomainModelReference(BowlingPackage.eINSTANCE.getLeague_Players()),
134:                                 new LeagueChangeListener());
135:                         return tableParent;
136:
137:                 }
138:                 return null;
139:         }
140:
141:         /**
142:          * {@inheritDoc}
143:          *
144:          * @see org.eclipse.emf.ecp.view.spi.custom.ui.ECPAbstractCustomControl#disposeCustomControl()
145:          */
146:         @Override
147:         protected void disposeCustomControl() {
148:
149:         }
150:
151:         public class LeagueChangeListener implements ECPCustomControlChangeListener {
152:                 /**
153:                  * {@inheritDoc}
154:                  *
155:                  * @see org.eclipse.emf.ecp.view.spi.custom.model.ECPCustomControlChangeListener#notifyChanged()
156:                  */
157:                 @Override
158:                 public void notifyChanged() {
159:                         label.setText(CHANGE_NOTICED);
160:                 }
161:
162:         }
163:
164:         /**
165:          * {@inheritDoc}
166:          *
167:          * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#handleContentValidation()
168:          */
169:         @Override
170:         protected void handleContentValidation() {
171:                 // TODO Auto-generated method stub
172:
173:         }
174:
175:         /**
176:          * {@inheritDoc}
177:          *
178:          * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#setEditable(boolean)
179:          */
180:         @Override
181:         protected boolean setEditable(boolean editable) {
182:                 label.setEnabled(editable);
183:                 return super.setEditable(editable);
184:         }
185:
186: }