<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_75) on Mon Jun 08 05:48:12 EDT 2015 -->
<title>Uses of Interface org.eclipse.emf.compare.rcp.ui.internal.configuration.IEMFComparatorChange (EMF Compare API Specification)</title>
<meta name="date" content="2015-06-08">
<link rel="stylesheet" type="text/css" href="../../../../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Uses of Interface org.eclipse.emf.compare.rcp.ui.internal.configuration.IEMFComparatorChange (EMF Compare API Specification)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../../../../../../../../../org/eclipse/emf/compare/rcp/ui/internal/configuration/IEMFComparatorChange.html" title="interface in org.eclipse.emf.compare.rcp.ui.internal.configuration">Class</a></li>
<li class="navBarCell1Rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><span style='font-size:small'><b>EMF Compare</b><br>3.2.0.201506080946</span></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/eclipse/emf/compare/rcp/ui/internal/configuration/class-use/IEMFComparatorChange.html" target="_top">Frames</a></li>
<li><a href="IEMFComparatorChange.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Interface org.eclipse.emf.compare.rcp.ui.internal.configuration.IEMFComparatorChange" class="title">Uses of Interface<br>org.eclipse.emf.compare.rcp.ui.internal.configuration.IEMFComparatorChange</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
<caption><span>Packages that use <a href="../../../../../../../../../org/eclipse/emf/compare/rcp/ui/internal/configuration/IEMFComparatorChange.html" title="interface in org.eclipse.emf.compare.rcp.ui.internal.configuration">IEMFComparatorChange</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="#org.eclipse.emf.compare.rcp.ui.internal.configuration.impl">org.eclipse.emf.compare.rcp.ui.internal.configuration.impl</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<ul class="blockList">
<li class="blockList"><a name="org.eclipse.emf.compare.rcp.ui.internal.configuration.impl">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../../../../../org/eclipse/emf/compare/rcp/ui/internal/configuration/IEMFComparatorChange.html" title="interface in org.eclipse.emf.compare.rcp.ui.internal.configuration">IEMFComparatorChange</a> in <a href="../../../../../../../../../org/eclipse/emf/compare/rcp/ui/internal/configuration/impl/package-summary.html">org.eclipse.emf.compare.rcp.ui.internal.configuration.impl</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../../../../org/eclipse/emf/compare/rcp/ui/internal/configuration/impl/package-summary.html">org.eclipse.emf.compare.rcp.ui.internal.configuration.impl</a> that implement <a href="../../../../../../../../../org/eclipse/emf/compare/rcp/ui/internal/configuration/IEMFComparatorChange.html" title="interface in org.eclipse.emf.compare.rcp.ui.internal.configuration">IEMFComparatorChange</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../../../org/eclipse/emf/compare/rcp/ui/internal/configuration/impl/EMFComparatorChange.html" title="class in org.eclipse.emf.compare.rcp.ui.internal.configuration.impl">EMFComparatorChange</a></strong></code>&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="../package-summary.html">Package</a></li>
<li><a href="../../../../../../../../../org/eclipse/emf/compare/rcp/ui/internal/configuration/IEMFComparatorChange.html" title="interface in org.eclipse.emf.compare.rcp.ui.internal.configuration">Class</a></li>
<li class="navBarCell1Rev">Use</li>
<li><a href="../package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><span style='font-size:small'><b>EMF Compare</b><br>3.2.0.201506080946</span></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/eclipse/emf/compare/rcp/ui/internal/configuration/class-use/IEMFComparatorChange.html" target="_top">Frames</a></li>
<li><a href="IEMFComparatorChange.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><br><span style='font-size:small;float:right'>Copyright (c) 2006, 2014 Obeo and others. All rights reserved.</span></small></p>
</body>
</html>
