提交 16152b8a 编写于 作者: S serge-rider

Execution plan tab name fix (show plan number)

上级 3763a40a
......@@ -256,16 +256,18 @@ public class SessionManagerViewer<SESSION_TYPE extends DBAServerSession>
}
private void createPlannerTab(CTabFolder previewFolder) {
planViewer = new ExplainPlanViewer(workbenchPart, sqlViewer, previewFolder);
planViewer = new ExplainPlanViewer(workbenchPart, sqlViewer, previewFolder, 0);
// planTree = new PlanNodesTree(previewFolder, SWT.SHEET, workbenchPart.getSite());
// planTree.substituteProgressPanel(getSessionListControl());
planViewer.addSelectionChangedListener(event -> showPlanNode());
CTabItem sqlPlanItem = new CTabItem(previewFolder, SWT.NONE);
sqlPlanItem.setText(CoreMessages.viewer_sql_plan_item_execution_plan);
sqlPlanItem.setImage(DBeaverIcons.getImage(UIIcon.SQL_PAGE_EXPLAIN_PLAN));
sqlPlanItem.setControl(planViewer.getControl());
sqlPlanItem.setData(planViewer);
}
private void showPlanNode()
......
......@@ -1599,10 +1599,18 @@ public class SQLEditor extends SQLEditorBase implements
}
if (planView == null) {
planView = new ExplainPlanViewer(this, this, resultTabs);
int maxPlanNumber = 0;
for (CTabItem item : resultTabs.getItems()) {
if (item.getData() instanceof ExplainPlanViewer) {
maxPlanNumber = Math.max(maxPlanNumber, ((ExplainPlanViewer) item.getData()).getPlanNumber());
}
}
maxPlanNumber++;
planView = new ExplainPlanViewer(this, this, resultTabs, maxPlanNumber);
final CTabItem item = new CTabItem(resultTabs, SWT.CLOSE);
item.setControl(planView.getControl());
item.setText(SQLEditorMessages.editors_sql_error_execution_plan_title);
item.setText(SQLEditorMessages.editors_sql_error_execution_plan_title + " - " + maxPlanNumber);
if (sqlQuery != null) {
item.setToolTipText(sqlQuery.getText());
}
......
......@@ -96,15 +96,17 @@ public class ExplainPlanViewer extends Viewer implements IAdaptable
private SQLQuery lastQuery;
private Object lastQueryId;
private DBCPlan lastPlan;
private int planNumber;
private RefreshPlanAction refreshPlanAction;
private String curFolder;
public ExplainPlanViewer(final IWorkbenchPart workbenchPart, DBPContextProvider contextProvider, Composite parent)
public ExplainPlanViewer(final IWorkbenchPart workbenchPart, DBPContextProvider contextProvider, Composite parent, int planNumber)
{
this.workbenchPart = workbenchPart;
this.contextProvider = contextProvider;
this.planNumber = planNumber;
this.refreshPlanAction = new RefreshPlanAction();
this.refreshPlanAction.setEnabled(false);
......@@ -170,8 +172,11 @@ public class ExplainPlanViewer extends Viewer implements IAdaptable
public SQLQuery getQuery() {
return lastQuery;
}
public int getPlanNumber() {
return planNumber;
}
public boolean loadQueryPlan(DBCQueryPlanner planner, Viewer viewer) {
if (planner instanceof DBCQueryPlannerSerializable) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册