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 707ade1aee195275e6938ef2f642ec74adb96826..8551f512a890d7e781ea6b982865c77968d63f85 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 659964cd44ed4d90bdf6732b5f23bf5114b80943..714ed973bb77ddbe1b7cebf6623bc215241116a1 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 4180b948b670a293413f6dcde3045acfb54688c2..382cd1cd715c59f6708249cd4da738e0a71c6fa5 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);