Bug 571681: Add dimension of unfiltered data to status line and
DataViewDescription

Change-Id: I63c31bd84545edb19e69e5847522e1344e3339f6
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 f90086e..48b20c5 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
@@ -73,7 +73,7 @@
 		@Override
 		public void partActivated(final IWorkbenchPart part) {
 			if (part == RDataEditor.this) {
-				updateStatusLine();
+				updateInfoStatusLine();
 			}
 		}
 		
@@ -291,7 +291,7 @@
 			public void selectionChanged(final SelectionChangedEvent event) {
 				final IStatusLineManager manager= getEditorSite().getActionBars().getStatusLineManager();
 				final RDataTableSelection selection= (RDataTableSelection)event.getSelection();
-				updateStatusLine();
+				updateInfoStatusLine();
 				final String s= toStatusString(selection);
 				if (s != null) {
 					manager.setMessage(s);
@@ -330,15 +330,20 @@
 		return sb.toString();
 	}
 	
-	private void updateStatusLine() {
+	private void updateInfoStatusLine() {
 		final IStatusLineManager manager= getEditorSite().getActionBars().getStatusLineManager();
 		final var viewDescription= this.viewer.getDataView();
 		
 		final IContributionItem dimItem= manager.find("data.dimension"); //$NON-NLS-1$
 		String dimText= ""; //$NON-NLS-1$
 		if (viewDescription != null) {
-			final StringBuilder sb= new StringBuilder("Dim: ");
-			appendDim(viewDescription.getViewDataDimension(), sb);
+			final StringBuilder sb= new StringBuilder("Dim: "); //$NON-NLS-1$
+			appendDim(viewDescription.getDataDimension(), sb);
+			if (!viewDescription.getViewDataDimension().equals(viewDescription.getDataDimension())) {
+				sb.append(" ("); //$NON-NLS-1$
+				appendDim(viewDescription.getViewDataDimension(), sb);
+				sb.append(')');
+			}
 			dimText= sb.toString();
 		}
 		((StatusLineContributionItem)dimItem).setText(dimText);
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/RDataEditorActionBarContributor.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/RDataEditorActionBarContributor.java
index 3bad7fd..c02fb00 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/RDataEditorActionBarContributor.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/RDataEditorActionBarContributor.java
@@ -29,7 +29,7 @@
 	
 	
 	public RDataEditorActionBarContributor() {
-		this.contributionItem= new StatusLineContributionItem("data.dimension", 26);
+		this.contributionItem= new StatusLineContributionItem("data.dimension", 35);
 	}
 	
 	
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/dataeditor/DataViewDescription.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/dataeditor/DataViewDescription.java
index c870a68..aa7d9c0 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/dataeditor/DataViewDescription.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/dataeditor/DataViewDescription.java
@@ -23,15 +23,27 @@
 public class DataViewDescription implements Immutable {
 	
 	
+	private final ImLongList dataDim;
+	
 	private final ImLongList viewDim;
 	
 	
-	public DataViewDescription(final ImLongList viewDim) {
+	public DataViewDescription(final ImLongList dataDim, final ImLongList viewDim) {
+		this.dataDim= dataDim;
 		this.viewDim= viewDim;
 	}
 	
 	
 	/**
+	 * Returns the dimension of the data.
+	 * 
+	 * @return the dimension
+	 */
+	public ImLongList getDataDimension() {
+		return this.dataDim;
+	}
+	
+	/**
 	 * Returns the dimension of the (filtered) view data.
 	 * 
 	 * @return the dimension
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/dataeditor/RDataTableViewer.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/dataeditor/RDataTableViewer.java
index c4f1847..cc78b4f 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/dataeditor/RDataTableViewer.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/dataeditor/RDataTableViewer.java
@@ -733,6 +733,8 @@
 	private DataViewDescription refreshDataViewDescription(final TableLayers tableLayers) {
 		final var viewDescription= new DataViewDescription(
 				ImCollections.newLongList(
+						this.dataProvider.getFullRowCount(), this.dataProvider.getColumnCount() ),
+				ImCollections.newLongList(
 						this.dataProvider.getRowCount(), this.dataProvider.getColumnCount() ));
 		this.dataViewDescription= viewDescription;
 		return viewDescription;