Community
Participate
Working Groups
EMF Forms 1.16 release The TableValidationInitiator presents Diagnostics (validation problems) for the objects in the rows of a table view by proactively creating a child view-model context for every object in the table and letting the problems that each child context would present be aggregated in the corresponding object's row, in the 'validation status' column. This works for applications that only want to show that objects in the table have problems that can also be shown in the detail panel. But other applications need to be able to present problems even if the user cannot fix address them directly in the editor, and still other applications cannot afford the up-front cost of creating the child contexts because it just doesn't scale to the number of objects presented in a table. For these applications, we should add an alternative service that simply aggregates all of the Diagnostics calculated by the Validation Service for each object in the table to present in its row, regardless of any details panel. This addresses both the need to present all validation problems (the Validation Service has them all anyways) and does so without the cost of creating child contexts. This new service should be packaged separately in its own bundle, as the TableValidationInitiator is, and not included in the run-time feature by default, so that developers and/or users can choose which service to install, if any.
New Gerrit change created: https://git.eclipse.org/r/124038
New Gerrit change created: https://git.eclipse.org/r/124105
The idea of the final solution is the following: Instead of using a service which creates a ViewModelContextfor each element in the table we use a less invasive method. The validation process is a two step process. The first step is the actual validation. This is straightforward. The second step is to map the validation results on the actual controls. This is easy for 'normal' controls like strings. For tables we have to decide which settings belong to the table control. This is done by an EMFFormsMappingProvider. The current implementation only adds the setting of the table reference and the settings of the columns. The solution is now to also add all other settings of the entries to the list of settings which belong to the control.
Gerrit change https://git.eclipse.org/r/124105 was merged to [develop]. Commit: http://git.eclipse.org/c/emfclient/org.eclipse.emf.ecp.core.git/commit/?id=f2fad625d28b4c37709c643ae408598b6b15ef7a
New Gerrit change created: https://git.eclipse.org/r/124417
Gerrit change https://git.eclipse.org/r/124417 was merged to [develop]. Commit: http://git.eclipse.org/c/emfclient/org.eclipse.emf.ecp.core.git/commit/?id=27af07caa5e746fa491c9757383dc3a1b5acec75
New Gerrit change created: https://git.eclipse.org/r/126718
Gerrit change https://git.eclipse.org/r/126718 was merged to [develop]. Commit: http://git.eclipse.org/c/emfclient/org.eclipse.emf.ecp.core.git/commit/?id=491218701d2c8242a5434549b6c8b9efd833320b
TEST INFORMATION Summary of the critical part of the change There is now a second plugin which is able to provide the necessary information to show validation messages for tables with detail (org.eclipse.emfforms.core.services.mappingprovider.table.panel). The old plugin org.eclipse.emf.ecp.view.table.validation is not part of the org.eclipse.emf.ecp.view.validation.initial.feature anymore, but can be found on the target update site directly (EMF Forms Table Detail Validation (Legacy)). Potential regressions As we don't create childcontexts anymore, implementations which rely on this may be broken due to missing ViewModelContexts. Affected areas / use cases Validation on tables with detail. Things that shall be tested Validation behavior on tables with detail.
Reopening because commit 49121870 causes the development build including the slow tests to fail. Verified with: https://git.eclipse.org/r/#/c/127220/
New Gerrit change created: https://git.eclipse.org/r/127355
Gerrit change https://git.eclipse.org/r/127355 was merged to [develop]. Commit: http://git.eclipse.org/c/emfclient/org.eclipse.emf.ecp.core.git/commit/?id=47c2af720e95209722b9798c65e6a3c263c8534f
Mass Move due to time constraints