GT-2861 - Task Monitor - removed recently added Task Monitor Service due

to conceptual issues; fixed bug in TaskLauncher that caused deadlock;
updated ImporterUtilities usage of TaskLauncher to trigger task dialog
This commit is contained in:
dragonmacher 2019-05-14 08:54:17 -04:00
parent 2108a5ed4c
commit a94c6efe68
21 changed files with 413 additions and 1452 deletions

View file

@ -27,8 +27,7 @@ import generic.jar.ResourceFile;
import ghidra.app.plugin.processors.sleigh.SleighLanguageProvider;
import ghidra.program.model.lang.*;
import ghidra.util.classfinder.ClassSearcher;
import ghidra.util.task.TaskMonitor;
import ghidra.util.task.TaskMonitorService;
import ghidra.util.task.TaskBuilder;
/**
* Default Language service used gather up all the languages that were found
@ -86,18 +85,21 @@ public class DefaultLanguageService implements LanguageService, ChangeListener {
}
private void searchForProviders() {
TaskMonitor monitor = TaskMonitorService.getMonitor();
monitor.setMessage("Searching for language providers");
try {
Set<LanguageProvider> languageProviders =
ClassSearcher.getInstances(LanguageProvider.class);
Set<LanguageProvider> languageProviders =
ClassSearcher.getInstances(LanguageProvider.class);
searchCompleted = true;
processProviders(languageProviders);
}
finally {
monitor.finished();
}
searchCompleted = true;
//@formatter:off
TaskBuilder.withRunnable(monitor -> {
processProviders(languageProviders); // load and cache
})
.setTitle("Language Search")
.setCanCancel(false)
.setHasProgress(false)
.launchModal()
;
//@formatter:on
}
/**
@ -105,22 +107,23 @@ public class DefaultLanguageService implements LanguageService, ChangeListener {
*/
@Override
public Language getLanguage(LanguageID languageID) throws LanguageNotFoundException {
TaskMonitor monitor = TaskMonitorService.getMonitor();
monitor.setMessage("Retrieving language: " + languageID);
try {
LanguageInfo info = languageMap.get(languageID);
if (info == null) {
throw new LanguageNotFoundException(languageID);
}
Language lang = info.getLanguage();
return lang;
}
finally {
monitor.finished();
LanguageInfo info = languageMap.get(languageID);
if (info == null) {
throw new LanguageNotFoundException(languageID);
}
//@formatter:off
TaskBuilder.withRunnable(monitor -> {
info.getLanguage(); // load and cache
})
.setTitle("Loading language '" + languageID + "'")
.setCanCancel(false)
.setHasProgress(false)
.launchModal()
;
//@formatter:on
return info.getLanguage();
}
/**