use of com.cubrid.common.core.task.ITask 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.core.task.ITask 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.core.task.ITask in project cubrid-manager by CUBRID.
the class CubridNodeLoader method monitorCancel.
/**
*
* Monitoring cancel operation
*
* @param monitor IProgressMonitor
* @param tasks ITask[]
*/
public void monitorCancel(final IProgressMonitor monitor, final ITask[] tasks) {
String name = getClass().getName() == null ? "loading" : getClass().getName();
Thread thread = new Thread(name + " monitoring thread") {
public void run() {
while (!monitor.isCanceled() && !isLoaded()) {
try {
sleep(WAIT_TIME);
} catch (InterruptedException e) {
}
}
if (monitor.isCanceled() && tasks != null && tasks.length > 0) {
for (ITask task : tasks) {
if (task != null) {
task.cancel();
}
}
}
}
};
thread.start();
}
use of com.cubrid.common.core.task.ITask in project cubrid-manager by CUBRID.
the class ShardsTaskFactory method generateTasks.
public ITask[] generateTasks() {
ITask[] tasks = new ITask[deletes.size() + updates.size()];
List<ITask> taskList = new ArrayList<ITask>();
// if the shard has changed the name?
for (Shard model : updates) {
taskList.add(new SaveShardConfTask(this.serverInfo, model.getShardConnectionFile()));
taskList.add(new SaveShardConfTask(this.serverInfo, model.getShardKeysFile()));
}
// Then, update shard.conf file.
taskList.add(new SaveShardConfTask(this.serverInfo, shards));
// Finally, delete the connection and key files.
for (Shard model : deletes) {
taskList.add(new DeleteShardFileTask(this.serverInfo, model.getName() + "_connection.txt"));
taskList.add(new DeleteShardFileTask(this.serverInfo, model.getName() + "_key.txt"));
}
for (String deleteFileName : deleteFileNames) {
taskList.add(new DeleteShardFileTask(this.serverInfo, deleteFileName + "_connection.txt"));
taskList.add(new DeleteShardFileTask(this.serverInfo, deleteFileName + "_key.txt"));
}
tasks = taskList.toArray(tasks);
return tasks;
}
use of com.cubrid.common.core.task.ITask 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();
}
Aggregations