From a715124e8d19c46681a94444cad2af77bb75deae Mon Sep 17 00:00:00 2001 From: jurgen Date: Sun, 21 Jun 2015 10:19:42 +0000 Subject: [PATCH] Spreadsheet refresh fix --- .../ui/controls/lightgrid/LightGrid.java | 18 +++++++++++------- .../resultset/IResultSetPresentation.java | 2 +- .../resultset/ResultSetPropertyTester.java | 4 ++-- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java index 707ade1aee..8551f512a8 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java @@ -448,6 +448,8 @@ public abstract class LightGrid extends Canvas { { if (refreshColumns) { this.removeAll(); + } else { + this.resetData(); } IGridContentProvider contentProvider = getContentProvider(); { @@ -461,8 +463,6 @@ public abstract class LightGrid extends Canvas { this.parentNodes = parents.toArray(new GridNode[parents.size()]); } this.displayedToolTipText = null; - this.topIndex = -1; - this.bottomIndex = -1; if (refreshColumns) { this.maxColumnDepth = 0; @@ -1253,6 +1253,15 @@ public abstract class LightGrid extends Canvas { public void removeAll() { checkWidget(); + resetData(); + + topColumns.clear(); + columns.clear(); + columnElements = new Object[0]; + rowElements = new Object[0]; + } + + private void resetData() { deselectAll(); vScroll.setSelection(0); hScroll.setSelection(0); @@ -1262,11 +1271,6 @@ public abstract class LightGrid extends Canvas { topIndex = -1; bottomIndex = -1; shiftSelectionAnchorColumn = null; - - topColumns.clear(); - columns.clear(); - columnElements = new Object[0]; - rowElements = new Object[0]; } /** diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetPresentation.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetPresentation.java index 659964cd44..714ed973bb 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetPresentation.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetPresentation.java @@ -38,7 +38,7 @@ public interface IResultSetPresentation { String PRES_TOOLS_BEGIN = "rsv_pres_begin"; String PRES_TOOLS_END = "rsv_pres_end"; - public enum RowPosition { + enum RowPosition { FIRST, PREVIOUS, NEXT, diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java index 4180b948b6..382cd1cd71 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPropertyTester.java @@ -51,11 +51,11 @@ public class ResultSetPropertyTester extends PropertyTester if (PROP_ACTIVE.equals(property)) { return true; } else if (PROP_HAS_DATA.equals(property)) { - return rsv.getModel().getRowCount() > 0; + return rsv.getModel().hasData(); } else if (PROP_HAS_MORE_DATA.equals(property)) { return rsv.isHasMoreData(); } else if (PROP_CAN_COPY.equals(property)) { - return rsv.getActivePresentation().getCurrentAttribute() != null && rsv.getCurrentRow() != null; + return rsv.getModel().hasData(); } else if (PROP_CAN_PASTE.equals(property) || PROP_CAN_CUT.equals(property)) { DBDAttributeBinding attr = rsv.getActivePresentation().getCurrentAttribute(); return attr != null && !rsv.isAttributeReadOnly(attr); -- GitLab