blob: fb0ad6215e829e8254de443b21727ec47814eec4 (plain
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="IBM">
<meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
Provides support for performing structural and textual
compare operations on arbitrary data and displaying the results.
The class <tt>CompareUI</tt> defines the entry point to initiate a configurable
compare operation on arbitrary resources. The result of the compare is
opened into a compare editor where the details can be browsed and edited
in dynamically selected structure and content viewers.
<p>A compare operation must be implemented as a subclass of <tt>CompareEditorInput</tt>.
A <tt>CompareEditorInput</tt> runs a (potentially lengthy) compare operation
under progress monitor control, creates a UI for drilling-down into the
compare results, tracks the dirty state of the result in case of merge,
and saves any changes that occured during a merge.
<p>An instance of <tt>CompareConfiguration</tt> configures various UI aspects
of compare/merge viewers like title labels and images, or whether a side
of a merge viewer is editable. It is passed to the <tt>CompareEditorInput</tt>
<p>When implementing a compare operation clients have to provide a tree
of <tt>IStructureComparator</tt> (see package org.eclipse.compare.structuremergeviewer)
and <tt>IStreamContentAccessor</tt> that can be passed as the input to
the differencing engine (org.eclipse.compare.structuremergeviewer.Differencer).
A <tt>ResourceNode</tt> is a convenience class that implements both interfaces
for Eclipse workbench resources (org.eclipse.core.resources.IResource).
It can be used without modification as the input to the differencing engine.
<p>The <tt>EditionSelectionDialog</tt> is a simple selection dialog where
one input element can be compared against a list of historic variants (<i>editions</i>)
of the same input element. The dialog can be used to implement functions
like <i>"Replace with Version"</i> or
<br><i>"Replace with Edition"</i> on workbench resources.
<p>In addition it is possible to specify a subsection of the input element
(e.g. a method in a Java source file) by means of a <i>path</i>. In this
case the dialog compares only the subsection (as specified by the path)
with the corresponding subsection in the list of editions. This functionality
can be used to implement <i>"Replace with Method Edition"</i> for the Java
<p>The <tt>EditionSelectionDialog</tt> requires that the editions implement
the <tt>IStreamContentAccessor</tt> and <tt>IModificationDate</tt> interfaces.
The <tt>HistoryItem</tt> is a convenience class that implements these interfaces
for <tt>IFileState</tt> objects.