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

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: clean 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..4f5730537ca102681ed27e61d836e3a071d269b7 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
@@ -283,23 +287,36 @@ 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);
+ return createErrorOptional(new Message(
+ "Error in getting preview: " + e.toString(), MessagePriority.WARNING));
apavlov 2013/01/24 13:06:27 "Failed to create preview". Don't you want to i18n
Peter Rybin 2013/01/24 14:08:22 Done.
+ }
+ }
+ }
+
+ @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 +352,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("Compile error: {0} ({1}:{2})",
+ new Object[] { compileError.getCompilerMessage(),
+ start.getLine(), start.getColumn() });
+ return createErrorOptional(
+ new Message (messageString, MessagePriority.BLOCKING_PROBLEM));
apavlov 2013/01/24 13:06:27 stray whitespace before '('
Peter Rybin 2013/01/24 14:08:22 Done.
+ }
+ });
} else {
return createErrorOptional(previewResult.errorMessages());
}
@@ -345,7 +376,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 =

Powered by Google App Engine
This is Rietveld 408576698