<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>vectomatic &#187; GWT</title>
	<atom:link href="http://www.vectomatic.org/category/google-web-toolkit/feed" rel="self" type="application/rss+xml" />
	<link>http://www.vectomatic.org</link>
	<description>standard dynamic 2D graphics in web browsers</description>
	<lastBuildDate>Thu, 19 Jan 2012 20:17:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Update of lib-gwt-file</title>
		<link>http://www.vectomatic.org/google-web-toolkit/update-of-lib-gwt-file</link>
		<comments>http://www.vectomatic.org/google-web-toolkit/update-of-lib-gwt-file#comments</comments>
		<pubDate>Fri, 02 Dec 2011 17:22:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=779</guid>
		<description><![CDATA[<p>I am releasing today a new version of lib-gwt-file, to try to keep up with the specification and recent evolution in the W3C draft specification. The highlight of this new version are as follows:</p> Migration of the interfaces to the lastest W3C file API draft (W3C Working Draft 20 October 2011), except for error management [...]]]></description>
			<content:encoded><![CDATA[<p>I am releasing today a new version of <a href="./lib-gwt-file" title="GWT File API">lib-gwt-file</a>, to try to keep up with the specification and recent evolution in the W3C draft specification. The highlight of this new version are as follows:</p>
<ul>
<li>
Migration of the interfaces to the lastest W3C file API draft (<a href="http://www.w3.org/TR/FileAPI/" title="W3C Working Draft 20 October 2011">W3C Working Draft 20 October 2011</a>), except for error management which still relies on <a href="http://www.w3.org/TR/2010/WD-FileAPI-20101026/#dfn-fileerror" title="FileError">FileError</a> (as the new error management classes do not seem to be implemented by webkit or FF yet)</li>
<li> Addition of <a href="./mvn-sites/lib-gwt-file/apidocs/index.html">javadoc</a> for most of the existing methods (the doc is a mix from MDN documentation, extracts from the spec and my own comments).</li>
<li>Support for typed arrays from the lastest Khronos Group specification (<a href="http://www.khronos.org/registry/typedarray/specs/latest/" title="typed arrays">Editor’s Draft 19 October 2011</a>)</li>
<li>
Fixed bug in DropPanel (incorrect firing of dragenter and dragleave if the DropPanel contains nested elements)</li>
</ul>
<p>I have also upgraded my sample program significantly, with a focus on two areas:</p>
<ul>
<li> Error management, which cannot be written in a totally cross-platform way yet, as FF needs to be treaded as a special case (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=701154" title="bug 701154">https://bugzilla.mozilla.org/show_bug.cgi?id=701154</a>). Expect more changes in this area as the spec has evolved a lot in this area, though browsers have not implemented it yet (and neither have I).</li>
<li>Memory management: it seems it is a bad idea to create a new FileReader for every file being read, as this create memory leaks. The sample using a queue base approach and reuses the same reader.</li>
</ul>
<p>You can find all the details about the new version in the <a href="./lib-gwt-file/release-notes" title="Release notes">release notes</a>.</p>
<p>The sample is available <a href="./gwt/lib-gwt-file-test/lib-gwt-file-test.html" title="GWT File API sample">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/google-web-toolkit/update-of-lib-gwt-file/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Availability of lib-gwt-svg 0.5.4 and other announcements</title>
		<link>http://www.vectomatic.org/lib-gwt-svg/availability-of-lib-gwt-svg-0-5-4-and-other-announcements</link>
		<comments>http://www.vectomatic.org/lib-gwt-svg/availability-of-lib-gwt-svg-0-5-4-and-other-announcements#comments</comments>
		<pubDate>Wed, 02 Nov 2011 21:25:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[lib-gwt-svg]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=763</guid>
		<description><![CDATA[<p>I am releasing a new version of lib-gwt-svg. For a detailed list of changes, see the release notes. This new version is mostly a bug-fix and tuning release, which provides better support for IE9 and Opera. Among the notable features of the release are:</p> On IE9, the XPath APIs are now supported. This is made [...]]]></description>
			<content:encoded><![CDATA[<p>I am releasing a new version of lib-gwt-svg. For a detailed list of changes, see the <a href="./lib-gwt-svg/release-notes" title="lib-gwt-svg release notes">release notes</a>. This new version is mostly a bug-fix and tuning release, which provides better support for IE9 and Opera. Among the notable features of the release are:</p>
<ul>
<li>On IE9, the XPath APIs are now supported. This is made possible by embedding the <a href="http://mcc.id.au/xpathjs">xpath.js</a> library by Cameron McCormack, which provides the XPath support lacking in IE9 and IE10. Other browsers, which have native xpath support are unchanged and do embed xpath.js.</li>
<li>On IE9, stylesheets embedded in dynamically loaded SVGs are not ignored any more (found a workaround for this IE9 bug)</li>
<li>On Opera, xlink hrefs embedded stylesheets contained in dynamically loaded SVGs are not broken any more (found a workaround for this Opera bug)</li>
<li>On all platforms, OMSVGParser.parse will throw a ParserException in a consistent manner when fed input which is not well-formed or is not an SVG document</li>
</ul>
<p>I have created a new XPath sample in the <a href="../lib-gwt-svg/samples">lib-gwt-svg-samples</a> program. It lets you type xpath expressions which are evaluated on the fly, resulting in the proper nodes being selected in the SVG and XML view of a sample document.</p>
<p>I have updated all my <a href="../lib-gwt-svg-edu" title="SVG educational games">educational games</a> to use the latest version. The following matrix shows what works and what does not, per platform:</p>
<table border="0">
<tbody>
<tr>
<th></th>
<th>FF</th>
<th>Webkit (chrome)</th>
<th>Opera</th>
<th>IE</th>
</tr>
<tr>
<td>samples-shapes</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
<td>sample-events</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
<td>sample-parser</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
<td>sample-widgets</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
<td>sample-xpath</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
<td>sample-smil</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ko.png" alt="ko" /> (No JS SMIL support)
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ko.png" alt="ko" /> (No SMIL support)</td>
</tr>
<td>games-chess</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
<td>games-dots</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ko.png" alt="ko" /> (No JS filter support)
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ko.png" alt="ko" /> (No filter support. Coming in IE10)</td>
</tr>
<td>games-maze</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
<td>games-push</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
<td>games-puzzle</td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
<td><img src="../images/ok.png" alt="ok" /></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/lib-gwt-svg/availability-of-lib-gwt-svg-0-5-4-and-other-announcements/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Availability of lib-gwt-file 0.2</title>
		<link>http://www.vectomatic.org/google-web-toolkit/availability-of-lib-gwt-file-0-2</link>
		<comments>http://www.vectomatic.org/google-web-toolkit/availability-of-lib-gwt-file-0-2#comments</comments>
		<pubDate>Sat, 24 Sep 2011 19:26:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=738</guid>
		<description><![CDATA[<p>lib-gwt-file 0.2 is now available. It does not provide new functionality with regards to the previous release, but is a migration to GWT 2.4.0.</p> Changes in this release <p>As GWT 2.4.0 now provides native support for HTML 5 drag-and-drop, lib-gwt-file 0.2 uses these native event classes instead of its own, wherever possible. lib-gwt-file&#8217;s own drag-and-drop [...]]]></description>
			<content:encoded><![CDATA[<p>lib-gwt-file 0.2 is now available. It does not provide new functionality with regards to the previous release, but is a migration to GWT 2.4.0.</p>
<h2>Changes in this release</h2>
<p>As GWT 2.4.0 now provides native support for HTML 5 drag-and-drop, lib-gwt-file 0.2 uses these native event classes instead of its own, wherever possible. lib-gwt-file&#8217;s own drag-and-drop event classes are deprecated and will be removed in the next release of the library. Please see the <a href="../lib-gwt-file/release-notes" title="lib-gwt-file release notes">release notes</a> for the list of classes being deprecated.</p>
<h2>Migration guide</h2>
<p>To migrate to lib-gwt-file 0.2, replace the imports to all lib-gwt-file event classes related to drag-and-drop and replace them with GWT 2.4.0 equivent classes. This is fairly easy as all classes have the same name (you only need to change the package). There is one exception to this rule. GWT 2.4.0 DataTransfer class does not expose any file-related APIs, as GWT 2.4.0 does not yet support the W3C file API. I have thus provided an extended overlay class wrapper, <a href="../mvn-sites/lib-gwt-file/apidocs/org/vectomatic/dnd/DataTransferExt.html" title="DataTransferExt javadoc">DataTransferExt</a>, which adds the missing functionality. Thus, to use it, replace code like this:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">FileList files <span style="color: #339933;">=</span> event.<span style="color: #006633;">getDataTransfer</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getFiles</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>with:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">FileList files <span style="color: #339933;">=</span> event.<span style="color: #006633;">getDataTransfer</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #339933;">&lt;</span>DataTransferExt<span style="color: #339933;">&gt;</span>cast<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getFiles</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<h2>lib-gwt-file-test sample</h2>
<p>The <a href="../gwt/lib-gwt-file-test/lib-gwt-file-test.html" title="lib-gwt-file test">lib-gwt-file-test</a> has been migrated to the new API. Support has been added for PNG files, in order to demonstrate the readAsBinaryString method. However users should be aware that further changes in this area are very likely, as <a href="http://dev.w3.org/2006/webapi/FileAPI/" title="W3C Editor’s Draft 9 September 2011">September 2011 W3C draft</a> proposes new changes to the specification.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/google-web-toolkit/availability-of-lib-gwt-file-0-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Availability of lib-gwt-svg 0.5.3 and other announcements</title>
		<link>http://www.vectomatic.org/lib-gwt-svg/availability-of-lib-gwt-svg-0-5-3-and-other-announcements</link>
		<comments>http://www.vectomatic.org/lib-gwt-svg/availability-of-lib-gwt-svg-0-5-3-and-other-announcements#comments</comments>
		<pubDate>Sat, 10 Sep 2011 09:05:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[lib-gwt-svg]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=705</guid>
		<description><![CDATA[<p>Hi,</p> <p>Concomitantly to the release of GWT 2.4, I am releasing a new version of lib-gwt-svg (0.5.3). For a detailed list of changes, see the release notes. This new version, besides providing compatibility with GWT 2.4, provides improvements in two areas:</p> <p>It supports SVG paint (colors, named colors, gradients, patterns) and dash-arrays by providing parsers [...]]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>Concomitantly to the release of GWT 2.4, I am releasing a new version of lib-gwt-svg (0.5.3). For a detailed list of changes, see the <a href="./lib-gwt-svg/release-notes" title="lib-gwt-svg release notes">release notes</a>. This new version, besides providing compatibility with GWT 2.4, provides improvements in two areas:</p>
<p>It supports SVG paint (colors, named colors, gradients, patterns) and dash-arrays by providing parsers for these data types. A <a href="./svg-paint" title="SVG paint and stroke with lib-gwt-svg">dedicated post</a> details these new capabilities.</p>
<p>It incorporates a patch <a href="https://groups.google.com/group/lib-gwt-svg/t/12dd003e87bda61c" title="creating svg element subclasses">proposed by Michael Allan of zelea.com</a> to let lib-gwt-svg support subclassing or wrapper types. You can now write constructs like:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">public class MyCircle extends OMSVGCircleElement {<br />
}<br />
MyCircle c = new MyCircle();<br />
OMSVGSVGElement svg = new OMSVGSVGElement();<br />
svg.appendChild(c);</div></div>
<p>I am also releasing a new version of lib-gwt-svg-chess, which is based on the latest version (0.6) of the carballo chess engine. <a href="http://www.alonsoruibal.com/">Alberto Alonso Ruibal</a>, the author of this engine, has modified it to make it compatible with GWT. Thus, as of this release, I will no longer maintain and distribute my own GWT version of it (carballo-gwt) and use the official version directly.</p>
<p>In parallel, the IE9 compatibility picture continues to improve: my chess game now runs in IE9+, and three out of four of my educational games run in IE9+ (dots is still not working). The only two remaining hurdles are lack of SVG animation and lack of XPath support in IE9+.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/lib-gwt-svg/availability-of-lib-gwt-svg-0-5-3-and-other-announcements/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG paint and stroke</title>
		<link>http://www.vectomatic.org/lib-gwt-svg/svg-paint</link>
		<comments>http://www.vectomatic.org/lib-gwt-svg/svg-paint#comments</comments>
		<pubDate>Sat, 10 Sep 2011 08:58:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[lib-gwt-svg]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=693</guid>
		<description><![CDATA[<p>The SVG standard provides a complete API to deal with various forms of paint (rgb colors, named colors, linear gradients, patterns, &#8230;) and this API integrates tightly with the CSS APIs to provide programmatic access to the various characteristics of the paint. The dash-array CSS property can also be introspected with the same CSS APIs.</p> [...]]]></description>
			<content:encoded><![CDATA[<p>The SVG standard provides a <a title="SVG paint API" href="http://www.w3.org/TR/SVG11/painting.html#InterfaceSVGPaint">complete API</a> to deal with various forms of paint (rgb colors, named colors, linear gradients, patterns, &#8230;) and this API integrates tightly with the CSS APIs to provide programmatic access to the various characteristics of the paint. The <strong>dash-array</strong> CSS property can also be introspected with the same CSS APIs.</p>
<p>In real web development however, things are not as easy as they should, because almost all browsers fail to implement correctly if at all at least some part of the specification. This is why I had not tried to incorporate this part of the specification in lib-gwt-svg so far.</p>
<p>If things were perfect, all one would have to write to access a color or the <strong>dash-array</strong> attribute would be:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;<br />
&lt;circle id=&quot;c1&quot; style=&quot;fill:tomato;stroke:black;stroke-dasharray:2mm,1mm&quot; cx=&quot;10&quot; cy=&quot;10&quot; r=&quot;5&quot;/&gt;<br />
&lt;/svg&gt;</div></div>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">var circle = document.getElementById('c1');<br />
var paint = circle.style.getCSSPropertyValue('fill');<br />
var green = paint.rgbColor.green;<br />
var greenValue = green.getFloatValue(green.primitiveType);<br />
var dash1 = circle.style.getCSSPropertyValue('dash-array').item(0);<br />
var dash1Value = dash1.getFloatValue(dash1.primitiveType);</div></div>
<p>In the real world, the code above does not run well in most browsers:</p>
<table>
<thead>
<tr>
<th>Browser</th>
<th>Result</th>
</tr>
<tr>
<td>Firefox 4+</td>
<td>getCSSPropertyValue works only for computedStyle, not style</td>
</tr>
<tr>
<td>Chrome 14+</td>
<td>Works correctly</td>
</tr>
<tr>
<td>Opera 10+</td>
<td>Not supported (exception thrown)</td>
</tr>
<tr>
<td>IE9+</td>
<td>Not tested</td>
</tr>
</thead>
</table>
<p>In version 0.5.3 of lib-gwt-svg, I have developed a few classes to emulate most of the behavior of SVGPaint and CSSValue and map it to GWT. The implementation is based on parsing the css text value of the css properties to create a small graph of objects representing the color. The shortcoming of this approach is that this graph is an emulation: changing it will not affect the original CSS property. With this restriction in mind, it is now possible however to write applications which manipulate SVG paint and dash arrays, in a portable way. If browser implementations make enough progress, I plan to switch to the native implementation.</p>
<p>Here is sample code which uses it:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">OMSVGCircleElement circle = (OMSVGCircleElement)OMSVGParser.currentDocument().getElementById(&quot;c1&quot;);<br />
OMSVGPaint paint = (OMSVGPaint)circle.getStyle().getSVGPropertyCSS(SVGConstants.CSS_FILL_PROPERTY);<br />
OMRGBColor green = paint.getRgbColor().getGreen();<br />
float greenValue = green.getFloatValue(green.getPrimitiveType());<br />
OMCSSValueList dashArray = (OMCSSValueList)circle.getStyle().getSVGPropertyCSS(SVGConstants.CSS_STROKE_DASH_ARRAY_PROPERTY);<br />
OMCSSPrimitiveValue dash1 = (OMCSSPrimitiveValue)dashArray.getItem(0);<br />
float dash1Value = dash1.getFloatValue(dash1.getPrimitiveType());</div></div>
<p>To conclude this post, here is <a href="../mvn-sites/lib-gwt-svg/apidocs/org/vectomatic/dom/svg/OMSVGPaint.html" title="OMSVGPaint documentation">a pointer to the javadoc documentation</a> of this API.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/lib-gwt-svg/svg-paint/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A file API for GWT</title>
		<link>http://www.vectomatic.org/google-web-toolkit/a-file-api-for-gwt</link>
		<comments>http://www.vectomatic.org/google-web-toolkit/a-file-api-for-gwt#comments</comments>
		<pubDate>Tue, 29 Mar 2011 19:34:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=653</guid>
		<description><![CDATA[<p>This post presents lib-gwt-file, a library which encapsulates the W3C File API and the HTML5 drag-and-drop interfaces.</p> <p>Let me begin by explaining why I developed this library and how I expect it to evolve. I am currently developing an SVG editor based on GWT and lib-gwt-svg and to be truly useful, users need to be [...]]]></description>
			<content:encoded><![CDATA[<p>This post presents <a href="../lib-gwt-file">lib-gwt-file</a>, a library which encapsulates the W3C File API and the HTML5 drag-and-drop interfaces.</p>
<p>Let me begin by explaining why I developed this library and how I expect it to evolve. I am currently developing an SVG editor based on GWT and lib-gwt-svg and to be truly useful, users need to be able to update the drawings they have on their own computer. I came across a <a title="Using files from web applications" href="https://developer.mozilla.org/en/using_files_from_web_applications">mozilla article</a> presenting the file API support they have built into FF3.6 and FF4. This was exactly what I needed, except I needed it in GWT form. I read the specs (<a title="W3C file API" href="http://dev.w3.org/2006/webapi/FileAPI/">W3C file API</a> and <a title="Drag and drop" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html">HTML drag-and-drop</a>) and implemented what I needed to cover my needs. It then appeared to me that other developers would probably have this need too and that it would be mutually beneficial to share this code.</p>
<p>I do not expect this library to live a very long life. The specifications are still in draft stage, but the GWT team will probably implement it in a not too distant future (2012 ?) as the feature is general enough and important enough to make it into GWT; they are probably waiting for the spec to mature a bit and the other browser vendors (opera, microsoft) to implement it. Until they do, you can rely on lib-gwt-file to implement your local file open functionality. Migration to the official GWT API once it exists should not be too difficult.</p>
<p>At the moment the lib is not very well documented or tested (version 0.1), but I am using it and it works for me. You can look at the <a href="../lib-gwt-file">project page</a> for details. There is a <a href="../gwt/lib-gwt-file-test/lib-gwt-file-test.html">sample</a> with code source available. It runs in FF4 and Chromium. Note that the code is compatible with GWT UiBinder: it declares new event classes and you can use the standard UiBinder event hookup facility to automatically register for these events (this is what the sample does).</p>
<p>&nbsp;</p>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 272px; width: 1px; height: 1px; overflow: hidden;">documented</div>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/google-web-toolkit/a-file-api-for-gwt/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>IE9 and lib-gwt-svg</title>
		<link>http://www.vectomatic.org/lib-gwt-svg/ie9-and-lib-gwt-svg</link>
		<comments>http://www.vectomatic.org/lib-gwt-svg/ie9-and-lib-gwt-svg#comments</comments>
		<pubDate>Thu, 18 Nov 2010 21:49:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[lib-gwt-svg]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://www.vectomatic.org/?p=616</guid>
		<description><![CDATA[<p>A first (small) step has been made on the way towards running lib-gwt-svg apps into IE9. I have done some tests with the latest code available (called &#8220;platform preview 7&#8243;). The good news first: a few of the tabs in lib-gwt-svg-samples work, with the present unmodified code (version 0.5.0): shapes, events, features. This is encouraging [...]]]></description>
			<content:encoded><![CDATA[<p>A first (small) step has been made on the way towards running lib-gwt-svg apps into IE9. I have done some tests with the latest code available (called &#8220;platform preview 7&#8243;). The good news first: a few of the tabs in <a href="../gwt/lib-gwt-svg-samples/lib-gwt-svg-samples.html">lib-gwt-svg-samples</a> work, with the present unmodified code (version 0.5.0): shapes, events, features. This is encouraging because it means you can create SVG shapes and receive events. The bad news now: all the other apps are not working (yet).</p>
<p>How do I interpret these results ? It seems IE9 is a two headed beast, and these two heads do not talk to each other at all. Either you choose the new IE9 mode, by putting the HTML5 doctype header in your document; or you choose the compatibility mode. </p>
<p>In IE9 mode, you must do everything by the standards (CSS layout, HTML5, W3C DOM APIs). If you deviate a tiny bit or try to use the old IE way, it won&#8217;t work, contrary to other browsers which know how to handle legacy and degrade more gracefully. </p>
<p>In compatibility mode, you basically have that outdated and full of quirks and bugs browser, which knows nothing of the new features but has good compatibility with legacy MS apps.</p>
<p>So you cannot have your cake and eat it too. Currently this is not very good for the combination of GWT and lib-gwt-svg. GWT has not evolved yet, its widget library is designed for the old version of the browser, so GWT apps probably will work better in compatibility mode. However lib-gwt-svg is clearly designed to work in IE9 mode, because it requires SVG, only available in this mode. This is why (I think) so few apps currently work: as soon as you start doing GWT UI in IE9 mode, it breaks. Probably the GWT team will have to address IE9 in IE9 mode as a completely new user agent, which is a lot of work.  There are chances most apps will run unmodified once this done. To encourage google engineers, you can vote for <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=5125">issue 5125</a> to show your interest in the topic (click on the star next to the issue number).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/lib-gwt-svg/ie9-and-lib-gwt-svg/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance improvements of GWT2.1 for long-based computations</title>
		<link>http://www.vectomatic.org/lib-gwt-svg/performance-improvements-of-gwt2-1-for-long-based-computations</link>
		<comments>http://www.vectomatic.org/lib-gwt-svg/performance-improvements-of-gwt2-1-for-long-based-computations#comments</comments>
		<pubDate>Wed, 10 Nov 2010 18:33:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[lib-gwt-svg]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=605</guid>
		<description><![CDATA[<p>The port of lib-gwt-svg-chess to GWT 2.1 has highlighted an interesting fact. The application makes heavy use of java longs, notably in the attack tables of the carballo chess engines. At the time the code was written, the time to initialize the attack tables turned out to be so long (around two and a half [...]]]></description>
			<content:encoded><![CDATA[<p>The port of <a href="../lib-gwt-svg-chess">lib-gwt-svg-chess</a> to GWT 2.1 has highlighted an interesting fact. The application makes heavy use of java longs, notably in the attack tables of the carballo chess engines. At the time the code was written, the time to initialize the attack tables turned out to be so long (around two and a half minutes) that I had to pre-compute them, causing a big one-time penalty in the application download size (it was a 5MB download, somewhat mitigated by the use of HTTP deflate header, see my <a href="./a-chess-engine-in-javascript-performance-issues">previous post</a> of the topic). Since then, GWT 2.1 has introduced a revamped emulation of java longs, and browsers javascript engines are now much faster. I have been able to get rid of the pre-computed tables and compute them on the fly. The execution time for this part of the code is now:</p>
<table border="0">
<tbody>
<tr>
<th>Browser</th>
<th>Ellapsed time</th>
</tr>
<tr>
<td>Firefox 3.6</td>
<td>23s</td>
</tr>
<tr>
<td>Opera 10.63</td>
<td>14s</td>
</tr>
<tr>
<td>Chrome 7</td>
<td>0.5s</td>
</tr>
<tr>
<td>Firefox 4.0b7</td>
<td>3s</td>
</tr>
</tbody>
</table>
<p>This certainly beats downloading 4MB of attack tables. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/lib-gwt-svg/performance-improvements-of-gwt2-1-for-long-based-computations/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More on CSS layout of SVG applications</title>
		<link>http://www.vectomatic.org/lib-gwt-svg/more-on-css-layout-of-svg-applications</link>
		<comments>http://www.vectomatic.org/lib-gwt-svg/more-on-css-layout-of-svg-applications#comments</comments>
		<pubDate>Wed, 10 Nov 2010 18:25:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[lib-gwt-svg]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=603</guid>
		<description><![CDATA[<p>lib-gwt-svg-samples and lib-gwt-svg-chess have been fully ported to GWT2.1 and I am releasing today these new versions. These applications were already working with GWT2.1 but they were still using deprecated classes for UI layout. They have been transposed to a 100% CSS-based, strict-mode layout, so the resizing should be faster and the layout more consistent [...]]]></description>
			<content:encoded><![CDATA[<p><a href="../gwt/lib-gwt-svg-samples/lib-gwt-svg-samples.html">lib-gwt-svg-samples</a> and <a href="../gwt/lib-gwt-svg-chess/lib-gwt-svg-chess.html">lib-gwt-svg-chess</a> have been fully ported to <a href="http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html">GWT2.1</a> and I am releasing today these new versions. These applications were already working with GWT2.1 but they were still using deprecated classes for UI layout. They have been transposed to a 100% CSS-based, strict-mode layout, so the resizing should be faster and the layout more consistent accross browsers (see my <a href="./on-svg-css-and-gwt">previous post</a> on CSS layout for SVG elements in GWT applications). I have also pushed the code of lib-gwt-svg-samples to the <a href="http://repo2.maven.org/maven2/org/vectomatic/">maven central repository</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/lib-gwt-svg/more-on-css-layout-of-svg-applications/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lib-gwt-svg 0.5 is available</title>
		<link>http://www.vectomatic.org/lib-gwt-svg/lib-gwt-svg-0-5-is-available</link>
		<comments>http://www.vectomatic.org/lib-gwt-svg/lib-gwt-svg-0-5-is-available#comments</comments>
		<pubDate>Sat, 30 Oct 2010 15:29:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[lib-gwt-svg]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://localhost/vectomatic/?p=583</guid>
		<description><![CDATA[<p>I am releasing today version 0.5 of lib-gwt-svg. The new version contains many new features.</p> The API has been migrated to include the lastest update from the SVG specification (SVG 1.1 second edition, W3C Working Draft 22 June 2010). See the release notes for details of the API changes. Documentation captured from the SVG specification [...]]]></description>
			<content:encoded><![CDATA[<p>I am releasing today version 0.5 of lib-gwt-svg. The new version contains many new features.</p>
<ul>
<li>The API has been migrated to include the lastest update from the SVG specification (<a href="http://www.w3.org/TR/SVG11/">SVG 1.1 second edition, W3C Working Draft 22 June 2010</a>). See the <a href="../lib-gwt-svg/release-notes">release notes</a> for details of the API changes.</li>
<li>Documentation captured from the SVG specification has been translated to javadoc and injected everywhere in the API. All the non-W3C APIs have been documented. Many links pointing to the W3C spec have been added also.</li>
<li>Exceptions declared in the specification have been mapped to java exceptions and the corresponding throws clauses have been added to the specification. The article on <a href="./lib-gwt-svg-goals-and-design">lib-gwt-svg design</a> has been updated to reflect the design decisions behind these changes.</li>
<li>Many new helper methods have been introduced (xpath utilities, DOM-level 2 related methods, graphical methods).</li>
<li>An SVG validator has been integrated. It is enabled by default and checks at build-time all the SVG passed as SVGResource, ExternalSVGResource and inlined in UiBinder templates. The SVG validator is based on the <a href="http://www.w3.org/TR/2002/WD-SVG11-20020108/SVG.xsd">experimental XML schema</a> provided at W3C with custom fixes and improvements. It is possible to disable validation with the proper annotation or UiBinder attribute.</li>
<li>The library is now based on the <a href="http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html">GWT 2.1 final</a> release.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.vectomatic.org/lib-gwt-svg/lib-gwt-svg-0-5-is-available/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

