public CompareResult open(){
  final ContentComparator[] comparatorArray=comparators.toArray(new ContentComparator[comparators.size()]);
  final CustomCompareEditorInput input=new CustomCompareEditorInput(modified,original,ancestor,comparatorArray,compareConfiguration,externalCompareHandler);
  if (compareConfiguration.isLeftEditable() || compareConfiguration.isRightEditable()) {
    compareConfiguration.setProperty("org.eclipse.compare.internal.CONFIRM_SAVE_PROPERTY",Boolean.FALSE);
    input.setAlwaysDirty(alwaysDirty);
  }
  input.addSaveListener(new ProxyCompareSaveListener());
  log.info(MessageFormat.format("Comparing {0} to {1}",getLabelNOLOC(modified),getLabelNOLOC(original)));
  compareUIType.openCompareUI(input);
  final boolean contentsIdentical=(input.getCompareResult() == null);
  final boolean contentsSaved=(input.getSavedContents().length > 0);
  return new CompareResult(contentsIdentical,input.wasOKPressed(),contentsSaved);
}

public CompareResult open ( ) { final ContentComparator [ ] comparatorArray = comparators . toArray ( new ContentComparator [ comparators . size ( ) ] ) ; final CustomCompareEditorInput input = new CustomCompareEditorInput ( modified , original , ancestor , comparatorArray , compareConfiguration , externalCompareHandler ) ; if ( compareConfiguration . isLeftEditable ( ) || compareConfiguration . isRightEditable ( ) ) { compareConfiguration . setProperty ( "org.eclipse.compare.internal.CONFIRM_SAVE_PROPERTY" , Boolean . FALSE ) ; input . setAlwaysDirty ( alwaysDirty ) ; } input . addSaveListener ( new ProxyCompareSaveListener ( ) ) ; log . info ( MessageFormat . format ( "Comparing {0} to {1}" , getLabelNOLOC ( modified ) , getLabelNOLOC ( original ) ) ) ; compareUIType . openCompareUI ( input ) ; final boolean contentsIdentical = ( input . getCompareResult ( ) == null ) ; final boolean contentsSaved = ( input . getSavedContents ( ) . length > 0 ) ; return new CompareResult ( contentsIdentical , input . wasOKPressed ( ) , contentsSaved ) ; }
opens this compare operation , showing the compare ui , returning the result details of the comparison . note that the compare results only includes saved data from the results of opening the ui - that is , it will only include saved data from a synchronous comparison ( ie , in a dialog ) . if you use an asynchronous compare ui ( ie , an editor ) , you should hook up a save listener .
