提交 164e5878 编写于 作者: S serge-rider

#3470 QM event browser: local session mode added


Former-commit-id: 146d1d26
上级 94ab0392
......@@ -45,6 +45,7 @@ public class QMControllerImpl implements QMController {
private QMMCollectorImpl metaHandler;
private final List<QMExecutionHandler> handlers = new ArrayList<>();
private QMEventBrowser eventBrowser;
private DefaultEventBrowser defaultEventBrowser = new DefaultEventBrowser();
public QMControllerImpl() {
defaultHandler = (QMExecutionHandler) Proxy.newProxyInstance(
......@@ -85,12 +86,15 @@ public class QMControllerImpl implements QMController {
}
@Override
public synchronized QMEventBrowser getEventBrowser() {
public synchronized QMEventBrowser getEventBrowser(boolean currentSessionOnly) {
if (currentSessionOnly) {
return defaultEventBrowser;
}
if (eventBrowser == null) {
eventBrowser = Adapters.adapt(this, QMEventBrowser.class);
if (eventBrowser == null) {
// Default browser
eventBrowser = new DefaultEventBrowser();
this.eventBrowser = defaultEventBrowser;
}
}
......
......@@ -316,6 +316,7 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere
private QMEventFilter defaultFilter = new DefaultEventFilter();
private QMEventFilter filter;
private boolean useDefaultFilter = true;
private boolean currentSessionOnly;
private final Color colorLightGreen;
private final Color colorLightRed;
......@@ -329,11 +330,12 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere
private int entriesPerPage = MIN_ENTRIES_PER_PAGE;
public QueryLogViewer(Composite parent, IWorkbenchPartSite site, QMEventFilter filter, boolean showConnection)
public QueryLogViewer(Composite parent, IWorkbenchPartSite site, QMEventFilter filter, boolean showConnection, boolean currentSessionOnly)
{
super();
this.site = site;
this.currentSessionOnly = currentSessionOnly;
// Prepare colors
......@@ -1140,7 +1142,7 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere
@Override
public List<QMMetaEvent> evaluate(DBRProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
final List<QMMetaEvent> events = new ArrayList<>();
QMEventBrowser eventBrowser = QMUtils.getEventBrowser();
QMEventBrowser eventBrowser = QMUtils.getEventBrowser(currentSessionOnly);
if (eventBrowser != null) {
QMEventCriteria criteria = QMUtils.createDefaultCriteria(DBeaverCore.getGlobalPreferenceStore());
criteria.setSearchString(CommonUtils.isEmptyTrimmed(searchString) ? null : searchString.trim());
......
......@@ -62,7 +62,7 @@ public abstract class TransactionInfoDialog extends Dialog {
protected void createTransactionLogPanel(Composite composite) {
DBCExecutionContext context = getCurrentContext();
QMEventFilter filter = context == null ? VOID_FILTER : createContextFilter(context);
logViewer = new QueryLogViewer(composite, activeEditor.getSite(), filter, false);
logViewer = new QueryLogViewer(composite, activeEditor.getSite(), filter, false, true);
logViewer.setUseDefaultFilter(false);
final Object gd = logViewer.getControl().getLayoutData();
if (gd instanceof GridData) {
......
......@@ -40,7 +40,7 @@ public class SQLLogPanel extends Composite
gl.horizontalSpacing = 0;
setLayout(gl);
queryLogViewer = new QueryLogViewer(this, editor.getSite(), new SQLLogFilter(editor), false);
queryLogViewer = new QueryLogViewer(this, editor.getSite(), new SQLLogFilter(editor), false, true);
}
public QueryLogViewer getQueryLogViewer()
......
......@@ -41,7 +41,7 @@ public class QueryManagerView extends ViewPart
{
Composite group = UIUtils.createPlaceholder(parent, 1);
queryLogViewer = new QueryLogViewer(group, getSite(), null, true);
queryLogViewer = new QueryLogViewer(group, getSite(), null, true, false);
UIUtils.setHelp(group, IHelpContextIds.CTX_QUERY_MANAGER);
}
......
......@@ -26,7 +26,7 @@ public interface QMController {
QMExecutionHandler getDefaultHandler();
QMEventBrowser getEventBrowser();
QMEventBrowser getEventBrowser(boolean currentSessionOnly);
void registerHandler(QMExecutionHandler handler);
......
......@@ -71,11 +71,11 @@ public class QMUtils {
}
@Nullable
public static QMEventBrowser getEventBrowser() {
public static QMEventBrowser getEventBrowser(boolean currentSessionOnly) {
if (application == null) {
return null;
}
return application.getQueryManager().getEventBrowser();
return application.getQueryManager().getEventBrowser(currentSessionOnly);
}
public static boolean isTransactionActive(DBCExecutionContext executionContext) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册