Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Wolf2016-12-14 16:39:00 +0000
committerThomas Wolf2016-12-14 16:54:19 +0000
commitfee58d4fc1562bfcadf36da28bdf56554a9870b9 (patch)
treeb3903f972b746fb91dd5b5c6cbd32b218e718503
parent05634f5b1cd2a268ee71ba33aeed5392ba17e645 (diff)
downloadegit-fee58d4fc1562bfcadf36da28bdf56554a9870b9.tar.gz
egit-fee58d4fc1562bfcadf36da28bdf56554a9870b9.tar.xz
egit-fee58d4fc1562bfcadf36da28bdf56554a9870b9.zip
Fix DiffEditorOutline for pre-Neon Eclipse
In February 2016, default implementations were added to the IContentProvider interface.[1] Eclipse's before Neon do not have those, thus content providers need to implement dispose() and inputChanged() if a platform earlier than Eclipse Neon is targeted. [1] https://git.eclipse.org/r/#/c/56214/ Change-Id: I3fc1c21b0c25f27fb60144612920032f28968d44 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java
index e27a125e26..95b533fef1 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java
@@ -37,6 +37,7 @@ import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.OpenEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jgit.diff.DiffEntry;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
@@ -252,11 +253,24 @@ public class DiffEditorOutlinePage extends NestedContentOutlinePage {
private Map<FileDiffRegion, Folder> parents = new HashMap<>();
@Override
- public Object[] getElements(Object inputElement) {
+ public void inputChanged(Viewer viewer, Object oldInput,
+ Object newInput) {
+ folders.clear();
+ parents.clear();
+ if (newInput instanceof DiffDocument) {
+ computeFolders(((DiffDocument) newInput).getFileRegions());
+ }
+ }
+
+ @Override
+ public void dispose() {
folders.clear();
parents.clear();
+ }
+
+ @Override
+ public Object[] getElements(Object inputElement) {
if (inputElement instanceof DiffDocument) {
- computeFolders(((DiffDocument) inputElement).getFileRegions());
return folders.values().toArray();
}
return NOTHING;

Back to the top