Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(102)

Unified Diff: plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/WizardLogicBuilder.java

Issue 12035015: Disaply compile error position in diff viewer (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: fcr Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/WizardLogicBuilder.java
diff --git a/plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/WizardLogicBuilder.java b/plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/WizardLogicBuilder.java
index 880d30146410876c05e8af065dca5dde12e0c528..7d314f76219da2e207dd4b315704d2e640bda739 100644
--- a/plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/WizardLogicBuilder.java
+++ b/plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/WizardLogicBuilder.java
@@ -41,8 +41,12 @@ import org.chromium.debug.ui.WizardUtils.WizardFinishController;
import org.chromium.debug.ui.WizardUtils.WizardFinisher;
import org.chromium.debug.ui.WizardUtils.WizardLogic;
import org.chromium.debug.ui.actions.ChooseVmControl;
+import org.chromium.debug.ui.liveedit.LiveEditDiffViewer.Input;
import org.chromium.debug.ui.liveedit.PushChangesWizard.FinisherDelegate;
+import org.chromium.sdk.TextStreamPosition;
import org.chromium.sdk.UpdatableScript.ChangeDescription;
+import org.chromium.sdk.UpdatableScript.CompileErrorFailure;
+import org.eclipse.osgi.util.NLS;
/**
* Creates Updater-based logic implementation of the wizard. It is responsible for proper data
@@ -116,7 +120,7 @@ class WizardLogicBuilder {
} catch (RuntimeException e) {
// TODO: have more specific exception types to catch.
optionalPlan = createErrorOptional(new Message(
- "Failed to get script source from a file. See log for details.",
+ Messages.WizardLogicBuilder_FAILED_TO_GET,
MessagePriority.BLOCKING_PROBLEM));
}
result.add(optionalPlan);
@@ -136,7 +140,7 @@ class WizardLogicBuilder {
List<Optional<PushChangesPlan>> planList = selectedChangePlansValue.getValue();
if (planList.isEmpty()) {
return createErrorOptional(
- new Message("Choose at least one VM", MessagePriority.BLOCKING_INFO));
+ new Message(Messages.WizardLogicBuilder_CHOOSE_VM, MessagePriority.BLOCKING_INFO));
}
List<Message> errorMessages = new LinkedList<Message>();
List<PushChangesPlan> result = new ArrayList<PushChangesPlan>(planList.size());
@@ -283,23 +287,38 @@ class WizardLogicBuilder {
@Calculate
public Optional<? extends LiveEditDiffViewer.Input> calculate(
PreviewLoader.Data previewRawResultParam) {
- PushChangesPlan changesPlan = singlePlanValue.getValue();
- ChangeDescription changeDescription = previewRawResultParam.getChangeDescription();
- Optional<LiveEditDiffViewer.Input> result;
- if (changeDescription == null) {
- result = createOptional(null);
- } else {
- try {
+ final PushChangesPlan changesPlan = singlePlanValue.getValue();
+
+ return previewRawResultParam.accept(
+ new PreviewLoader.Data.Visitor<Optional<LiveEditDiffViewer.Input>>() {
+ @Override
+ public Optional<LiveEditDiffViewer.Input> visitSuccess(
+ ChangeDescription changeDescription) {
+ if (changeDescription == null) {
+ return createOptional(null);
+ } else {
+ try {
+ LiveEditDiffViewer.Input viewerInput =
+ PushResultParser.createViewerInput(changeDescription, changesPlan, true);
+ return createOptional(viewerInput);
+ } catch (RuntimeException e) {
+ ChromiumDebugPlugin.log(e);
+ String messageText =
+ NLS.bind(Messages.WizardLogicBuilder_ERROR_GETTING_PREVIEW, e.toString());
+ return createErrorOptional(
+ new Message(messageText, MessagePriority.WARNING));
+ }
+ }
+ }
+
+ @Override
+ public Optional<Input> visitCompileError(CompileErrorFailure compileError) {
LiveEditDiffViewer.Input viewerInput =
- PushResultParser.createViewerInput(changeDescription, changesPlan, true);
- result = createOptional(viewerInput);
- } catch (RuntimeException e) {
- ChromiumDebugPlugin.log(e);
- result = createErrorOptional(new Message(
- "Error in getting preview: " + e.toString(), MessagePriority.WARNING));
+ PushResultParser.createCompileErrorViewerInput(compileError, changesPlan,
+ true);
+ return createOptional(viewerInput);
}
- }
- return result;
+ });
}
@DependencyGetter
public ValueSource<Optional<PreviewLoader.Data>>
@@ -335,9 +354,23 @@ class WizardLogicBuilder {
final ValueProcessor<Optional<Void>> warningValue = createProcessor(
new Gettable<Optional<Void>>() {
public Optional<Void> getValue() {
- Optional<?> previewResult = previewValue.getValue();
+ Optional<PreviewLoader.Data> previewResult = previewRawResultValue.getValue();
if (previewResult.isNormal()) {
- return createOptional(null);
+ PreviewLoader.Data data = previewResult.getNormal();
+ return data.accept(new PreviewLoader.Data.Visitor<Optional<Void>>() {
+ @Override public Optional<Void> visitSuccess(ChangeDescription changeDescription) {
+ return createOptional(null);
+ }
+ @Override
+ public Optional<Void> visitCompileError(CompileErrorFailure compileError) {
+ TextStreamPosition start = compileError.getStartPosition();
+ String messageString = NLS.bind(Messages.WizardLogicBuilder_COMPILE_ERROR_AT,
+ new Object[] { compileError.getCompilerMessage(),
+ start.getLine(), start.getColumn() });
+ return createErrorOptional(
+ new Message(messageString, MessagePriority.BLOCKING_PROBLEM));
+ }
+ });
} else {
return createErrorOptional(previewResult.errorMessages());
}
@@ -345,7 +378,7 @@ class WizardLogicBuilder {
});
updater.addConsumer(scope, warningValue);
updater.addSource(scope, warningValue);
- updater.addDependency(warningValue, previewValue);
+ updater.addDependency(warningValue, previewRawResultValue);
// A finisher delegate source, that does not actually depend on most of the code above.
final ValueProcessor<? extends Optional<FinisherDelegate>> wizardFinisher =
@@ -392,7 +425,8 @@ class WizardLogicBuilder {
createProcessor(handleErrors(new NormalExpression<FinisherDelegate>() {
@Calculate
public FinisherDelegate calculate(List<PushChangesPlan> selectedVm) {
- return new PushChangesWizard.MultipleVmFinisher(selectedVmValue.getValue().getNormal());
+ return new PushChangesWizard.MultipleVmFinisher(
+ selectedVmValue.getValue().getNormal());
}
@DependencyGetter
public ValueSource<? extends Optional<? extends List<PushChangesPlan>>>

Powered by Google App Engine
This is Rietveld 408576698