Bug 577558: [*-Editor] Add support for problem indicator by label
providers

  - Make document providers available as model adapter

Change-Id: I4196aa2300527adb846c699f5ac967b9858b7b49
diff --git a/r/org.eclipse.statet.r.ui/plugin.xml b/r/org.eclipse.statet.r.ui/plugin.xml
index 419c0e1..770eaf0 100644
--- a/r/org.eclipse.statet.r.ui/plugin.xml
+++ b/r/org.eclipse.statet.r.ui/plugin.xml
@@ -32,6 +32,8 @@
             class="org.eclipse.statet.internal.r.ui.RAdapterFactory">
          <adapter
                type="org.eclipse.statet.ltk.ui.ElementLabelProvider"/>
+         <adapter
+               type="org.eclipse.ui.texteditor.IDocumentProvider"/>
       </adapterFactory>
    </extension>
 
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RAdapterFactory.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RAdapterFactory.java
index 83bfe66..ffeb21d 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RAdapterFactory.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RAdapterFactory.java
@@ -15,6 +15,7 @@
 package org.eclipse.statet.internal.r.ui;
 
 import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import org.eclipse.statet.jcommons.lang.NonNull;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
@@ -30,6 +31,7 @@
 	
 	private static final @NonNull Class<?>[] ADAPTERS= new @NonNull Class<?>[] {
 		ElementLabelProvider.class,
+		IDocumentProvider.class,
 	};
 	
 	
@@ -48,6 +50,9 @@
 		if (adapterType == ElementLabelProvider.class) {
 			return (T)new RLabelProvider();
 		}
+		if (adapterType == IDocumentProvider.class) {
+			return (T)RUIPlugin.getInstance().getRDocumentProvider();
+		}
 		return null;
 	}
 	
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/ROutlinePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/ROutlinePage.java
index 765efd8..6ef7b70 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/ROutlinePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/ROutlinePage.java
@@ -44,12 +44,12 @@
 import org.eclipse.statet.ltk.model.core.element.SourceStructElement;
 import org.eclipse.statet.ltk.ui.ElementNameComparator;
 import org.eclipse.statet.ltk.ui.sourceediting.SourceEditor2OutlinePage;
+import org.eclipse.statet.ltk.ui.util.ExtModelLabelProvider;
 import org.eclipse.statet.r.core.refactoring.RRefactoring;
 import org.eclipse.statet.r.core.rmodel.RElement;
 import org.eclipse.statet.r.core.rmodel.RElementName;
 import org.eclipse.statet.r.core.rmodel.RModel;
 import org.eclipse.statet.r.launching.RCodeLaunching;
-import org.eclipse.statet.r.ui.RLabelProvider;
 import org.eclipse.statet.r.ui.RUI;
 
 
@@ -172,7 +172,7 @@
 	protected void configureViewer(final TreeViewer viewer) {
 		super.configureViewer(viewer);
 		
-		viewer.setLabelProvider(new RLabelProvider());
+		viewer.setLabelProvider(new ExtModelLabelProvider(RModel.R_TYPE_ID));
 	}
 	
 	@Override
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/plugin.xml b/redocs/org.eclipse.statet.redocs.tex.r/plugin.xml
index ef360c1..242fcb7 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/plugin.xml
+++ b/redocs/org.eclipse.statet.redocs.tex.r/plugin.xml
@@ -123,6 +123,8 @@
             class="org.eclipse.statet.internal.redocs.tex.r.ui.TexRweaveAdapterFactory">
          <adapter
                type="org.eclipse.statet.ltk.ui.ElementLabelProvider"/>
+         <adapter
+               type="org.eclipse.ui.texteditor.IDocumentProvider"/>
       </adapterFactory>
    </extension>
    
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/TexRweaveAdapterFactory.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/TexRweaveAdapterFactory.java
index 44d0dde..ac30da1 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/TexRweaveAdapterFactory.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/TexRweaveAdapterFactory.java
@@ -15,11 +15,13 @@
 package org.eclipse.statet.internal.redocs.tex.r.ui;
 
 import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import org.eclipse.statet.jcommons.lang.NonNull;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
 
+import org.eclipse.statet.internal.redocs.tex.r.RedocsTexRPlugin;
 import org.eclipse.statet.ltk.ui.ElementLabelProvider;
 import org.eclipse.statet.redocs.r.ui.RedocsRElementLabelProvider;
 
@@ -30,6 +32,7 @@
 	
 	private static final @NonNull Class<?>[] ADAPTERS= new @NonNull Class<?>[] {
 		ElementLabelProvider.class,
+		IDocumentProvider.class,
 	};
 	
 	
@@ -48,6 +51,9 @@
 		if (adapterType == ElementLabelProvider.class) {
 			return (T)new RedocsRElementLabelProvider();
 		}
+		if (adapterType == IDocumentProvider.class) {
+			return (T)RedocsTexRPlugin.getInstance().getDocRDocumentProvider();
+		}
 		return null;
 	}
 	
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/plugin.xml b/redocs/org.eclipse.statet.redocs.wikitext.r/plugin.xml
index 9ce66fd..7cf5cfa 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/plugin.xml
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/plugin.xml
@@ -65,6 +65,8 @@
             class="org.eclipse.statet.internal.redocs.wikitext.r.ui.WikitextRweaveAdapterFactory">
          <adapter
                type="org.eclipse.statet.ltk.ui.ElementLabelProvider"/>
+         <adapter
+               type="org.eclipse.ui.texteditor.IDocumentProvider"/>
       </adapterFactory>
    </extension>
    
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/WikitextRweaveAdapterFactory.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/WikitextRweaveAdapterFactory.java
index be78e4d..ee290e3 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/WikitextRweaveAdapterFactory.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/WikitextRweaveAdapterFactory.java
@@ -15,11 +15,13 @@
 package org.eclipse.statet.internal.redocs.wikitext.r.ui;
 
 import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.ui.texteditor.IDocumentProvider;
 
 import org.eclipse.statet.jcommons.lang.NonNull;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
 
+import org.eclipse.statet.internal.redocs.wikitext.r.RedocsWikitextRPlugin;
 import org.eclipse.statet.ltk.ui.ElementLabelProvider;
 import org.eclipse.statet.redocs.r.ui.RedocsRElementLabelProvider;
 
@@ -30,6 +32,7 @@
 	
 	private static final @NonNull Class<?>[] ADAPTERS= new @NonNull Class<?>[] {
 		ElementLabelProvider.class,
+		IDocumentProvider.class,
 	};
 	
 	
@@ -48,6 +51,9 @@
 		if (adapterType == ElementLabelProvider.class) {
 			return (T)new RedocsRElementLabelProvider();
 		}
+		if (adapterType == IDocumentProvider.class) {
+			return (T)RedocsWikitextRPlugin.getInstance().getDocRDocumentProvider();
+		}
 		return null;
 	}