Community
Participate
Working Groups
The cascading filter is the main source of headaches on the current version of EMF Compare for multiple reasons: - It influences the mergers. I believe an UI artefact, meant to alter the way the users "views" the model should never have had any business changing how the "core" merges the differences. - The filters API is overly complicated. A "filter" should only be active when it's on, never when it's off. Having two predicates was a conception error imo. - It is kind of unpredictable for the end user. The "cascading differences" are differences located under add/delete of elements. However, these differences can very well appear differently in the structure pane than "under" their parents (conflicts, for example). Cascading pseudo conflicts will thus be hidden away by this filter even tho they don't appear under their parent diffs. These points have made it so that most of the maintenance cost of the EMF Compare UI stems from this filter. I believe this filter should be removed as a whole and its target function (hiding away sub-differences to simplify the view for the user) moved to a modeled relation between differences. There is currently no direct link between "ClassA has been added" (classDiff) and "ClassA.reference1 has been added" (refDiff) except the fact that refDiff requires ClassDiff. We could either create a new link to represent sub-differences... or use the already existing "refinment" reference that more or less fits the bill.