Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: for the plan.

Jump to: navigation, search

EMF Compare/New and Noteworthy/3.0.0

User experience overhaul

The EMF Compare Graphical User Interface (GUI) has been rethought in order to make the workflow easier for the user and reduce the possible confusion induced by the action placements.

Action placement

The first visible change is that we moved the "merge" actions from the bottom pane to the very top of the comparison editor. These actions react to and operate on selections in the top panel (the structural view of the differences), which was hard to understand when they were located just above the bottom panel of the editor (which displays the content of the compared versions). This move can be seen in the following two screenshots.

EMF Compare 2.1.0 EMF Compare 3.0.0
EMF Compare 2.1 UI actions.png EMF Compare 3.0 UI actions.png

Impact preview

Also visible in the above two screenshots is the previsualization of the impacts of a merge operation. All differences linked in one way or another with the currently selected one are highlighted in a different color depending on how they are related. In the above example, we have selected the difference on Magazine that's been made on the right side : we added Periodical as a super-type. This conflict with the removal of Periodical from the left side, highlighted in a light-red color, and depends on the fact we actually added the Magazine Class in the right side before we could add a super-type to it (highlighted in a light-green color).

This previsualization depends on the direction we are expecting to merge the difference, visible as the leftmost button in the editor's toolbar :

EMF Compare 3.0 UI merge direction.png

For example, if we are going to merge the change to pages (we added the feature pages inside a new Class Magazine on the left side), we can actually do two actions on it. We can either copy the change from the left side to the right, thus adding the pages feature to the right version, or copy it from the right to the left, thus reverting the difference in the left model, deleting the pages feature from it. Both actions have consequences, but not the same in both directions.

If we copy from the left to the right side, what we want is to "add the pages feature to the Magazine class in the right version". However, Magazine is itself a new class, so adding a feature to it requires us to also merge the addition of the class. Thus, the addition of Magazine gets highlighted when we select this direction for previsualization.

EMF Compare 3.0 UI impact LtR.png

On the contrary, if we decide that we want to copy this change from the right to the left, we actually want to reject the addition of the pages features. This makes the change of this feature's type to "EInt" obsolete as well since it was a requirement for it, much the same as the addition of the class Magazine is a requirement for the addition of the pages feature.

EMF Compare 3.0 UI impact RtL.png

Progress feedback

We previously used a background job while executing the comparison, leaving the user with an empty comparison editor until we could display the final result. Though we still won't display a partial comparison during its computation, visual feedback is now provided to the user as the comparison progresses from within the comparison editor itself.

EMF Compare 3.0 UI progress.png

Textual fallback

A comparison failure would previously be unrecoverable, leaving the user with an unhelpful "error" editor and the errors logged in the Eclipse error log. A comparison failure will now be displayed within the editor itself, along with a textual comparison of the files.

EMF Compare 3.0 UI fallback.png


The number of extension points available to customize the different aspects of EMF Compare has been greatly expanded, allowing users to override or customize all of the comparison phases as well as the user interface itself, contributing new filters, new grouping options, changing the displayed labels for the differences, or changing the displayed items altogether.

Back to the top