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;