fix #8332 Scroll 1px before exporting to load all rows in tree format
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 19 Jun 2019 10:17:32 +0000 (12:17 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 19 Jun 2019 10:17:32 +0000 (12:17 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixToolbar.java

index 2073e6da78e06d5819cc7e8fdbd27efcbb202d92..b12b23d658d79bc2c84e2fe163ac85243ee2cffa 100644 (file)
@@ -18,6 +18,7 @@ import java.util.function.Consumer;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ComboViewer;
 import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.nebula.widgets.nattable.command.VisualRefreshCommand;
 import org.eclipse.nebula.widgets.nattable.export.command.ExportCommand;
 import org.eclipse.nebula.widgets.nattable.persistence.PersistenceHelper;
 import org.eclipse.nebula.widgets.nattable.persistence.command.DisplayPersistenceDialogCommand;
@@ -27,6 +28,7 @@ import org.eclipse.nebula.widgets.nattable.persistence.command.StateChangeEvent;
 import org.eclipse.nebula.widgets.nattable.persistence.gui.PersistenceDialog;
 import org.eclipse.nebula.widgets.nattable.tree.command.TreeCollapseAllCommand;
 import org.eclipse.nebula.widgets.nattable.tree.command.TreeExpandAllCommand;
+import org.eclipse.nebula.widgets.nattable.viewport.ViewportLayer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -233,10 +235,17 @@ public class CharacterMatrixToolbar extends Composite {
         btnExcelExport.addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent e) {
+                // hack for fixing #8332
+                // By scrolling for only 1 pixel the export then exports all rows
+                ViewportLayer viewportLayer = matrix.getBodyLayer().getViewportLayer();
+                if(viewportLayer.getOrigin().getY()==0){
+                    viewportLayer.setOriginY(1);
+                }
                 matrix.getNatTable().doCommand(
                         new ExportCommand(
                                 matrix.getNatTable().getConfigRegistry(),
                                 matrix.getNatTable().getShell()));
+                matrix.getNatTable().doCommand(new VisualRefreshCommand());
             }
         });