use of com.cubrid.common.ui.spi.progress.ExecTaskWithProgress in project cubrid-manager by CUBRID.
the class ExportConnectionUtil method buttonPressed.
/**
* Call this method when the button in button bar is pressed
*
* @param buttonId the button id
*/
protected void buttonPressed(int buttonId) {
if (buttonId == COPY_CLIPBOARD_ID) {
List<CubridDatabase> databaseList = getCheckedDatabases();
if (databaseList.size() <= 0) {
CommonUITool.openErrorBox(getShell(), Messages.expConDialogCopyErrorMsg);
return;
}
StringBuilder sb = new StringBuilder();
for (CubridDatabase db : databaseList) {
if (sb.length() > 0) {
sb.append(StringUtil.NEWLINE);
}
sb.append(NodeUtil.getJavaConnectionUrl(db.getDatabaseInfo()));
}
TextTransfer textTransfer = TextTransfer.getInstance();
Clipboard clipboard = CommonUITool.getClipboard();
clipboard.setContents(new Object[] { sb.toString() }, new Transfer[] { textTransfer });
CommonUITool.openInformationBox(Messages.titleSuccess, Messages.expConDialogCopySucessMsg);
return;
} else if (buttonId == IDialogConstants.OK_ID) {
if (!verify()) {
return;
}
FileDialog dialog = new FileDialog(getShell(), SWT.SAVE | SWT.APPLICATION_MODAL);
String[] filterExtensions = new String[] { "*.xls" };
//Windows wild cards
dialog.setFilterExtensions(filterExtensions);
String fileName = dialog.open();
if (fileName == null) {
return;
}
/*Process the file extensions*/
if (!ExportConnectionUtil.isTxtFile(fileName) && !ExportConnectionUtil.isXlsFile(fileName) && !ExportConnectionUtil.isXlsxFile(fileName)) {
int filterIndex = dialog.getFilterIndex();
if (filterIndex == 0 || filterIndex == 2) {
fileName = fileName + ".xls";
} else if (filterIndex == 1) {
fileName = fileName + ".txt";
}
}
TaskExecutor taskExec = new CommonTaskExec(Messages.nameExportConnectionTask);
File file = new File(fileName);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
LOGGER.error("Create file failed:" + e.getMessage());
}
}
ExportConnectionsTask task = new ExportConnectionsTask(getCheckedDatabases(), file);
taskExec.addTask(task);
new ExecTaskWithProgress(taskExec).busyCursorWhile();
if (taskExec.isSuccess()) {
CommonUITool.openInformationBox(Messages.titleSuccess, Messages.msgConnectionUrlExported);
super.okPressed();
}
}
super.buttonPressed(buttonId);
}
use of com.cubrid.common.ui.spi.progress.ExecTaskWithProgress in project cubrid-manager by CUBRID.
the class DataCompareEditorPart method doRefresh.
private void doRefresh(boolean collectRecordCount) {
// FIXME logic code move to core module
Map<String, DataCompare> dataCompareMap = new HashMap<String, DataCompare>();
if (compareList != null) {
for (DataCompare dataCompare : compareList) {
dataCompareMap.put(dataCompare.getTableName(), dataCompare);
}
}
DatabaseInfo sourceDB = ((DataCompareEditorInput) getEditorInput()).getSourceDB();
DatabaseInfo targetDB = ((DataCompareEditorInput) getEditorInput()).getTargetDB();
if (logFileBaseName != null) {
FileUtil.delete(logFileBasePath + File.separatorChar + logFileBaseName);
logFileBaseName = null;
}
logFileBaseName = sourceDB.getDbName() + "_" + System.currentTimeMillis();
GetAllSchemaTask sourceSchemaTask = new GetAllSchemaTask(sourceDB);
GetAllSchemaTask targetSchemaTask = new GetAllSchemaTask(targetDB);
TaskExecutor taskExecutor = new CommonTaskExec(Messages.loadEntireSchemaComparison);
taskExecutor.addTask(sourceSchemaTask);
taskExecutor.addTask(targetSchemaTask);
new ExecTaskWithProgress(taskExecutor).exec();
if (taskExecutor.isSuccess()) {
synchronized (compareList) {
compareList.clear();
Set<String> partitions = new HashSet<String>();
List<SchemaInfo> sourceList = sourceSchemaTask.getSchemaList();
List<SchemaInfo> targetList = targetSchemaTask.getSchemaList();
for (SchemaInfo schemaInfo : sourceList) {
if (schemaInfo.getPartitionList() != null) {
for (PartitionInfo partition : schemaInfo.getPartitionList()) {
String partClassName = partition.getPartitionClassName();
partitions.add(partClassName);
}
}
}
for (SchemaInfo schemaInfo : sourceList) {
DataCompare dataCompare = dataCompareMap.get(schemaInfo.getClassname());
if (dataCompare == null) {
dataCompare = new DataCompare();
dataCompare.setTableName(schemaInfo.getClassname());
dataCompare.setSchemaInfo(schemaInfo);
dataCompare.setRefreshed(false);
} else {
dataCompare.setMatches(0);
dataCompare.setNotExists(0);
dataCompare.setNotMatches(0);
dataCompare.setProgressPosition(0);
}
if (schemaInfo.hasPK() && !partitions.contains(schemaInfo.getClassname())) {
SchemaInfo targetSchemeInfo = getSchemeInfoByName(schemaInfo.getClassname(), targetList);
boolean isSameSchema = canCompareData(schemaInfo, targetSchemeInfo);
dataCompare.setSameSchema(isSameSchema);
compareList.add(dataCompare);
}
}
Collections.sort(compareList, new Comparator<DataCompare>() {
public int compare(DataCompare o1, DataCompare o2) {
if (o1 == null || o1.getTableName() == null) {
return -1;
} else if (o2 == null || o2.getTableName() == null) {
return 1;
}
return o1.getTableName().compareToIgnoreCase(o2.getTableName());
}
});
}
compareTableViewer.refresh();
}
if (!collectRecordCount) {
return;
}
totalRecords = 0;
completedRecords = 0;
refreshRecordCount();
refreshedRecordCounts = true;
}
use of com.cubrid.common.ui.spi.progress.ExecTaskWithProgress in project cubrid-manager by CUBRID.
the class EditProcedureAction method run.
/**
* Open the EditProcedureDialog and edit procedure
*/
public void run() {
// FIXME logic code move to core module
Object[] objArr = this.getSelectedObj();
if (!isSupported(objArr)) {
this.setEnabled(false);
return;
}
Shell shell = getShell();
CubridDatabase database = null;
ISchemaNode node = null;
if (objArr[0] instanceof ISchemaNode && NodeType.STORED_PROCEDURE_PROCEDURE.equals(((ISchemaNode) objArr[0]).getType())) {
node = (ISchemaNode) objArr[0];
database = node.getDatabase();
}
if (database == null || node == null) {
CommonUITool.openErrorBox(shell, Messages.errSelectProcedure);
return;
}
final GetSPInfoListTask task = new GetSPInfoListTask(database.getDatabaseInfo());
task.setSpName(node.getName());
TaskExecutor taskExcutor = new CommonTaskExec(null);
taskExcutor.addTask(task);
new ExecTaskWithProgress(taskExcutor).busyCursorWhile();
if (!taskExcutor.isSuccess()) {
return;
}
List<SPInfo> list = task.getSPInfoList();
if (list.size() > 1) {
CommonUITool.openErrorBox(shell, Messages.errDuplicateName);
return;
}
if (list.isEmpty()) {
CommonUITool.openErrorBox(shell, Messages.errNotExistName);
return;
}
EditProcedureDialog dlg = new EditProcedureDialog(shell);
dlg.setDatabase(database);
dlg.setNewFlag(false);
dlg.setSpInfo(list.get(0));
if (dlg.open() == IDialogConstants.OK_ID) {
ActionManager.getInstance().fireSelectionChanged(getSelection());
}
}
use of com.cubrid.common.ui.spi.progress.ExecTaskWithProgress in project cubrid-manager by CUBRID.
the class TableSchemaCompareInfoPart method showTopButtons.
private void showTopButtons() {
final Composite buttonsComposite = new Composite(topSash, SWT.NONE);
buttonsComposite.setLayout(new GridLayout(5, false));
buttonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
if (compareRealDatabase) {
showTopButtonsForRealDatabase(buttonsComposite);
}
final Button viewComparisonBtn = new Button(buttonsComposite, SWT.NONE);
viewComparisonBtn.setText(Messages.viewEntireSchemaComparison);
viewComparisonBtn.setToolTipText(Messages.aboutViewEntireSchemaComparison);
viewComparisonBtn.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent event) {
final List<String> sourceDBSchema = new ArrayList<String>();
final List<String> targetDBSchema = new ArrayList<String>();
viewComparisonBtn.setEnabled(false);
ITask reportBugTask = new AbstractUITask() {
public void cancel() {
}
public void finish() {
}
public boolean isCancel() {
return false;
}
public boolean isSuccess() {
return true;
}
public void execute(IProgressMonitor monitor) {
Map<String, SchemaInfo> source = compareModel.getSourceSchemas();
Map<String, SchemaInfo> target = compareModel.getTargetSchemas();
List<SchemaInfo> commonTables = new LinkedList<SchemaInfo>();
for (SchemaInfo sourceTable : source.values()) {
if (target.containsKey(sourceTable.getClassname())) {
commonTables.add(sourceTable);
}
}
Collections.sort(commonTables);
String s_schema = getDBSchema(sourceDB, source, commonTables);
sourceDBSchema.add(s_schema);
String t_schema = getDBSchema(targetDB, target, commonTables);
targetDBSchema.add(t_schema);
}
};
TaskExecutor taskExecutor = new CommonTaskExec(Messages.loadEntireSchemaComparison);
taskExecutor.addTask(reportBugTask);
new ExecTaskWithProgress(taskExecutor).exec();
if (taskExecutor.isSuccess()) {
String targetDbName = "";
if (targetDB.isVirtual()) {
targetDbName = Messages.targetDatabase;
if (StringUtil.isNotEmpty(targetDB.getName())) {
targetDbName += " : " + targetDB.getName();
}
} else {
targetDbName = Messages.targetDatabase + ": " + targetDB.getDatabaseInfo().getBrokerIP() + "@" + targetDB.getName();
}
String sourceBrokerIp = sourceDB.getDatabaseInfo().getBrokerIP();
String sourceDbName = sourceDB.getName();
showEntireSchemaCompareEditor(Messages.sourceDatabase + ": " + sourceBrokerIp + "@" + sourceDbName, Messages.targetDatabase + ": " + targetDbName, sourceDBSchema.get(0), targetDBSchema.get(0));
}
viewComparisonBtn.setEnabled(true);
}
});
Button copyAlterFromSourceBtn = new Button(buttonsComposite, SWT.NONE);
copyAlterFromSourceBtn.setText(Messages.copyWholeSchemaAlter + "[" + Messages.fromSourceToTargetLabel + "]");
copyAlterFromSourceBtn.setToolTipText(Messages.aboutCopyAlterSource);
copyAlterFromSourceBtn.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent event) {
copyTableAlterDDL(sourceDB, targetDB, true);
}
});
Button copyAlterFromTargetBtn = new Button(buttonsComposite, SWT.NONE);
copyAlterFromTargetBtn.setText(Messages.copyWholeSchemaAlter + "[" + Messages.fromTargetToSourceLabel + "]");
copyAlterFromTargetBtn.setToolTipText(Messages.aboutCopyAlterTarget);
copyAlterFromTargetBtn.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent event) {
copyTableAlterDDL(targetDB, sourceDB, false);
}
});
}
use of com.cubrid.common.ui.spi.progress.ExecTaskWithProgress in project cubrid-manager by CUBRID.
the class ImportERwinAction method createCompareModel.
/**
*
* @param tableSchema
* @param schemaInfos
*/
private void createCompareModel(final String modelName, final Map<String, TableSchema> tableSchema, final Map<String, ERWinSchemaInfo> schemaInfos) {
final List<TableSchemaCompareModelInputLazy> input = new ArrayList<TableSchemaCompareModelInputLazy>();
ITask reportBugTask = new AbstractUITask() {
private boolean success = false;
public void cancel() {
}
public void finish() {
}
public boolean isCancel() {
return false;
}
public boolean isSuccess() {
return success;
}
public void execute(IProgressMonitor monitor) {
List<TableDetailInfo> leftDbTableInfoList = TableSchemaCompareUtil.getTableInfoList(database);
final CubridDatabase virtualDb = new CubridDatabase(modelName, modelName);
virtualDb.setVirtual(true);
DatabaseInfo info = database.getDatabaseInfo();
virtualDb.setDatabaseInfo(info);
WrappedDatabaseInfo wrappedDatabaseInfo = new WrappedDatabaseInfo(info);
Map<String, SchemaInfo> dbSchemaInfos = new HashMap<String, SchemaInfo>();
Collection<ERWinSchemaInfo> erwinSchemas = schemaInfos.values();
for (ERWinSchemaInfo erwinSchema : erwinSchemas) {
SchemaInfo schemaInfo = (SchemaInfo) erwinSchema;
dbSchemaInfos.put(schemaInfo.getClassname(), schemaInfo);
}
wrappedDatabaseInfo.addSchemaInfos(dbSchemaInfos);
wrappedDatabaseInfo.addTableSchemas(tableSchema);
ERXmlDatabaseInfoMapper.addWrappedDatabaseInfo(info, wrappedDatabaseInfo);
TableSchemaModel leftModel = TableSchemaCompareUtil.createTableSchemaModel(leftDbTableInfoList);
TableSchemaModel rightModel = new TableSchemaModel();
rightModel.getTableSchemaMap().putAll(tableSchema);
TableSchemaComparator comparator = new TableSchemaComparator(database, virtualDb);
TableSchemaCompareModel model = comparator.compare(leftModel, rightModel);
model.setSourceDB(database);
model.setTargetDB(virtualDb);
// TODO rename class to ErwinCompareModelInput
input.add(new TableSchemaCompareModelInputLazy(model));
success = true;
}
};
TaskExecutor taskExecutor = new CommonTaskExec(Messages.titleSchemaComparison);
taskExecutor.addTask(reportBugTask);
new ExecTaskWithProgress(taskExecutor).exec();
if (taskExecutor.isSuccess()) {
try {
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input.get(0), TableSchemaCompareInfoPart.ID);
} catch (Exception e) {
}
}
}
Aggregations