V tomto oddílu naleznete další informace o pokročilém rozhraní API v porovnávacím modulu plug-in.
Porovnávací operace musí být implementována jako podtřída CompareEditorInput. CompareEditorInput spouští (potenciálně dlouhou) porovnávací operaci v rámci obslužného prvku monitorování průběhu, vytváří uživatelské rozhraní pro práci s výsledky porovnávání, v případě slučování nalézá výsledky s neaktualizovaným stavem a ukládá případné změny, které se během slučování vyskytly.
CompareUI definuje vstupní bod pro inicializaci konfigurovatelné porovnávací operace na libovolných prostředcích. Výsledek porovnání je otevřen v editoru porovnání, ve kterém lze procházet a editovat podrobnosti v dynamicky zvolených strukturově a obsahově orientovaných prohlížečích.
NavigationAction se používá pro navigaci (kroky) mezi jednotlivými rozdíly CompareEditorInput.
CompareConfiguration konfiguruje nejrůznější aspekty uživatelského rozhraní prohlížečů porovnání/sloučení, jako například označení a obrázky titulku nebo skutečnost, zda je strana prohlížeče sloučení upravitelná. Při vytvoření je předán CompareEditorInput.
Při implementaci hierarchické porovnávací operace jako podtřídy CompareEditorInput musí klienti poskytnout strom objektů, kde každý uzel implementuje rozhraní
IStructureComparator.
Toto rozhraní je používáno hierarchickým rozlišovacím prostředkem
(Rozlišovač) k procházení stromu.
Navíc každý list stromu musí implementovat rozhraní
IStreamContentAccessor, aby bylo možné poskytnout rozlišovacímu prostředku přístup k obsahu jeho proudu.
BufferedContent poskytuje výchozí implementaci pro rozhraní IStreamContentAccessor a IContentChangeNotifier. Jeho podtřída ResourceNode přidává implementaci pro rozhraní IStructureComparator a ITypedElement založenou na prostředcích pracovní plochy platformy (IResource). Může být použit bez úprav jako vstup pro rozlišovací prostředek.
Chcete-li použít porovnávací funkčnost mimo standardní editory porovnání (například v dialogovém okně nebo v průvodci), porovnávací modul plug-in poskytuje dodatečné nápovědné třídy.
CompareViewerPane je vhodná třída poskytující označení a lokální panel nástrojů pro prohlížeč porovnání (nebo jakoukoli jinou podtřídu prohlížeče JFace). Její abstraktní podtřída CompareViewerSwitchingPane podporuje dynamické přepínání prohlížečů, tzn. prohlížeč nainstalovaný v panelu je dynamicky určován vstupním objektem panelu.
EditionSelectionDialog je jednoduché dialogové okno výběru, ve kterém může být jeden vstupní prvek porovnán oproti seznamu historických variant (vydání) stejného vstupního prvku. Tento dialog se používá pro implementaci funkcí jako například "Nahradit lokální historií" na prostředky pracovní plochy.
Navíc je možné určit pododdíl vstupního prvku (např. metodu ve zdrojovém souboru Java) prostřednictvím cesty. V takovém případě dialogové okno porovnává pouze pododdíl (uvedený v cestě) s odpovídající pododdílu v seznamu vydání. Tuto funkci lze použít k implementaci "Nahradit prvkem z lokální historie" pro prvky Java.
EditionSelectionDialog vyžaduje, aby vydání implementovala rozhraní IStreamContentAccessor a IModificationDate. HistoryItem je vhodná třída implementující tato rozhraní pro objekty IFileState.