Jump to: navigation, search

EMF Compare/Filtering facility

< EMF Compare
Revision as of 08:18, 21 February 2011 by Mikael.barbero.obeo.fr (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The capability to group differences will be provided by a menu next to the save diff model button. This button will be same for Grouping and Filtering. The tooltip will be "Group/Filter difference elements"


The provided menu will be organized as follow: Filter out Structural Differences Hide Addition Hide Removal Hide Modification Hide Move Each menu entry will be a checkbox button (similar to the ones in the screenshot below), meaning that more than one filter can be selected to customize the content provider of the Diff tree editor.

An API and an extension point will be provided to contribute new filtering facilities. A new filter will have to implement an interface IDifferenceFilter : public interface IDifferenceFilter { boolean hide(DiffElement d); } The corresponding extension point will be a simple one with two attributes : the name of the filter (string type) and the implementation class (java type). The extension point will be implemented by the classical tryptic : "ExtensionDescriptor" (to support lazy loading) "ExtensionRegistry" will be the bridge between the plugin registry and emfcompare "ExtensionRegistryListener" to listen installation and de-installation of contributing plugins. The IDifferenceFilter implementations will be used by the content providers of the diff tree editor to check if the element should be displayed or not. However, the children of hidden elements MAY be displayed if they are not said to be hidden by the filters.

Preference page for filter setting configuration