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

Side by Side Diff: dart/editor/tools/plugins/com.google.dart.tools.debug.core/src/com/google/dart/tools/debug/core/dartium/HtmlScriptManager.java

Issue 371253002: Version 1.5.7 (Closed) Base URL: http://dart.googlecode.com/svn/branches/1.5/
Patch Set: Created 6 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012, the Dart project authors. 2 * Copyright (c) 2012, the Dart project authors.
3 * 3 *
4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u se this file except 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u se this file except
5 * in compliance with the License. You may obtain a copy of the License at 5 * in compliance with the License. You may obtain a copy of the License at
6 * 6 *
7 * http://www.eclipse.org/legal/epl-v10.html 7 * http://www.eclipse.org/legal/epl-v10.html
8 * 8 *
9 * Unless required by applicable law or agreed to in writing, software distribut ed under the License 9 * Unless required by applicable law or agreed to in writing, software distribut ed under the License
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K IND, either express 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K IND, either express
11 * or implied. See the License for the specific language governing permissions a nd limitations under 11 * or implied. See the License for the specific language governing permissions a nd limitations under
12 * the License. 12 * the License.
13 */ 13 */
14 14
15 package com.google.dart.tools.debug.core.dartium; 15 package com.google.dart.tools.debug.core.dartium;
16 16
17 import com.google.dart.tools.core.utilities.resource.IFileUtilities; 17 import com.google.dart.tools.core.utilities.resource.IFileUtilities;
18 import com.google.dart.tools.debug.core.DartDebugCorePlugin; 18 import com.google.dart.tools.debug.core.DartDebugCorePlugin;
19 import com.google.dart.tools.debug.core.util.ResourceChangeManager; 19 import com.google.dart.tools.debug.core.util.ResourceChangeManager;
20 import com.google.dart.tools.debug.core.util.ResourceChangeParticipant; 20 import com.google.dart.tools.debug.core.util.ResourceChangeParticipant;
21 import com.google.dart.tools.debug.core.webkit.WebkitCallback; 21 import com.google.dart.tools.debug.core.webkit.WebkitCallback;
22 import com.google.dart.tools.debug.core.webkit.WebkitNode; 22 import com.google.dart.tools.debug.core.webkit.WebkitNode;
23 import com.google.dart.tools.debug.core.webkit.WebkitResult; 23 import com.google.dart.tools.debug.core.webkit.WebkitResult;
24 24
25 import org.eclipse.core.resources.IFile; 25 import org.eclipse.core.resources.IFile;
26 import org.eclipse.core.runtime.CoreException; 26 import org.eclipse.core.runtime.CoreException;
27 import org.eclipse.core.runtime.IProgressMonitor;
28 import org.eclipse.core.runtime.IStatus;
29 import org.eclipse.core.runtime.Status;
30 import org.eclipse.core.runtime.jobs.Job;
27 31
28 import java.io.IOException; 32 import java.io.IOException;
29 33
30 /** 34 /**
31 * A class to listen for resource changes to html files and sync their contents over a WIP 35 * A class to listen for resource changes to html files and sync their contents over a WIP
32 * connection. 36 * connection.
33 */ 37 */
34 public class HtmlScriptManager implements ResourceChangeParticipant { 38 public class HtmlScriptManager implements ResourceChangeParticipant {
39
40 private class UpdateHtmlFileJob extends Job {
41
42 IFile file;
43
44 public UpdateHtmlFileJob(IFile file) {
45 super("Updating file");
46 this.file = file;
47 }
48
49 @Override
50 protected IStatus run(IProgressMonitor monitor) {
51 String fileUrl = target.getResourceResolver().getUrlForResource(file);
52
53 if (fileUrl != null && fileUrl.equals(rootNode.getDocumentURL())) {
54 uploadNewSource(rootNode, file);
55 }
56
57 return Status.OK_STATUS;
58 }
59
60 }
61
35 private DartiumDebugTarget target; 62 private DartiumDebugTarget target;
36 63
37 private WebkitNode rootNode; 64 private WebkitNode rootNode;
38 65
39 public HtmlScriptManager(DartiumDebugTarget target) { 66 public HtmlScriptManager(DartiumDebugTarget target) {
40 this.target = target; 67 this.target = target;
41 68
42 ResourceChangeManager.getManager().addChangeParticipant(this); 69 ResourceChangeManager.getManager().addChangeParticipant(this);
43 } 70 }
44 71
45 public void dispose() { 72 public void dispose() {
46 ResourceChangeManager.removeChangeParticipant(this); 73 ResourceChangeManager.removeChangeParticipant(this);
47 } 74 }
48 75
49 public void handleDocumentUpdated() { 76 public void handleDocumentUpdated() {
50 resync(); 77 resync();
51 } 78 }
52 79
53 @Override 80 @Override
54 public void handleFileAdded(IFile file) { 81 public void handleFileAdded(IFile file) {
55 82
56 } 83 }
57 84
58 @Override 85 @Override
59 public final void handleFileChanged(IFile file) { 86 public final void handleFileChanged(IFile file) {
60 if ("html".equals(file.getFileExtension())) { 87 if ("html".equals(file.getFileExtension())) {
61 String fileUrl = target.getResourceResolver().getUrlForResource(file); 88 UpdateHtmlFileJob job = new UpdateHtmlFileJob(file);
62 89 job.schedule();
63 if (fileUrl != null && fileUrl.equals(rootNode.getDocumentURL())) {
64 uploadNewSource(rootNode, file);
65 }
66 } 90 }
67 } 91 }
68 92
69 @Override 93 @Override
70 public void handleFileRemoved(IFile file) { 94 public void handleFileRemoved(IFile file) {
71 95
72 } 96 }
73 97
74 public void handleLoadEventFired() { 98 public void handleLoadEventFired() {
75 resync(); 99 resync();
(...skipping 26 matching lines...) Expand all
102 IFileUtilities.getContents(file)); 126 IFileUtilities.getContents(file));
103 } catch (IOException e) { 127 } catch (IOException e) {
104 // We upload changed html on a best-effort basis. 128 // We upload changed html on a best-effort basis.
105 // DartDebugCorePlugin.logError(e); 129 // DartDebugCorePlugin.logError(e);
106 } catch (CoreException e) { 130 } catch (CoreException e) {
107 DartDebugCorePlugin.logError(e); 131 DartDebugCorePlugin.logError(e);
108 } 132 }
109 } 133 }
110 134
111 } 135 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698