I det här avsnittet finns ytterligare information om avancerad API i insticksprogrammet för jämförelse.
En jämförselsefunktion måste implementeras som en subklass till CompareEditorInput. En CompareEditorInput kör en (potentiellt långvarig) jämförelsefunktion under förloppsövervakning, skapar ett användargränssnitt för detaljgranskning av jämförelseresultaten, spårar osparad status i resultatet i händelse av sammanslagning, och sparar eventuella ändringar som inträffade under en sammanslagning.
CompareUI definierar startpunkten för initiering av en konfigurerbar jämförelsefunktion på godtyckliga resurser. Resultatet för jämförelsen öppnas i en redigerare där datauppgifterna kan granskas och redigeras i dynamiskt vald struktur och visningsprogram för innehåll.
NavigationAction används för att navigera (stega) genom de individuella skillnaderna i en CompareEditorInput.
CompareConfiguration konfigurerar olika användargränssnitt-aspekt för jämförelse-/sammanslagningsvisning som t.ex. titeletiketter och bilder, eller om en sida i visningsprogrammet för sammanslagning ska vara redigerbar. Den skickas till CompareEditorInput när den skapas.
När en hierarkisk jämförelsefunktion implementeras som en subklass av CompareEditorInput,
måste klienter tillhandahålla ett objektträd där varje nod implementerar gränssnittet IStructureComparator.
Detta gränssnitt används av den hierarkiska differensmotorn
(Differensmotor) som går igenom trädet.
Dessutom måste varje blad på trädet implementera gränssnittet
IStreamContentAccessor
för att ge differensmotorn åtkomst till flödesinnehållet.
BufferedContent ger en standardimplementering för gränssnitten IStreamContentAccessor och IContentChangeNotifier. Dess subklass ResourceNode lägger till en implementering för gränssnitten IStructureComparator och ITypedElement baserat på plattformens arbetsyteresurser (IResource). Den kan användas utan modifiering som indata till differensmotorn.
Om du vill använda jämförelsefunktionen utanför standardredigeraren för jämförelse (t.ex. i en dialogruta eller guide), finns ytterligare hjälpklasser i insticksprogrammet för jämförelse.
CompareViewerPane är en praktisk klass som ger en etikett och lokalt verktygsfält till en jämförelsevisning (eller någon annan subklass av JFace-visningsprogrammet). Dess abstrakta subklass CompareViewerSwitchingPane stöder dynamiskt visningsbyte, dvs. visningsprogrammet som är installerat i rutan styrs automatiskt av rutans indataobjekt.
EditionSelectionDialog är en enkel urvalsdialogruta där ett indataelement kan jämföras med en lista över historikvarianter (versioner) av samma indataelement. Dialogrutan används för att implementera funktioner som "Ersätt med lokal historik" i arbetsyteresurser.
Det är dessutom möjligt att ange en undersektion av indataelement (t.ex. en metod i en Java-källfil) med hjälp av en sökväg. I det här fallet jämförs i dialogrutan endast undersektionen (som definieras av sökvägen) med motsvarande undersektion i listan över versioner. Denna funktion kan även användas till att implementera "Ersätt med element från lokal historik" för Java-element.
För EditionSelectionDialog krävs att versionerna implementerar gränssnitten IStreamContentAccessor och IModificationDate. HistoryItem är en praktisk klass som implementerar dessa gränssnitt för IFileState-objekt.