void () { if (myIsDisposed || myIsDuringUpdate) return; if (myList.getSelectedRowCount() == 0) { myDiffPanel.setRequest(NoDiffRequest.INSTANCE); return; } BlockData blockData = myBlockLoader.getLoadedData(); int count = blockData.getRevisions().size(); if (count == 0) { myDiffPanel.setRequest(new LoadingDiffRequest()); return; } IntPair range = getSelectedRevisionsRange(blockData); int revIndex1 = range.second; int revIndex2 = range.first; if (revIndex1 == count && revIndex2 == count) { myDiffPanel.setRequest(NoDiffRequest.INSTANCE); return; } DiffContent content1 = createDiffContent(revIndex1, blockData); DiffContent content2 = createDiffContent(revIndex2, blockData); String title1 = createDiffContentTitle(revIndex1, blockData); String title2 = createDiffContentTitle(revIndex2, blockData); if (content1 != null && content2 != null) { myDiffPanel.setRequest(new SimpleDiffRequest(null, content1, content2, title1, title2), new IntPair(revIndex1, revIndex2)); return; } if (blockData.isLoading()) { myDiffPanel.setRequest(new LoadingDiffRequest()); } else { myDiffPanel.setRequest(new MessageDiffRequest(canNoLoadMessage(blockData.getException()))); } }