提交 92b76e53 编写于 作者: S Serge Rider

Loading job finalization (fix vertical bar action state reenablement)


Former-commit-id: 17ca3cab
上级 27f20f79
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2020 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.model.runtime.load;
/**
* Lazy loading visualizer extensions
*/
public interface ILoadVisualizerExt {
// Called after load complete and after error resolve
void finalizeLoading();
}
\ No newline at end of file
......@@ -42,6 +42,7 @@ import org.jkiss.dbeaver.model.exec.DBExecUtils;
import org.jkiss.dbeaver.model.exec.plan.*;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.load.DatabaseLoadService;
import org.jkiss.dbeaver.model.runtime.load.ILoadVisualizerExt;
import org.jkiss.dbeaver.model.sql.SQLQuery;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.ui.DBeaverIcons;
......@@ -51,6 +52,7 @@ import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.ProgressPageControl;
import org.jkiss.dbeaver.ui.controls.VerticalButton;
import org.jkiss.dbeaver.ui.controls.VerticalFolder;
import org.jkiss.dbeaver.ui.editors.sql.SQLEditor;
import org.jkiss.dbeaver.ui.editors.sql.SQLPlanSaveProvider;
import org.jkiss.dbeaver.ui.editors.sql.SQLPlanViewProvider;
import org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorActivator;
......@@ -349,7 +351,7 @@ public class ExplainPlanViewer extends Viewer implements IAdaptable
return new PlanLoadVisualizer();
}
class PlanLoadVisualizer extends ProgressVisualizer<DBCPlan> {
class PlanLoadVisualizer extends ProgressVisualizer<DBCPlan> implements ILoadVisualizerExt {
@Override
public void completeLoading(DBCPlan plan) {
super.completeLoading(plan);
......@@ -358,6 +360,15 @@ public class ExplainPlanViewer extends Viewer implements IAdaptable
}
explainService = null;
}
@Override
public void finalizeLoading() {
// Redraw editor
// We need to update UI controls state after error dialog
if (workbenchPart instanceof SQLEditor) {
((SQLEditor) workbenchPart).refreshActions();
}
}
}
}
......
......@@ -25,6 +25,7 @@ import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.model.runtime.load.AbstractLoadService;
import org.jkiss.dbeaver.model.runtime.load.ILoadService;
import org.jkiss.dbeaver.model.runtime.load.ILoadVisualizer;
import org.jkiss.dbeaver.model.runtime.load.ILoadVisualizerExt;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.ui.internal.UIActivator;
......@@ -137,6 +138,9 @@ public class LoadingJob<RESULT> extends AbstractJob {
null,
innerError);
}
if (visualizer instanceof ILoadVisualizerExt) {
((ILoadVisualizerExt) visualizer).finalizeLoading();
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册