mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-104500 Gradle: Allow to reuse common logic for other external systems
Printing a greeting message on starting external task(s) execution
This commit is contained in:
@@ -44,4 +44,5 @@ run.configuration.description={0} build
|
||||
run.configuration.settings.label.project={0} project:
|
||||
run.configuration.settings.label.tasks=Tasks:
|
||||
run.configuration.settings.label.vmoptions=VM options:
|
||||
run.configuration.settings.caption.vmoptions=VM options:
|
||||
run.configuration.settings.caption.vmoptions=VM options:
|
||||
run.text.starting=Executing external tasks ''{0}''...
|
||||
+12
-1
@@ -18,11 +18,13 @@ import com.intellij.openapi.externalSystem.model.serialization.ExternalTaskPojo;
|
||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
|
||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListenerAdapter;
|
||||
import com.intellij.openapi.externalSystem.service.internal.ExternalSystemExecuteTaskTask;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemBundle;
|
||||
import com.intellij.openapi.options.SettingsEditor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.JDOMExternalizable;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.containers.ContainerUtilRt;
|
||||
import com.intellij.util.xmlb.XmlSerializer;
|
||||
import org.jdom.Element;
|
||||
@@ -103,7 +105,7 @@ public class ExternalSystemRunConfiguration extends RunConfigurationBase {
|
||||
ConsoleView console = new TextConsoleBuilderImpl(getProject()).getConsole();
|
||||
final MyProcessHandler processHandler = new MyProcessHandler();
|
||||
console.attachToProcess(processHandler);
|
||||
List<ExternalTaskPojo> tasks = ContainerUtilRt.newArrayList();
|
||||
final List<ExternalTaskPojo> tasks = ContainerUtilRt.newArrayList();
|
||||
for (String taskName : mySettings.getTaskNames()) {
|
||||
tasks.add(new ExternalTaskPojo(taskName, mySettings.getExternalProjectPath(), null));
|
||||
}
|
||||
@@ -114,9 +116,18 @@ public class ExternalSystemRunConfiguration extends RunConfigurationBase {
|
||||
ApplicationManager.getApplication().executeOnPooledThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
String greeting = ExternalSystemBundle.message("run.text.starting", StringUtil.join(mySettings.getTaskNames(), " "));
|
||||
processHandler.notifyTextAvailable(greeting, ProcessOutputTypes.SYSTEM);
|
||||
task.execute(new ExternalSystemTaskNotificationListenerAdapter() {
|
||||
|
||||
private boolean myResetGreeting = true;
|
||||
|
||||
@Override
|
||||
public void onTaskOutput(@NotNull ExternalSystemTaskId id, @NotNull String text, boolean stdOut) {
|
||||
if (myResetGreeting) {
|
||||
processHandler.notifyTextAvailable("\r", ProcessOutputTypes.SYSTEM);
|
||||
myResetGreeting = false;
|
||||
}
|
||||
processHandler.notifyTextAvailable(text, stdOut ? ProcessOutputTypes.STDOUT : ProcessOutputTypes.STDERR);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user