Tässä osiossa on lisätietoja vertailulisäosan edistyneestä API-aliittymästä.
Vertailutoiminto pitää toteuttaa CompareEditorInput-luokan aliluokkana. CompareEditorInput-luokka ajaa (mahdollisesti pitkänkin) vertailutoiminnon tilannevalvontaohjelmassa, luo käyttöliittymän vertailun tuloksiin siirtymistä varten, tarkastaa vertailun tallentamattomat tulokset, jos yhdistäminen on tapahtunut, ja tallentaa yhdistämisessä tapahtuneet muutokset.
CompareUI -luokka määrittää tulokohdan, jotta se voi käynnistää määritettävän vertailutoiminnon sattumanvaraisilla resursseilla. Vertailun tulos avautuu vertailun muokkausohjelmaan, jossa sen yksityiskohtia voi selailla ja muokata dynaamisesti valikoituneessa rakenteessa ja sisällön katseluohjelmissa.
NavigationAction-luokkaa käytetään siirtymään (askeltamaan) luokassa CompareEditorInput ilmenevien yksittäisten erojen ohi.
CompareConfiguration-objekti määrittää erilaisia käyttöliittymän vertailun ja yhdistämisen katseluohjelmien aspekteja, kuten otsikkojen nimiöitä ja kuvia, tai sen, onko yhdistämisen katseluohjelma editoitavissa. Se siirretään luonnissa luokkaan CompareEditorInput.
Kun hierarkkista vertailutoimintoa toteutetaan
luokan CompareEditorInput aliluokkana,
työasemilla täytyy olla objektien alirakenne, jossa kukin solmu toteuttaa
rajapintaa IStructureComparator.
Hierarkkinen vertailuperusosa
(Erojen
vertailutoiminto) käyttää tätä rajapintaa rakenteessa kulkemiseen.
Rakenteen jokaisen pääteobjektin pitää lisäksi toteuttaa rajapinta
IStreamContentAccessor, jotta
vertailuperusosalla on pääsy rakenteen tietovirran sisältöön.
BufferedContent on oletustoteutus rajapinnoille IStreamContentAccessor ja IContentChangeNotifier. Sen aliluokka ResourceNode toteuttaa lisäksi rajapinnat IStructureComparator ja ITypedElement työympäristön resurssien (IResource) pohjalta. Sitä voi käyttää sellaisenaan vertailuperusosan syötteenä.
Jos vertailutoimintoa haluaa käyttää tavallisten vertailun muokkausohjelmien ulkopuolella (esimerkiksi valintaikkunassa tai ohjatuissa toiminnoissa), vertailulisäosan ylimääräiset luokat ovat avuksi.
CompareViewerPane-luokka tuo vertailun muokkausohjelman käyttöön nimiön ja paikallisen työkalurivin (samoin kuin minkä tahansa JFace-katseluohjelman aliluokan käyttöön). Sen abstrakti aliluokka CompareViewerSwitchingPane tukee dynaamista katseluohjelman vaihtoa. Dynaaminen katseluohjelman vaihto tarkoittaa sitä, että syöteolio määrittää dynaamisesti ruutuun asennettua katseluohjelmaa.
EditionSelectionDialog on yksinkertainen valintaikkuna, jossa yhtä syöte-elementtiä voidaan verrata saman syöte-elementin aiempiin muunnoksiin (versioihin). Tämä valintaikkuna toteuttaa työtilan resursseilla toimintoja, kuten "Korvaa paikallisilla historiatiedoilla.
Lisäksi on mahdollista määrittää syöte-elementin osa (esimerkiksi Java-lähdetiedoston metodi) polun avulla. Tässä tapauksessa valintaikkunassa vertaillaan vain polun määrittämää osaa versioluettelon vastaavan osan kanssa. Näin voidaan toteuttaa Java-elementeille toiminto "Korvaa paikallisten historiatietojen elementillä.
EditionSelectionDialog-luokka edellyttää, että versiot toteuttavat rajapinnat IStreamContentAccessor ja IModificationDate. Luokka HistoryItem toteuttaa nämä rajapinnat IFileState-objekteja varten.