use of com.cubrid.common.ui.spi.progress.TaskExecutor in project cubrid-manager by CUBRID.
the class CreateViewDialog method execTask.
/**
* execute the task.
*
* @param buttonId int
* @param tasks ITask[]
* @param cancelable boolean
* @param shell Shell
*/
public void execTask(final int buttonId, final ITask[] tasks, boolean cancelable, final Shell shell) {
if (tasks == null || tasks.length == 0) {
return;
}
TaskExecutor taskExecutor = new TaskExecutor() {
public boolean exec(final IProgressMonitor monitor) {
if (monitor.isCanceled()) {
return false;
}
for (ITask task : tasks) {
if (task instanceof GetAllClassListTask) {
((GetAllClassListTask) task).getClassInfoTaskExcute();
} else if (task instanceof GetViewAllColumnsTask) {
((GetViewAllColumnsTask) task).getAllVclassListTaskExcute();
} else if (task instanceof GetAllAttrTask) {
((GetAllAttrTask) task).getAttrList();
} else {
task.execute();
}
final String msg = task.getErrorMsg();
if (openErrorBox(shell, msg, monitor)) {
return false;
}
if (monitor.isCanceled()) {
return false;
}
}
return true;
}
};
taskExecutor.setTask(tasks);
new ExecTaskWithProgress(taskExecutor).busyCursorWhile();
if (taskExecutor.isSuccess() && buttonId > 0) {
setReturnCode(buttonId);
close();
}
}
use of com.cubrid.common.ui.spi.progress.TaskExecutor in project cubrid-manager by CUBRID.
the class ERSchemaEditor method compareTableSchemas.
public void compareTableSchemas(final String modelName, final Map<String, TableSchema> tableSchema, final Map<String, SchemaInfo> 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) {
CubridDatabase database = erSchema.getCubridDatabase();
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);
wrappedDatabaseInfo.addSchemaInfos(schemaInfos);
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);
input.add(new TableSchemaCompareModelInputLazy(model));
success = true;
}
};
TaskExecutor taskExecutor = new CommonTaskExec(com.cubrid.common.ui.common.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) {
}
}
}
use of com.cubrid.common.ui.spi.progress.TaskExecutor in project cubrid-manager by CUBRID.
the class UserManagementWizard method performFinish.
/**
* Called when user clicks Finish
*
* @return boolean
*/
public boolean performFinish() {
final String userId = generalInfoPage.getUserId();
final String password = generalInfoPage.getPassword();
final String dbCreationAuth = generalInfoPage.getDbCreationAuth();
final String brokerAuth = generalInfoPage.getBrokerAuth();
final String statusMonitorAuth = generalInfoPage.getStatusMonitorAuth();
final List<DatabaseInfo> authDatabaselist = new ArrayList<DatabaseInfo>();
final Shell shell = getShell();
final String taskName = Messages.bind(Messages.updateUserTaskName, userId);
TaskExecutor taskExcutor = new TaskExecutor() {
public boolean exec(final IProgressMonitor monitor) {
if (monitor.isCanceled()) {
return false;
}
monitor.beginTask(taskName, IProgressMonitor.UNKNOWN);
for (ITask task : taskList) {
task.execute();
final String msg = task.getErrorMsg();
if (openErrorBox(shell, msg, monitor)) {
return false;
}
if (monitor.isCanceled()) {
return false;
}
}
ServerUserInfo loginedUserInfo = server.getServerInfo().getLoginedUserInfo();
if (userInfo == null) {
userInfo = new ServerUserInfo(userId, password);
} else {
userInfo.setPassword(password);
}
if (userInfo.getUserName().equals(loginedUserInfo.getUserName())) {
loginedUserInfo.setPassword(password);
}
if (!userInfo.isAdmin()) {
if (dbCreationAuth.equals(DbCreateAuthType.AUTH_NONE.getText())) {
userInfo.setDbCreateAuthType(DbCreateAuthType.AUTH_NONE);
} else if (dbCreationAuth.equals(DbCreateAuthType.AUTH_ADMIN.getText())) {
userInfo.setDbCreateAuthType(DbCreateAuthType.AUTH_ADMIN);
}
if (brokerAuth.equals(CasAuthType.AUTH_NONE.getText())) {
userInfo.setCasAuth(CasAuthType.AUTH_NONE);
} else if (brokerAuth.equals(CasAuthType.AUTH_ADMIN.getText())) {
userInfo.setCasAuth(CasAuthType.AUTH_ADMIN);
} else if (brokerAuth.equals(CasAuthType.AUTH_MONITOR.getText())) {
userInfo.setCasAuth(CasAuthType.AUTH_MONITOR);
}
if (statusMonitorAuth.equals(StatusMonitorAuthType.AUTH_NONE.getText())) {
userInfo.setStatusMonitorAuth(StatusMonitorAuthType.AUTH_NONE);
} else if (statusMonitorAuth.equals(StatusMonitorAuthType.AUTH_ADMIN.getText())) {
userInfo.setStatusMonitorAuth(StatusMonitorAuthType.AUTH_ADMIN);
} else if (statusMonitorAuth.equals(StatusMonitorAuthType.AUTH_MONITOR.getText())) {
userInfo.setStatusMonitorAuth(StatusMonitorAuthType.AUTH_MONITOR);
}
userInfo.removeAllDatabaseInfo();
userInfo.setDatabaseInfoList(authDatabaselist);
}
return true;
}
};
if (userInfo != null && userInfo.isAdmin()) {
ChangeCMUserPasswordTask changeCMUserPasswordTask = new ChangeCMUserPasswordTask(server.getServerInfo());
changeCMUserPasswordTask.setUserName(userId);
changeCMUserPasswordTask.setPassword(password);
taskExcutor.addTask(changeCMUserPasswordTask);
} else if (userInfo != null && !userInfo.isAdmin()) {
DeleteCMUserTask deleteCMUserTask = new DeleteCMUserTask(server.getServerInfo());
deleteCMUserTask.setUserId(userId);
taskExcutor.addTask(deleteCMUserTask);
}
if (userInfo == null || !userInfo.isAdmin()) {
AddCMUserTask addCMUserTask = new AddCMUserTask(server.getServerInfo());
addCMUserTask.setUserId(userId);
addCMUserTask.setPassword(password);
addCMUserTask.setDbcreate(dbCreationAuth);
addCMUserTask.setCasAuth(brokerAuth);
addCMUserTask.setStautsMonitorAuth(statusMonitorAuth);
taskExcutor.addTask(addCMUserTask);
}
ServerType serverType = server.getServerInfo().getServerType();
if ((userInfo == null || !userInfo.isAdmin()) && (serverType == ServerType.BOTH || serverType == ServerType.DATABASE)) {
List<Map<String, Object>> dbAuthInfoList = authDbInfoPage.getDbAuthInfoList();
List<String> dbNameList = new ArrayList<String>();
List<String> dbUserList = new ArrayList<String>();
List<String> dbPasswordList = new ArrayList<String>();
List<String> dbBrokerPortList = new ArrayList<String>();
if (dbAuthInfoList != null && !dbAuthInfoList.isEmpty()) {
int size = dbAuthInfoList.size();
for (int i = 0; i < size; i++) {
Map<String, Object> map = dbAuthInfoList.get(i);
String allowConnectedStr = (String) map.get("1");
if ("Yes".equals(allowConnectedStr)) {
String dbName = (String) map.get("0");
dbNameList.add(dbName);
String dbUser = (String) map.get("2");
dbUserList.add(dbUser);
String brokerIP = (String) map.get("3");
String brokerPort = (String) map.get("4");
String port = "";
if (brokerPort.matches("^\\d+$")) {
port = brokerPort;
} else {
port = brokerPort.substring(brokerPort.indexOf("[") + 1, brokerPort.indexOf("/"));
}
dbBrokerPortList.add(brokerIP + "," + port);
dbPasswordList.add("");
DatabaseInfo databaseInfo = new DatabaseInfo(dbName, server.getServerInfo());
databaseInfo.setBrokerPort(brokerPort);
databaseInfo.setBrokerIP(brokerIP);
DbUserInfo dbUserInfo = new DbUserInfo();
dbUserInfo.setName(dbUser);
databaseInfo.setAuthLoginedDbUserInfo(dbUserInfo);
authDatabaselist.add(databaseInfo);
}
}
}
String[] dbNameArr = new String[dbNameList.size()];
String[] dbUserArr = new String[dbUserList.size()];
String[] dbPasswordArr = new String[dbPasswordList.size()];
String[] dbBrokerPortArr = new String[dbBrokerPortList.size()];
UpdateCMUserTask updateTask = new UpdateCMUserTask(server.getServerInfo());
updateTask.setCmUserName(userId);
updateTask.setDbAuth(dbNameList.toArray(dbNameArr), dbUserList.toArray(dbUserArr), dbPasswordList.toArray(dbPasswordArr), dbBrokerPortList.toArray(dbBrokerPortArr));
updateTask.setCasAuth(brokerAuth);
updateTask.setDbCreator(dbCreationAuth);
updateTask.setStatusMonitorAuth(statusMonitorAuth);
taskExcutor.addTask(updateTask);
}
new ExecTaskWithProgress(taskExcutor).exec(true, true);
return taskExcutor.isSuccess();
}
use of com.cubrid.common.ui.spi.progress.TaskExecutor in project cubrid-manager by CUBRID.
the class LoginQueryEditDialog method buttonPressed.
/**
* @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
* @param buttonId the id of the button that was pressed (see
* <code>IDialogConstants.*_ID</code> constants)
*/
protected void buttonPressed(int buttonId) {
if (buttonId == IDialogConstants.OK_ID || buttonId == TEST_CONNECT_ID) {
String brokerIp = connectionComp.getBrokerIpText().getText();
CubridServer cubridServer = DatabaseNavigatorMenu.SELF_DATABASE.getServer();
ServerInfo serverInfo = new ServerInfo();
serverInfo.setServerName(DatabaseNavigatorMenu.SELF_DATABASE_ID);
serverInfo.setHostAddress(brokerIp);
cubridServer.setServerInfo(serverInfo);
String databaseName = connectionComp.getDatabaseCombo().getText();
DatabaseInfo dbInfo = new DatabaseInfo(databaseName, cubridServer.getServerInfo());
dbInfo.setBrokerIP(brokerIp);
dbInfo.setBrokerPort(connectionComp.getBrokerPortCombo().getText());
dbInfo.getServerInfo().setJdbcDriverVersion(connectionComp.getJdbcCombo().getText());
String userName = connectionComp.getUserNameText().getText();
String password = connectionComp.getPasswordText().getText();
DbUserInfo userInfo = new DbUserInfo();
userInfo.setDbName(databaseName);
userInfo.setName(userName);
userInfo.setNoEncryptPassword(password);
dbInfo.setAuthLoginedDbUserInfo(userInfo);
int currentShardId = connectionComp.getCurShardId();
dbInfo.setCurrentShardId(currentShardId);
String charset = connectionComp.getCharsetCombo().getText();
dbInfo.setCharSet(charset);
boolean isShard = connectionComp.getBtnShard().getSelection();
dbInfo.setShard(isShard);
boolean sureCharset = CommonUITool.openConfirmBox(Messages.bind(com.cubrid.cubridmanager.ui.host.Messages.msgConfirmCharset, charset));
if (!sureCharset) {
connectionComp.getCharsetCombo().setFocus();
return;
}
TaskExecutor taskExcutor = new ConnectDatabaseExecutor(dbInfo);
new ExecTaskWithProgress(taskExcutor).exec();
if (!taskExcutor.isSuccess()) {
return;
}
if (buttonId == TEST_CONNECT_ID) {
CommonUITool.openInformationBox(com.cubrid.cubridmanager.ui.common.Messages.titleSuccess, com.cubrid.cubridmanager.ui.host.Messages.msgTestConnSuccess);
return;
}
dbInfo.setLogined(true);
dbInfo.setRunningType(DbRunningType.CS);
DatabaseNavigatorMenu.SELF_DATABASE.setDatabaseInfo(dbInfo);
}
super.buttonPressed(buttonId);
}
use of com.cubrid.common.ui.spi.progress.TaskExecutor in project cubrid-manager by CUBRID.
the class StartDatabaseAction method doRun.
public void doRun(ISchemaNode[] schemaArray) {
if (schemaArray == null || schemaArray.length == 0) {
return;
}
List<ISchemaNode> startList = new ArrayList<ISchemaNode>();
/*Judge start job is running*/
for (ISchemaNode node : schemaArray) {
if (!isSupported(node)) {
setEnabled(false);
return;
}
CubridDatabase database = node.getDatabase();
final JobFamily jobFamily = new JobFamily();
String serverName = database.getServer().getName();
String dbName = database.getName();
jobFamily.setServerName(serverName);
jobFamily.setDbName(dbName);
Job[] jobs = Job.getJobManager().find(jobFamily);
if (jobs.length > 0) {
CommonUITool.openWarningBox(Messages.bind(Messages.msgStartDbWithJob, dbName));
continue;
}
startList.add(database);
}
CubridNavigatorView navigationView = CubridNavigatorView.findNavigationView();
if (navigationView != null && startList.size() > 0) {
final TreeViewer treeViewer = navigationView.getViewer();
TaskExecutor taskExcutor = new TaskExecutor() {
public boolean exec(final IProgressMonitor monitor) {
Display display = Display.getDefault();
if (monitor.isCanceled()) {
return false;
}
for (int i = 0; i < taskList.size(); i++) {
ITask task = taskList.get(i);
final CubridDatabase database = (CubridDatabase) task.getData("dbName");
if (!isSupported(database)) {
continue;
}
monitor.subTask(Messages.bind(Messages.startDbTaskName, database.getName()));
task.execute();
if (openErrorBox(shell, task.getErrorMsg(), monitor) || monitor.isCanceled()) {
return false;
}
openWarningBox(shell, task.getWarningMsg(), monitor);
if (monitor.isCanceled()) {
return false;
}
database.removeAllChild();
if (database.getLoader() != null) {
database.getLoader().setLoaded(false);
}
database.setRunningType(DbRunningType.CS);
display.syncExec(new Runnable() {
public void run() {
treeViewer.refresh(database, true);
}
});
if (monitor.isCanceled()) {
return false;
}
}
return true;
}
};
for (ISchemaNode schemaNode : startList) {
CubridDatabase database = schemaNode.getDatabase();
if (!isSupported(database)) {
setEnabled(false);
return;
}
ServerInfo serverInfo = database.getServer().getServerInfo();
CommonUpdateTask task = new CommonUpdateTask(CommonTaskName.START_DB_TASK_NAME, serverInfo, CommonSendMsg.getCommonDatabaseSendMsg());
task.setDbName(database.getLabel());
task.putData("dbName", database);
taskExcutor.addTask(task);
}
new ExecTaskWithProgress(taskExcutor).busyCursorWhile();
ActionManager.getInstance().fireSelectionChanged(getSelection());
}
}
Aggregations