use of org.eclipse.compare.structuremergeviewer.DiffNode in project cubrid-manager by CUBRID.
the class TableSchemaCompareComposite method createSchemaViewer.
public void createSchemaViewer(Composite parent) {
String sourceSchema = getTableSchema(sourceDB, compSchemaModel.getSourceSchemas(), l_tableSchema.getName());
String targetSchema = null;
if (targetDB.isVirtual()) {
targetSchema = r_tableSchema.getSchemaInfo();
} else {
targetSchema = getTableSchema(targetDB, compSchemaModel.getTargetSchemas(), r_tableSchema.getName());
}
if (targetSchema == null)
targetSchema = "";
String source_tableName = Messages.statusMissing;
String table_Name = "";
if (StringUtil.isNotEmpty(sourceSchema)) {
source_tableName = l_tableSchema.getName();
table_Name = source_tableName;
}
String target_tableName = Messages.statusMissing;
if (StringUtil.isNotEmpty(targetSchema)) {
target_tableName = r_tableSchema.getName();
table_Name = target_tableName;
}
CompareConfiguration config = new CompareConfiguration();
config.setProperty(CompareConfiguration.SHOW_PSEUDO_CONFLICTS, Boolean.FALSE);
config.setProperty(CompareConfiguration.IGNORE_WHITESPACE, Boolean.TRUE);
config.setLeftEditable(false);
String sourceDbName = "";
if (sourceDB != null && sourceDB.getDatabaseInfo() != null && sourceDB.getDatabaseInfo().getBrokerIP() != null && sourceDB.getName() != null) {
sourceDbName += sourceDB.getDatabaseInfo().getBrokerIP() + "@" + sourceDB.getName() + " : ";
}
config.setLeftLabel(sourceDbName + source_tableName);
config.setRightEditable(false);
String targetDbName = "";
if (targetDB != null && targetDB.getDatabaseInfo() != null && targetDB.getDatabaseInfo().getBrokerIP() != null && targetDB.getName() != null) {
targetDbName += targetDB.getDatabaseInfo().getBrokerIP() + "@" + targetDB.getName() + " : ";
}
config.setRightLabel(targetDbName + target_tableName);
DiffNode schemaDiffNode = new DiffNode(null, Differencer.CHANGE, null, new TextCompareInput(sourceSchema), new TextCompareInput(targetSchema));
textMergeViewer = new TextMergeViewer(parent, config);
textMergeViewer.setInput(schemaDiffNode);
if (!textMergeViewerMap.containsKey(table_Name)) {
textMergeViewerMap.put(table_Name, textMergeViewer);
}
}
use of org.eclipse.compare.structuremergeviewer.DiffNode in project cubrid-manager by CUBRID.
the class TuneModeResultComposite method displayComparePlan.
/**
* Display compare query plan
*
* @param leftModel
* @param rightModel
*/
private void displayComparePlan(TuneModeModel leftModel, TuneModeModel rightModel) {
String leftQuery = "";
String rightQuery = "";
textMergeConfig.setLeftLabel(Messages.lblTuneModeOrgSql);
if (leftModel != null) {
leftQuery = leftModel.getQuery();
textMergeConfig.setLeftLabel(Messages.lblTuneModeOrgSql);
compareLeftTableViewer.setInput(leftModel);
compareLeftTableViewer.refresh();
leftComparePlanComposite.setQueryRecord(leftModel.getQueryPlan());
} else {
compareLeftTableViewer.setInput(new ArrayList<TuneModeModel>());
compareLeftTableViewer.refresh();
leftComparePlanComposite.setQueryRecord(null);
}
textMergeConfig.setRightLabel(Messages.lblTuneModeNewSql);
if (rightModel != null) {
rightQuery = rightModel.getQuery();
compareRightTableViewer.setInput(rightModel);
compareRightTableViewer.refresh();
rightComparePlanComposite.setQueryRecord(rightModel.getQueryPlan());
} else {
compareRightTableViewer.setInput(new ArrayList<TuneModeModel>());
compareRightTableViewer.refresh();
rightComparePlanComposite.setQueryRecord(null);
}
DiffNode queryDiffNode = new DiffNode(null, Differencer.CHANGE, null, new TextCompareInput(leftQuery), new TextCompareInput(rightQuery));
textMergeViewer.setInput(queryDiffNode);
}
use of org.eclipse.compare.structuremergeviewer.DiffNode 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 org.eclipse.compare.structuremergeviewer.DiffNode 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 });
}
use of org.eclipse.compare.structuremergeviewer.DiffNode in project cubrid-manager by CUBRID.
the class TableSchemaCompareInfoPart method showEntireSchemaCompareEditor.
/**
* Display entire schemas comparison
*/
private void showEntireSchemaCompareEditor(String leftDatabase, String rightDatabase, final String leftContent, final String rightContent) {
CompareConfiguration config = new CompareConfiguration();
config.setProperty(CompareConfiguration.SHOW_PSEUDO_CONFLICTS, Boolean.FALSE);
config.setProperty(CompareConfiguration.IGNORE_WHITESPACE, Boolean.TRUE);
config.setLeftEditable(false);
config.setLeftLabel(leftDatabase);
config.setRightEditable(false);
config.setRightLabel(rightDatabase);
CompareEditorInput editorInput = new CompareEditorInput(config) {
protected Object prepareInput(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
return new DiffNode(null, Differencer.CHANGE, null, new TextCompareInput(leftContent), new TextCompareInput(rightContent));
}
public void saveChanges(IProgressMonitor pm) throws CoreException {
super.saveChanges(pm);
}
};
editorInput.setTitle(Messages.entireDbSchemaComparison);
CompareUI.openCompareEditor(editorInput);
}
Aggregations