use of com.cubrid.common.ui.query.tuner.QueryRecord in project cubrid-manager by CUBRID.
the class QueryRecordListComparator method runQueryPlan.
/**
* Run query plan
*
*/
private void runQueryPlan() {
String query = getFirstSelectedQuery();
if (StringUtil.isEmpty(query)) {
return;
}
runItem.setEnabled(false);
runPlanItem.setEnabled(false);
List<String> queryList = new ArrayList<String>();
queryList.add(query);
QueryTunerJob job = new QueryTunerJob(IQueryJob.RUN_PLAN | /*IQueryJob.COLLECT_STAT | */
IQueryJob.AUTO_COMMIT, database.getDatabaseInfo(), queryList, new TextRecordProcessor(), QueryTunerDialog.this);
job.schedule();
try {
job.join();
List<QueryRecord> queryRecordList = job.getQueryRecordList();
if (queryRecordList.size() > 0) {
lastRecord = currentRecord;
currentRecord = queryRecordList.get(0);
displayQueryPlan(currentRecord);
}
} catch (InterruptedException e) {
LOGGER.error(e.getMessage());
}
runItem.setEnabled(true);
runPlanItem.setEnabled(true);
}
use of com.cubrid.common.ui.query.tuner.QueryRecord in project cubrid-manager by CUBRID.
the class QueryRecordListComparator method displayQueryPlan.
/**
* Display query record for tuner tab
*
* @param queryRecord
*/
private void displayQueryPlan(final QueryRecord queryRecord) {
if (queryPlanComposite != null && !queryPlanComposite.isDisposed()) {
queryPlanComposite.dispose();
}
queryPlanComposite = new Composite(queryPlanContainer, SWT.BORDER);
queryPlanComposite.setLayout(new GridLayout());
ToolBar queryPlanToolBar = new ToolBar(queryPlanComposite, SWT.None);
queryPlanToolBar.setLayoutData(CommonUITool.createGridData(1, 1, -1, -1));
hideItem = new ToolItem(queryPlanToolBar, SWT.CHECK);
hideItem.setImage(CommonUIPlugin.getImage("icons/queryeditor/qe_panel_down.png"));
hideItem.setToolTipText(Messages.tooltip_qedit_explain_display_mode);
dispModeTextItem = new ToolItem(queryPlanToolBar, SWT.CHECK);
dispModeTextItem.setImage(CommonUIPlugin.getImage("icons/queryeditor/qe_explain_mode_raw.png"));
dispModeTextItem.setToolTipText(Messages.tooltip_qedit_explain_display_mode);
dispModeTreeItem = new ToolItem(queryPlanToolBar, SWT.CHECK);
dispModeTreeItem.setImage(CommonUIPlugin.getImage("icons/queryeditor/qe_explain_mode_tree.png"));
dispModeTreeItem.setToolTipText(Messages.tooltip_qedit_explain_display_mode);
dispModeGraphItem = new ToolItem(queryPlanToolBar, SWT.CHECK);
dispModeGraphItem.setImage(CommonUIPlugin.getImage("icons/queryeditor/qe_explain_mode_graph.png"));
dispModeGraphItem.setToolTipText(Messages.tooltip_qedit_explain_display_mode);
TableViewer statisticsViewer = new TableViewer(queryPlanComposite, SWT.FULL_SELECTION);
statisticsViewer.getTable().setLayoutData(CommonUITool.createGridData(GridData.FILL_HORIZONTAL, 1, 1, -1, 50));
statisticsViewer.getTable().setHeaderVisible(true);
statisticsViewer.getTable().setLinesVisible(false);
TableColumn itemColumn = new TableColumn(statisticsViewer.getTable(), SWT.None);
itemColumn.setText(Messages.columnItem);
itemColumn.setWidth(60);
TableColumn fetchColumn = new TableColumn(statisticsViewer.getTable(), SWT.None);
fetchColumn.setText(Messages.columnFetches);
fetchColumn.setWidth(60);
TableColumn dirtyColumn = new TableColumn(statisticsViewer.getTable(), SWT.None);
dirtyColumn.setText(Messages.columnDirties);
dirtyColumn.setWidth(60);
TableColumn ioReadColumn = new TableColumn(statisticsViewer.getTable(), SWT.None);
ioReadColumn.setText(Messages.columnIORead);
ioReadColumn.setWidth(80);
TableColumn ioWriteColumn = new TableColumn(statisticsViewer.getTable(), SWT.None);
ioWriteColumn.setText(Messages.columnIOWrite);
ioWriteColumn.setWidth(80);
TableColumn costColumn = new TableColumn(statisticsViewer.getTable(), SWT.None);
costColumn.setText(Messages.columnCost);
costColumn.setWidth(60);
statisticsViewer.setContentProvider(new QueryPlanContentProvider());
statisticsViewer.setLabelProvider(new QueryPlanLabelPrivoder(statisticsViewer, true));
List<QueryRecord> recordList = new ArrayList<QueryRecord>();
if (queryRecord != null) {
recordList.add(queryRecord);
}
if (lastRecord != null) {
recordList.add(lastRecord);
}
statisticsViewer.setInput(recordList);
final SashForm queryPlanSashForm = new SashForm(queryPlanComposite, SWT.VERTICAL);
queryPlanSashForm.setLayoutData(CommonUITool.createGridData(GridData.FILL_BOTH, 1, 1, -1, -1));
queryPlanSashForm.setBackground(SASH_COLOR);
queryPlanSashForm.setLayout(new GridLayout());
queryPlanSashForm.SASH_WIDTH = 2;
DatabaseInfo databaseInfo = database == null ? null : database.getDatabaseInfo();
final QueryPlanComposite nowPlanComposite = new QueryPlanComposite(queryPlanSashForm, SWT.None, queryRecord == null ? null : queryRecord.getQueryPlan(), databaseInfo);
final QueryPlanComposite beforePlanComposite = new QueryPlanComposite(queryPlanSashForm, SWT.None, lastRecord == null ? null : lastRecord.getQueryPlan(), databaseInfo);
queryPlanSashForm.setWeights(new int[] { 500, 500 });
hideItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
isHiden = !isHiden;
performHideOperation(queryPlanSashForm, isHiden);
}
});
dispModeTextItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
updateTunerPlanDisplayModel(nowPlanComposite, beforePlanComposite, DISPLAY_TEXT);
}
});
dispModeTreeItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
updateTunerPlanDisplayModel(nowPlanComposite, beforePlanComposite, DISPLAY_TREE);
}
});
dispModeGraphItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
updateTunerPlanDisplayModel(nowPlanComposite, beforePlanComposite, DISPLAY_GRAPH);
}
});
performHideOperation(queryPlanSashForm, isHiden);
updateTunerPlanDisplayModel(nowPlanComposite, beforePlanComposite, tunerDisplayModel);
queryPlanContainer.layout();
}
use of com.cubrid.common.ui.query.tuner.QueryRecord in project cubrid-manager by CUBRID.
the class QueryRecordListComparator method displayComparePlan.
/**
* Display compare query plan
*
* @param leftRecord
* @param rightRecord
*/
private void displayComparePlan(QueryRecord leftRecord, QueryRecord rightRecord) {
String leftQuery = "", rightQuery = "";
if (leftRecord != null) {
leftQuery = leftRecord.getQuery();
textMergeConfig.setLeftLabel(leftRecord.getName());
List<QueryRecord> list = new ArrayList<QueryRecord>();
list.add(leftRecord);
compareLeftTableViewer.setInput(list);
compareLeftTableViewer.refresh();
leftComparePlanComposite.setQueryRecord(leftRecord.getQueryPlan());
} else {
textMergeConfig.setLeftLabel("");
compareLeftTableViewer.setInput(new ArrayList<QueryRecord>());
compareLeftTableViewer.refresh();
leftComparePlanComposite.setQueryRecord(null);
}
if (rightRecord != null) {
rightQuery = rightRecord.getQuery();
textMergeConfig.setRightLabel(rightRecord.getName());
List<QueryRecord> list = new ArrayList<QueryRecord>();
list.add(rightRecord);
compareRightTableViewer.setInput(list);
compareRightTableViewer.refresh();
rightComparePlanComposite.setQueryRecord(rightRecord.getQueryPlan());
} else {
textMergeConfig.setRightLabel("");
compareRightTableViewer.setInput(new ArrayList<QueryRecord>());
compareRightTableViewer.refresh();
rightComparePlanComposite.setQueryRecord(null);
}
DiffNode queryDiffNode = new DiffNode(null, Differencer.CHANGE, null, new TextCompareInput(leftQuery), new TextCompareInput(rightQuery));
textMergeViewer.setInput(queryDiffNode);
}
use of com.cubrid.common.ui.query.tuner.QueryRecord in project cubrid-manager by CUBRID.
the class AddQueryRecordDialog method validate.
private boolean validate() {
setErrorMessage(null);
getButton(IDialogConstants.OK_ID).setEnabled(false);
name = newText.getText();
if (StringUtil.isEmpty(name)) {
setErrorMessage(Messages.msgQueryRecordNameEmpty);
}
if (newFlag) {
for (QueryRecord record : queryRecordProject.getQueryRecordList()) {
if (StringUtil.isEqual(name, record.getName())) {
setErrorMessage(Messages.bind(Messages.msgQueryRecordNameExist, name));
return false;
}
}
} else {
for (QueryRecord record : queryRecordProject.getQueryRecordList()) {
if (StringUtil.isEqual(name, record.getName()) && !record.getCreateDate().equals(queryRecord.getCreateDate())) {
setErrorMessage(Messages.msgQueryRecordNameExist);
return false;
}
}
}
getButton(IDialogConstants.OK_ID).setEnabled(true);
return true;
}
use of com.cubrid.common.ui.query.tuner.QueryRecord in project cubrid-manager by CUBRID.
the class QueryRecordListComparator method createQueryCompareTab.
private void createQueryCompareTab(CTabFolder tabFolder) {
CTabItem item = new CTabItem(tabFolder, SWT.None | SWT.MULTI | SWT.V_SCROLL);
item.setText(Messages.tabItemQueryCompare);
Composite composite = new Composite(tabFolder, SWT.None);
composite.setLayout(new GridLayout());
item.setControl(composite);
Composite topComposite = new Composite(composite, SWT.None);
topComposite.setLayout(new FormLayout());
topComposite.setLayoutData(CommonUITool.createGridData(GridData.FILL_HORIZONTAL, 1, 1, -1, 25));
Composite leftTopComposite = new Composite(topComposite, SWT.None);
FormData leftTopData = new FormData();
leftTopData.top = new FormAttachment(0, 0);
leftTopData.bottom = new FormAttachment(100, 0);
leftTopData.left = new FormAttachment(0, 0);
leftTopData.right = new FormAttachment(50, 0);
leftTopComposite.setLayoutData(leftTopData);
leftTopComposite.setLayout(new GridLayout(2, false));
Composite rightTopComposite = new Composite(topComposite, SWT.None);
FormData rightTopData = new FormData();
rightTopData.top = new FormAttachment(0, 0);
rightTopData.bottom = new FormAttachment(100, 0);
rightTopData.left = new FormAttachment(50, 0);
rightTopData.right = new FormAttachment(100, 0);
rightTopComposite.setLayoutData(rightTopData);
rightTopComposite.setLayout(new GridLayout(5, false));
Label leftLabel = new Label(leftTopComposite, SWT.None);
leftLabel.setText(Messages.lblQuery);
leftLabel.setLayoutData(CommonUITool.createGridData(1, 1, -1, -1));
queryRecordLeftCombo = new Combo(leftTopComposite, SWT.READ_ONLY);
queryRecordLeftCombo.setLayoutData(CommonUITool.createGridData(1, 1, 200, -1));
queryRecordLeftCombo.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
displayCompareQueryRecord();
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
Label rightLabel = new Label(rightTopComposite, SWT.None);
rightLabel.setLayoutData(CommonUITool.createGridData(1, 1, -1, -1));
rightLabel.setText(Messages.lblQuery);
queryRecordRightCombo = new Combo(rightTopComposite, SWT.READ_ONLY);
queryRecordRightCombo.setLayoutData(CommonUITool.createGridData(1, 1, 200, -1));
queryRecordRightCombo.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
displayCompareQueryRecord();
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
ToolBar leftToolBar = new ToolBar(rightTopComposite, SWT.None);
leftToolBar.setLayoutData(CommonUITool.createGridData(1, 1, -1, -1));
compareItem = new ToolItem(leftToolBar, SWT.None);
compareItem.setImage(CommonUIPlugin.getImage("icons/action/refresh_tuning.png"));
compareItem.setToolTipText(Messages.itemTooltipCompare);
compareItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
public void widgetDefaultSelected(SelectionEvent e) {
displayCompareQueryRecord();
}
});
delQueryRecordItem = new ToolItem(leftToolBar, SWT.None);
delQueryRecordItem.setImage(CommonUIPlugin.getImage("icons/queryplan/delete_query.gif"));
delQueryRecordItem.setToolTipText(Messages.itemTooltipRemoveQuery);
delQueryRecordItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
public void widgetDefaultSelected(SelectionEvent e) {
if (CommonUITool.openConfirmBox(Messages.confirmDeleteQueryPlanOnTuner)) {
removeQueryRecord();
}
}
});
Composite folderPlaceComposite = new Composite(rightTopComposite, SWT.None);
folderPlaceComposite.setLayoutData(CommonUITool.createGridData(GridData.FILL_BOTH, 1, 1, -1, -1));
ToolBar rightToolBar = new ToolBar(rightTopComposite, SWT.None);
rightToolBar.setLayoutData(CommonUITool.createGridData(GridData.HORIZONTAL_ALIGN_END, 1, 1, -1, -1));
multiRunItem = new ToolItem(rightToolBar, SWT.None);
multiRunItem.setImage(CommonUIPlugin.getImage("icons/queryeditor/query_multi_run.png"));
multiRunItem.setToolTipText(Messages.itemTooltipRunAgain);
multiRunItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
public void widgetDefaultSelected(SelectionEvent e) {
QueryRecord leftRecord = getSelectedLeftQueryRecord();
QueryRecord rightRecord = getSelectedRightQueryRecord();
if (leftRecord == null || rightRecord == null) {
CommonUITool.openErrorBox(Messages.errCompareQueryEmpty);
return;
}
runQueryPlanAgain(leftRecord.getQuery(), rightRecord.getQuery());
}
});
sqlModeItem = new ToolItem(rightToolBar, SWT.CHECK);
sqlModeItem.setImage(CommonUIPlugin.getImage("icons/queryplan/sql_compare.gif"));
sqlModeItem.setToolTipText(Messages.itemTooltipQuery);
sqlModeItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
public void widgetDefaultSelected(SelectionEvent e) {
updateCompareDisplayModel(DISPLAY_SQL);
}
});
textModelItem = new ToolItem(rightToolBar, SWT.CHECK);
textModelItem.setImage(CommonUIPlugin.getImage("icons/queryeditor/qe_explain_mode_raw.png"));
textModelItem.setToolTipText(Messages.tooltip_qedit_explain_display_mode);
textModelItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
public void widgetDefaultSelected(SelectionEvent e) {
updateCompareDisplayModel(DISPLAY_TEXT);
}
});
treeModelItem = new ToolItem(rightToolBar, SWT.CHECK);
treeModelItem.setImage(CommonUIPlugin.getImage("icons/queryeditor/qe_explain_mode_tree.png"));
treeModelItem.setToolTipText(Messages.tooltip_qedit_explain_display_mode);
treeModelItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
public void widgetDefaultSelected(SelectionEvent e) {
updateCompareDisplayModel(DISPLAY_TREE);
}
});
graphModelItem = new ToolItem(rightToolBar, SWT.CHECK);
graphModelItem.setImage(CommonUIPlugin.getImage("icons/queryeditor/qe_explain_mode_graph.png"));
graphModelItem.setToolTipText(Messages.tooltip_qedit_explain_display_mode);
graphModelItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
public void widgetDefaultSelected(SelectionEvent e) {
updateCompareDisplayModel(DISPLAY_GRAPH);
}
});
Composite tablesComposite = new Composite(composite, SWT.None);
tablesComposite.setLayoutData(CommonUITool.createGridData(GridData.FILL_HORIZONTAL, 1, 1, -1, 60));
tablesComposite.setLayout(new FormLayout());
/*Left composite*/
Composite leftTableComposite = new Composite(tablesComposite, SWT.BORDER);
leftTableComposite.setLayout(new GridLayout());
FormData leftTableData = new FormData();
leftTableData.top = new FormAttachment(0, 0);
leftTableData.bottom = new FormAttachment(100, 0);
leftTableData.left = new FormAttachment(0, 0);
leftTableData.right = new FormAttachment(50, -2);
leftTableComposite.setLayoutData(leftTableData);
/*Right composite*/
Composite rightTableComposite = new Composite(tablesComposite, SWT.BORDER);
rightTableComposite.setLayout(new GridLayout());
FormData rightTabelData = new FormData();
rightTabelData.top = new FormAttachment(0, 0);
rightTabelData.bottom = new FormAttachment(100, 0);
rightTabelData.left = new FormAttachment(50, 2);
rightTabelData.right = new FormAttachment(100, 0);
rightTableComposite.setLayoutData(rightTabelData);
compareLeftTableViewer = new TableViewer(leftTableComposite, SWT.FULL_SELECTION);
compareLeftTableViewer.getTable().setLayoutData(CommonUITool.createGridData(GridData.FILL_BOTH, 1, 1, -1, -1));
compareLeftTableViewer.getTable().setHeaderVisible(true);
compareLeftTableViewer.getTable().setLinesVisible(false);
compareLeftTableViewer.setContentProvider(new QueryPlanContentProvider());
compareLeftTableViewer.setLabelProvider(new QueryPlanLabelPrivoder(compareLeftTableViewer, false));
TableColumn fetchColumnLeft = new TableColumn(compareLeftTableViewer.getTable(), SWT.None);
fetchColumnLeft.setText(Messages.columnFetches);
fetchColumnLeft.setWidth(60);
TableColumn dirtyColumnLeft = new TableColumn(compareLeftTableViewer.getTable(), SWT.None);
dirtyColumnLeft.setText(Messages.columnDirties);
dirtyColumnLeft.setWidth(60);
TableColumn ioReadColumnLeft = new TableColumn(compareLeftTableViewer.getTable(), SWT.None);
ioReadColumnLeft.setText(Messages.columnIORead);
ioReadColumnLeft.setWidth(80);
TableColumn ioWriteColumnLeft = new TableColumn(compareLeftTableViewer.getTable(), SWT.None);
ioWriteColumnLeft.setText(Messages.columnIOWrite);
ioWriteColumnLeft.setWidth(80);
TableColumn costColumnLeft = new TableColumn(compareLeftTableViewer.getTable(), SWT.None);
costColumnLeft.setText(Messages.columnCost);
costColumnLeft.setWidth(60);
compareRightTableViewer = new TableViewer(rightTableComposite, SWT.FULL_SELECTION);
compareRightTableViewer.getTable().setLayoutData(CommonUITool.createGridData(GridData.FILL_BOTH, 1, 1, -1, -1));
compareRightTableViewer.getTable().setHeaderVisible(true);
compareRightTableViewer.getTable().setLinesVisible(false);
compareRightTableViewer.setContentProvider(new QueryPlanContentProvider());
compareRightTableViewer.setLabelProvider(new QueryPlanLabelPrivoder(compareRightTableViewer, false));
TableColumn fetchColumnRight = new TableColumn(compareRightTableViewer.getTable(), SWT.None);
fetchColumnRight.setText(Messages.columnFetches);
fetchColumnRight.setWidth(60);
TableColumn dirtyColumnRight = new TableColumn(compareRightTableViewer.getTable(), SWT.None);
dirtyColumnRight.setText(Messages.columnDirties);
dirtyColumnRight.setWidth(60);
TableColumn ioReadColumnRight = new TableColumn(compareRightTableViewer.getTable(), SWT.None);
ioReadColumnRight.setText(Messages.columnIORead);
ioReadColumnRight.setWidth(80);
TableColumn ioWriteColumnRight = new TableColumn(compareRightTableViewer.getTable(), SWT.None);
ioWriteColumnRight.setText(Messages.columnIOWrite);
ioWriteColumnRight.setWidth(80);
TableColumn costColumnRight = new TableColumn(compareRightTableViewer.getTable(), SWT.None);
costColumnRight.setText(Messages.columnCost);
costColumnRight.setWidth(60);
queryPlanCompareSashForm = new SashForm(composite, SWT.VERTICAL);
queryPlanCompareSashForm.setLayoutData(CommonUITool.createGridData(GridData.FILL_BOTH, 1, 1, -1, -1));
queryPlanCompareSashForm.setBackground(SASH_COLOR);
queryPlanCompareSashForm.setLayout(new GridLayout());
queryPlanCompareSashForm.setLayoutData(CommonUITool.createGridData(GridData.FILL_BOTH, 1, 1, -1, -1));
Composite textMergeComposite = new Composite(queryPlanCompareSashForm, SWT.None);
textMergeComposite.setLayoutData(CommonUITool.createGridData(GridData.FILL_BOTH, 1, 1, -1, -1));
textMergeComposite.setLayout(new FillLayout());
textMergeConfig = new CompareConfiguration();
textMergeConfig.setProperty(CompareConfiguration.SHOW_PSEUDO_CONFLICTS, Boolean.FALSE);
textMergeConfig.setProperty(CompareConfiguration.IGNORE_WHITESPACE, Boolean.TRUE);
textMergeConfig.setLeftEditable(false);
textMergeConfig.setRightEditable(false);
textMergeViewer = new TextMergeViewer(textMergeComposite, SWT.BORDER, textMergeConfig);
DiffNode queryDiffNode = new DiffNode(null, Differencer.CHANGE, null, new TextCompareInput(""), new TextCompareInput(""));
textMergeViewer.setInput(queryDiffNode);
Composite compareQueryPlanComposite = new Composite(queryPlanCompareSashForm, SWT.None);
compareQueryPlanComposite.setLayoutData(CommonUITool.createGridData(GridData.FILL_BOTH, 1, 1, -1, -1));
compareQueryPlanComposite.setLayout(new FormLayout());
DatabaseInfo databaseInfo = database == null ? null : database.getDatabaseInfo();
leftComparePlanComposite = new QueryPlanComposite(compareQueryPlanComposite, SWT.BORDER, null, databaseInfo);
FormData leftData = new FormData();
leftData.top = new FormAttachment(0, 0);
leftData.bottom = new FormAttachment(100, 0);
leftData.left = new FormAttachment(0, 0);
leftData.right = new FormAttachment(50, 0);
leftComparePlanComposite.setLayoutData(leftData);
rightComparePlanComposite = new QueryPlanComposite(compareQueryPlanComposite, SWT.BORDER, null, databaseInfo);
FormData rightData = new FormData();
rightData.top = new FormAttachment(0, 0);
rightData.bottom = new FormAttachment(100, 0);
rightData.left = new FormAttachment(50, 0);
rightData.right = new FormAttachment(100, 0);
rightComparePlanComposite.setLayoutData(rightData);
queryPlanCompareSashForm.setWeights(new int[] { 100, 0 });
}
Aggregations