Bug 570852: [R-DataEditor] Add support for ShowIn to R-DataEditor (for
Outline and Filter view)

Change-Id: I1f83daa1015e2d4b22843ced16610b9115a23ca1
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/RDataEditor.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/RDataEditor.java
index 21fe93f..f90086e 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/RDataEditor.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/RDataEditor.java
@@ -29,6 +29,7 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPageLayout;
 import org.eclipse.ui.IPartListener;
 import org.eclipse.ui.IWorkbenchCommandConstants;
 import org.eclipse.ui.IWorkbenchPart;
@@ -36,12 +37,14 @@
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.part.IShowInTargetList;
 import org.eclipse.ui.services.IServiceLocator;
 import org.eclipse.ui.statushandlers.StatusManager;
 import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
 import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
 
 import org.eclipse.statet.jcommons.collections.ImLongList;
+import org.eclipse.statet.jcommons.lang.NonNull;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
 
@@ -49,6 +52,7 @@
 import org.eclipse.statet.ecommons.ui.workbench.WorkbenchUIUtils;
 
 import org.eclipse.statet.base.ui.contentfilter.FilterPage;
+import org.eclipse.statet.base.ui.contentfilter.FilterView;
 import org.eclipse.statet.internal.r.ui.datafilterview.RDataFilterPage;
 import org.eclipse.statet.r.ui.RUI;
 import org.eclipse.statet.r.ui.dataeditor.RDataEditorInput;
@@ -60,7 +64,8 @@
 
 
 @NonNullByDefault
-public class RDataEditor extends EditorPart { // INavigationLocationProvider ?
+public class RDataEditor extends EditorPart
+		implements IShowInTargetList { // INavigationLocationProvider ?
 	
 	
 	private class ActivationListener implements IPartListener {
@@ -373,6 +378,10 @@
 		return new RDataFilterPage(this);
 	}
 	
+	@Override
+	public @NonNull String[] getShowInTargetIds() {
+		return new @NonNull String[] { IPageLayout.ID_OUTLINE, FilterView.VIEW_ID };
+	}
 	
 	@Override
 	@SuppressWarnings("unchecked")
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RDataFilterPage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RDataFilterPage.java
index 61cac11..26212d7 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RDataFilterPage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RDataFilterPage.java
@@ -41,7 +41,9 @@
 import org.eclipse.ui.menus.CommandContributionItemParameter;
 import org.eclipse.ui.menus.UIElement;
 import org.eclipse.ui.part.IPageSite;
+import org.eclipse.ui.part.IShowInTarget;
 import org.eclipse.ui.part.Page;
+import org.eclipse.ui.part.ShowInContext;
 
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
@@ -68,7 +70,7 @@
 
 
 @NonNullByDefault
-public class RDataFilterPage extends Page implements FilterPage {
+public class RDataFilterPage extends Page implements FilterPage, IShowInTarget {
 	
 	
 	private static final String EXPAND_ALL_COMMAND_ID= IWorkbenchCommandConstants.NAVIGATE_EXPAND_ALL;
@@ -306,6 +308,14 @@
 		this.scrollComposite.getContent().setFocus();
 	}
 	
+	@Override
+	public boolean show(final ShowInContext context) {
+		if (this.editor.getEditorInput() == context.getInput()) {
+			return true;
+		}
+		return false;
+	}
+	
 	
 	@Override
 	public void dispose() {