package com.digiarea.closurefx.build.console;
import java.util.List;
import java.util.ResourceBundle;
import javafx.application.Platform;
import javafx.concurrent.Service;
import com.digiarea.closure.core.IPathResolver;
import com.digiarea.closure.model.Closure;
import com.digiarea.closure.model.controller.IConsole;
import com.digiarea.closurefx.build.validation.Status;
public abstract class ConsoleManager {
protected IConsole console;
protected Service<?> service;
protected Closure closure;
protected ResourceBundle resourceBundle;
protected IPathResolver pathResolver;
public ConsoleManager(IConsole console, Closure closure,
ResourceBundle resourceBundle, IPathResolver pathResolver) {
this.console = console;
this.closure = closure;
this.resourceBundle = resourceBundle;
this.pathResolver = pathResolver;
}
public ResourceBundle getResourceBundle() {
return resourceBundle;
}
public void clearMessages() {
Platform.runLater(new Runnable() {
@Override
public void run() {
console.getConsole().clear();
}
});
}
public void clearErrors() {
Platform.runLater(new Runnable() {
@Override
public void run() {
console.getProblems().clear();
}
});
}
public void reportError(final ClosureStatus error) {
Platform.runLater(new Runnable() {
@Override
public void run() {
console.addError(error);
}
});
}
public void reportErrors(final List<ClosureStatus> error) {
Platform.runLater(new Runnable() {
@Override
public void run() {
console.addErrors(error);
}
});
}
public void reportMessage(final Status status) {
Platform.runLater(new Runnable() {
@Override
public void run() {
console.addMessage(status);
}
});
}
public abstract boolean start();
public boolean stop() {
return service.cancel();
}
}