Skip to content

Package: EMFFormsViewContext

EMFFormsViewContext

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2015 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: * Eugen Neufeld - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emfforms.spi.core.services.view;
15:
16: import org.eclipse.emf.ecore.EObject;
17: import org.eclipse.emf.ecp.view.spi.model.ModelChangeListener;
18: import org.eclipse.emf.ecp.view.spi.model.VElement;
19:
20: /**
21: * The EMFFormsViewContext provides easy access to commonly used methods during the rendering. It allows to retrieve the
22: * view model as well as the domain model. Furthermore it is possible to register as a listener on the view model as
23: * well as on the domain model.
24: *
25: * @author Eugen Neufeld
26: * @since 1.8
27: */
28: public interface EMFFormsViewContext {
29:
30:         /**
31:          * Gets the view model.
32:          *
33:          * @return the view model
34:          */
35:         VElement getViewModel();
36:
37:         /**
38:          * Register view change listener.
39:          *
40:          * @param modelChangeListener the model change listener
41:          */
42:         void registerViewChangeListener(ModelChangeListener modelChangeListener);
43:
44:         /**
45:          * Unregister view change listener.
46:          *
47:          * @param modelChangeListener the model change listener
48:          */
49:         void unregisterViewChangeListener(ModelChangeListener modelChangeListener);
50:
51:         /**
52:          * Gets the domain model.
53:          *
54:          * @return the domain model
55:          */
56:         EObject getDomainModel();
57:
58:         /**
59:          * Register domain change listener.
60:          *
61:          * @param modelChangeListener the model change listener
62:          */
63:         void registerDomainChangeListener(ModelChangeListener modelChangeListener);
64:
65:         /**
66:          * Unregister domain change listener.
67:          *
68:          * @param modelChangeListener the model change listener
69:          */
70:         void unregisterDomainChangeListener(ModelChangeListener modelChangeListener);
71:
72:         /**
73:          * Register an {@link EMFFormsContextListener}.
74:          *
75:          * @param contextListener the {@link EMFFormsContextListener} to register
76:          */
77:         void registerEMFFormsContextListener(EMFFormsContextListener contextListener);
78:
79:         /**
80:          * Unregister an {@link EMFFormsContextListener}.
81:          *
82:          * @param contextListener the {@link EMFFormsContextListener} to unregister
83:          */
84:         void unregisterEMFFormsContextListener(EMFFormsContextListener contextListener);
85:
86:         /**
87:          * Retrieve a service of type {@code serviceType}.
88:          *
89:          * @param <T> the type of the desired service
90:          *
91:          * @param serviceType the type of the service to be retrieved
92:          * @return the service
93:          */
94:         <T> T getService(Class<T> serviceType);
95:
96:         /**
97:          * Changes the domain model of this view context to the given {@link EObject}.
98:          *
99:          * @see #getDomainModel()
100:          * @param newDomainModel The new domain model
101:          * @since 1.9
102:          */
103:         void changeDomainModel(EObject newDomainModel);
104:
105:         /**
106:          * Register a {@link RootDomainModelChangeListener}.
107:          *
108:          * @param rootDomainModelChangeListener The {@link RootDomainModelChangeListener} to register
109:          * @since 1.9
110:          */
111:         void registerRootDomainModelChangeListener(RootDomainModelChangeListener rootDomainModelChangeListener);
112:
113:         /**
114:          * Unregister a {@link RootDomainModelChangeListener}.
115:          *
116:          * @param rootDomainModelChangeListener The {@link RootDomainModelChangeListener} to unregister
117:          * @since 1.9
118:          */
119:         void unregisterRootDomainModelChangeListener(RootDomainModelChangeListener rootDomainModelChangeListener);
120: }