Commit d3449728 authored by Pavitra Golchha's avatar Pavitra Golchha Committed by Evan W. Patton

Add support for GWT Super Dev Mode (#1132)

parent d6d09e1e
......@@ -150,6 +150,21 @@ Before entering or scanning the QR code in the Companion, check the box labeled
The automated tests depend on [Phantomjs](http://phantomjs.org/). Make sure you install it and add it to your path. After that, you can run all tests by typing the following in a terminal window:
$ ant tests
### Hot-reloading GWT code with 'Super Dev Mode'
1. Run `ant devmode`
2. [Run the main server](#running-the-main-server).
3. Open http://localhost:9876 (*GWT CodeServer*) and drag the two bookmarklets (*Dev Mode On & Off*) to the bookmarks bar.
4. Open http://localhost:8888 (*App Engine server*)
5. To see changes "live":
1. Save your changes in file.
2. Click on the *"Dev Mode On"* bookmarklet.
3. A popup will be shown with a button to compile `ode` module.
4. Press that button to compile. (That button is actually a bookmarklet. So you can drag this button to the bookmarks bar as well. This will come handy for subsequent compilations)
5. After that, *GWT CodeServer* will compile the module incrementally.
6. Refresh the page and that's it! The changes are live.
Logs can be found at http://localhost:9876/log/ode and SourceMaps at http://localhost:9876/sourcemaps/ode
## Need help?
Join [our community](https://community.appinventor.mit.edu/).
......@@ -579,6 +579,41 @@
</java>
</target>
<target name="devmode"
depends="common_CommonUtils,common_CommonVersion,components_CommonConstants,AiClientLib,AiRebindLib,CheckYaClientApp"
description="Run development mode">
<java failonerror="true" fork="true" classname="com.google.gwt.dev.codeserver.CodeServer">
<classpath>
<pathelement location="src" />
<pathelement location="${build.dir}/components/ComponentTranslation/src" />
<pathelement location="${build.war.dir}/WEB-INF/classes" />
<pathelement location="${local.build.dir}/AiRebindLib.jar" />
<pathelement location="${build.dir}/common/BlocksEditorHttpConstants-gwt.jar" />
<pathelement location="${build.dir}/common/CommonUtils-gwt.jar" />
<pathelement location="${build.dir}/common/CommonVersion-gwt.jar" />
<pathelement location="${build.dir}/components/CommonConstants-gwt.jar" />
<!-- external libs -->
<pathelement location="${lib.dir}/findbugs/jsr305.jar" />
<pathelement location="${lib.dir}/guava/guava-20.0.jar" />
<pathelement location="${lib.dir}/guava/guava-gwt-20.0.jar" />
<pathelement location="${lib.dir}/guava/error_prone_annotations-2.0.12.jar" />
<pathelement location="${lib.dir}/guava/j2objc-annotations-1.1.jar" />
<pathelement location="${lib.dir}/gwt_dragdrop/gwt-dnd-3.2.3.jar" />
<pathelement location="${lib.dir}/gwt_incubator/gwt-incubator-20101117-r1766.jar" />
<pathelement location="${lib.dir}/gwt_query/gwtquery-1.5-beta1.jar" />
<!-- gwt libs -->
<pathelement location="${gwt.sdk}/gwt-codeserver.jar" />
<pathelement location="${gwt.sdk}/gwt-dev.jar" />
<pathelement location="${gwt.sdk}/gwt-user.jar" />
<pathelement location="${gwt.sdk}/validation-api-1.0.0.GA.jar" />
<pathelement location="${gwt.sdk}/validation-api-1.0.0.GA-sources.jar" />
</classpath>
<jvmarg value="-Xmx1G" />
<arg line="-style PRETTY -logLevel INFO" />
<arg value="com.google.appinventor.YaClient" />
</java>
</target>
<!-- =====================================================================
AiClientLibTests: build and run the AiClientLib tests and generate the output results
===================================================================== -->
......
......@@ -283,7 +283,7 @@ public final class MockComponentsUtil {
Element element = w.getElement();
String widthStyle = DOM.getStyleAttribute(element, "width");
String heightStyle = DOM.getStyleAttribute(element, "height");
String lineHeightStyle = DOM.getStyleAttribute(element, "line-height");
String lineHeightStyle = DOM.getStyleAttribute(element, "lineHeight");
if (widthStyle != null) {
DOM.setStyleAttribute(element, "width", null);
}
......@@ -291,7 +291,7 @@ public final class MockComponentsUtil {
DOM.setStyleAttribute(element, "height", null);
}
if (lineHeightStyle != null) {
DOM.setStyleAttribute(element, "line-height", "initial");
DOM.setStyleAttribute(element, "lineHeight", "initial");
}
return new String[] { widthStyle, heightStyle, lineHeightStyle };
}
......@@ -312,7 +312,7 @@ public final class MockComponentsUtil {
DOM.setStyleAttribute(element, "height", style[1]);
}
if (style[2] != null) {
DOM.setStyleAttribute(element, "line-height", style[2]);
DOM.setStyleAttribute(element, "lineHeight", style[2]);
}
}
......
......@@ -70,6 +70,10 @@
<target name="AIMergerApp">
<ant inheritAll="false" useNativeBasedir="true" dir="aimerger" target="AIMergerApp"/>
</target>
<target name="devmode" depends="noplay">
<ant inheritAll="false" useNativeBasedir="true" dir="appengine" target="devmode"/>
</target>
<!-- Convenient target for just running the blockly related tests -->
<target name="BlocklyTest">
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment