From 98a72f58c8736afa0f8198d39e272213fbece0b2 Mon Sep 17 00:00:00 2001 From: serge-rider Date: Mon, 7 May 2018 12:12:18 +0300 Subject: [PATCH] QM event browser impl --- .../ui/controls/querylog/QueryLogViewer.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java index dd35cc09d7..f85080462b 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java @@ -56,6 +56,7 @@ import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener; import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; import org.jkiss.dbeaver.model.qm.*; import org.jkiss.dbeaver.model.qm.meta.*; +import org.jkiss.dbeaver.model.runtime.AbstractJob; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.sql.SQLConstants; import org.jkiss.dbeaver.model.sql.SQLDialect; @@ -66,11 +67,9 @@ import org.jkiss.dbeaver.ui.controls.TableColumnSortListener; import org.jkiss.dbeaver.ui.dialogs.sql.BaseSQLDialog; import org.jkiss.dbeaver.ui.editors.sql.handlers.OpenHandler; import org.jkiss.dbeaver.utils.GeneralUtils; -import org.jkiss.dbeaver.utils.RuntimeUtils; import org.jkiss.utils.CommonUtils; import org.jkiss.utils.LongKeyMap; -import java.lang.reflect.InvocationTargetException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -614,24 +613,26 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere clearLog(); // Extract events - final List events = new ArrayList<>(); - RuntimeUtils.runTask(monitor -> { - try { + new AbstractJob("Read meta events") { + @Override + protected IStatus run(DBRProgressMonitor monitor) { + final List events = new ArrayList<>(); QMEventBrowser eventBrowser = QMUtils.getEventBrowser(); if (eventBrowser != null) { QMEventCriteria criteria = new QMEventCriteria(); criteria.setSearchString(CommonUtils.isEmptyTrimmed(searchString) ? null : searchString.trim()); try (QMEventCursor cursor = eventBrowser.getQueryHistoryCursor(monitor, criteria)) { - while (events.size() < this.entriesPerPage && cursor.hasNextEvent(monitor)) { + while (events.size() < entriesPerPage && cursor.hasNextEvent(monitor)) { events.add(cursor.nextEvent(monitor)); } + } catch (DBException e) { + return GeneralUtils.makeExceptionStatus(e); } } - } catch (DBException e) { - throw new InvocationTargetException(e); + DBeaverUI.asyncExec(() -> updateMetaInfo(events)); + return Status.OK_STATUS; } - }, "Read meta events", 5000); - updateMetaInfo(events); + }.schedule(); } @Override -- GitLab