use of com.cubrid.cubridmanager.ui.cubrid.database.dialog.UnloadDatabaseDialog in project cubrid-manager by CUBRID.
the class UnloadDatabaseAction method run.
public void run() {
Object[] obj = this.getSelectedObj();
if (!isSupported(obj[0])) {
setEnabled(false);
return;
}
ISchemaNode node = (ISchemaNode) obj[0];
final CubridDatabase database = node.getDatabase();
final UnloadDatabaseDialog dialog = new UnloadDatabaseDialog(getShell());
dialog.setDatabase(database);
final Shell shell = getShell();
TaskExecutor taskExcutor = new TaskExecutor() {
public boolean exec(final IProgressMonitor monitor) {
if (monitor.isCanceled()) {
return false;
}
monitor.beginTask(Messages.loadAllClassTaskName, 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;
}
if (task instanceof GetClassListTask) {
GetClassListTask getClassListTask = (GetClassListTask) task;
List<String> allUserClassList = new ArrayList<String>();
DBClasses dbClasses = getClassListTask.getDbClassInfo();
List<ClassItem> userClassList = dbClasses == null ? null : dbClasses.getUserClassList().getClassList();
if (userClassList != null && !userClassList.isEmpty()) {
for (ClassItem userClass : userClassList) {
allUserClassList.add(userClass.getClassname());
}
}
Collections.sort(allUserClassList);
dialog.setUserClassList(allUserClassList);
}
}
return true;
}
};
ServerInfo serverInfo = database.getServer().getServerInfo();
GetClassListTask task = new GetClassListTask(serverInfo, database.getDatabaseInfo().getCharSet());
task.setDbName(database.getLabel());
task.setDbStatus(OnOffType.OFF);
taskExcutor.addTask(task);
new ExecTaskWithProgress(taskExcutor).busyCursorWhile();
if (taskExcutor.isSuccess()) {
dialog.open();
}
}
Aggregations