ui: implemented showing gradle errors in UI

This commit is contained in:
mlangkabel
2017-10-03 16:19:07 +02:00
parent e587f081d6
commit 798944ff38
2 changed files with 68 additions and 30 deletions
+32 -6
View File
@@ -6,9 +6,11 @@
#include "data/parser/java/JavaEnvironmentFactory.h"
#include "settings/ApplicationSettings.h"
#include "utility/logging/logging.h"
#include "utility/messaging/type/MessageStatus.h"
#include "utility/ResourcePaths.h"
#include "utility/utilityJava.h"
#include "utility/utilityString.h"
#include "Application.h"
namespace
{
@@ -57,9 +59,21 @@ namespace utility
{
std::shared_ptr<JavaEnvironment> javaEnvironment = JavaEnvironmentFactory::getInstance()->createEnvironment();
{
std::string mainSrcDirs = "";
javaEnvironment->callStaticStringMethod("com/sourcetrail/gradle/InfoRetriever", "getMainSrcDirs", mainSrcDirs, projectDirectoryPath.str(), gradleInitScriptPath);
for (const std::string mainSrcDir : utility::splitToVector(mainSrcDirs, ";"))
std::string output = "";
javaEnvironment->callStaticStringMethod("com/sourcetrail/gradle/InfoRetriever", "getMainSrcDirs", output, projectDirectoryPath.str(), gradleInitScriptPath);
if (utility::isPrefix("[ERROR]", utility::trim(output)))
{
// TODO: move error handling to caller of this function
const std::string dialogMessage =
"The following error occurred while executing a Maven command:\n\n" + utility::replace(output, "\r\n", "\n");
MessageStatus(dialogMessage, true, false).dispatch();
Application::getInstance()->handleDialog(dialogMessage);
return std::vector<FilePath>();
}
for (const std::string mainSrcDir : utility::splitToVector(output, ";"))
{
uncheckedDirectories.insert(mainSrcDir);
}
@@ -67,9 +81,21 @@ namespace utility
if (addTestDirectories)
{
std::string testSrcDirs = "";
javaEnvironment->callStaticStringMethod("com/sourcetrail/gradle/InfoRetriever", "getTestSrcDirs", testSrcDirs, projectDirectoryPath.str(), gradleInitScriptPath);
for (const std::string testSrcDir : utility::splitToVector(testSrcDirs, ";"))
std::string output = "";
javaEnvironment->callStaticStringMethod("com/sourcetrail/gradle/InfoRetriever", "getTestSrcDirs", output, projectDirectoryPath.str(), gradleInitScriptPath);
if (utility::isPrefix("[ERROR]", utility::trim(output)))
{
// TODO: move error handling to caller of this function
const std::string dialogMessage =
"The following error occurred while executing a Maven command:\n\n" + utility::replace(output, "\r\n", "\n");
MessageStatus(dialogMessage, true, false).dispatch();
Application::getInstance()->handleDialog(dialogMessage);
return std::vector<FilePath>();
}
for (const std::string testSrcDir : utility::splitToVector(output, ";"))
{
uncheckedDirectories.insert(testSrcDir);
}