<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2369921299506498261</id><updated>2011-04-21T17:05:41.924-07:00</updated><title type='text'>1pxsolidblack</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://1pxsolidblack.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://1pxsolidblack.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Christian Voigt</name><uri>http://www.blogger.com/profile/02845274726854152108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2369921299506498261.post-3893906382524985922</id><published>2008-10-24T17:23:00.000-07:00</published><updated>2008-10-24T17:33:16.722-07:00</updated><title type='text'>gwt-fabridge 1.2.1 released</title><content type='html'>With GWT 1.5 the JavaScriptObject has changed and caused some problems in gwt-fabridge 1.2. This release fixes these compatibility issues. If you work with GWT 1.5 please &lt;a href="http://code.google.com/p/gwt-fabridge/downloads/list"&gt;update your version&lt;/a&gt; of gwt-fabridge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369921299506498261-3893906382524985922?l=1pxsolidblack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://1pxsolidblack.blogspot.com/feeds/3893906382524985922/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2369921299506498261&amp;postID=3893906382524985922' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default/3893906382524985922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default/3893906382524985922'/><link rel='alternate' type='text/html' href='http://1pxsolidblack.blogspot.com/2008/10/gwt-fabridge-121-released.html' title='gwt-fabridge 1.2.1 released'/><author><name>Christian Voigt</name><uri>http://www.blogger.com/profile/02845274726854152108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369921299506498261.post-7955528399599483126</id><published>2008-08-21T15:17:00.000-07:00</published><updated>2008-08-21T15:48:25.144-07:00</updated><title type='text'>gwt-fabridge 1.2 released</title><content type='html'>gwt-fabridge 1.2 updates the underyling version of &lt;a href="http://code.google.com/p/gwt2swf/"&gt;gwt2swf&lt;/a&gt; to the current version 0.6 (upgrade to swfobject 2). &lt;br /&gt;&lt;br /&gt;These changes will not affect your code except for the instantiation of SWFABridgeWidget. Thanks to changes in gwt2swf it's easier now. One way to do it is this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;//SWFABridgeWidget(String swfName, int width, int height, String bridgeName)&lt;br /&gt;SWFABridgeWidget swfWidget = new SWFABridgeWidget("app.swf",400,400,"example");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Everything else stays the &lt;a href="http://1pxsolidblack.blogspot.com/2007/10/gwt-flex-and-fabridge.html"&gt;same&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Again, there are some problems with the fabridge.js. This time it's not the combination with gwt, but with swfobject that is causing problems. Gladly, the swfobject developers have found a way to get things working, but they had to modify the javascript file (read more about it &lt;a href="http://code.google.com/p/swfobject/wiki/flex"&gt;here&lt;/a&gt;). &lt;br /&gt;&lt;br /&gt;To fix a problem between fabridge and gwt I already had modified the file myself for gwt-fabridge. So I could not use the new version. Instead I have integrated the new changes into my modified version that is compatible with gwt (inline frame problem). Please do not use any other version of fabridge.js!&lt;br /&gt;&lt;br /&gt;Let's hope that Adobe will someday integrate all these changes into the official version.&lt;br /&gt;&lt;br /&gt;You can download gwt-fabridge &lt;a href="http://code.google.com/p/gwt-fabridge/downloads/list"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369921299506498261-7955528399599483126?l=1pxsolidblack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://1pxsolidblack.blogspot.com/feeds/7955528399599483126/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2369921299506498261&amp;postID=7955528399599483126' title='5 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default/7955528399599483126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default/7955528399599483126'/><link rel='alternate' type='text/html' href='http://1pxsolidblack.blogspot.com/2008/08/gwt-fabridge-12-released.html' title='gwt-fabridge 1.2 released'/><author><name>Christian Voigt</name><uri>http://www.blogger.com/profile/02845274726854152108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369921299506498261.post-1498070104229551613</id><published>2007-12-11T08:18:00.000-08:00</published><updated>2007-12-11T08:51:15.236-08:00</updated><title type='text'>gwt-fabridge 1.1.1 released</title><content type='html'>You can download the new version &lt;a href="http://code.google.com/p/gwt-fabridge/downloads/list"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This release integrates new versions of &lt;a href="http://gwt2swf.sourceforge.net/"&gt;gwt2swf&lt;/a&gt; and the &lt;a href="https://bugs.adobe.com/jira/browse/SDK-12279"&gt;fabridge&lt;/a&gt;. Rafal Malinowski has now updated gwt2swf with the changes necessary for gwt-fabridge. You can use his original library directly with gwt-fabridge.&lt;br /&gt;&lt;br /&gt;gwt-fabridge itself has become more stable and convenient. You can now use addCompleteListener, addChangeListener, addClickListener and addOpenListener instead of the generic addEventListener. More importantly you can use JSNIUtils.convertArray(JavaScriptObject) to convert Javascript arrays to a Java ArrayList (this is convenient for Actionscript methods that return arrays). &lt;br /&gt;&lt;br /&gt;The new version of fabridge from Devin Garner "allows access to the toString, statics, constants" (more info &lt;a href="https://bugs.adobe.com/jira/browse/SDK-12279"&gt;here&lt;/a&gt;). For now I have only integrated his first version, not his second. The latter did not work with my createASObject method. Thanks to Vasile Dumitrascu for the tip!&lt;br /&gt;&lt;br /&gt;There still is no official version of FABridge, which fixes &lt;a href="http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=72&amp;catid=600&amp;threadid=1311127&amp;enterthread=y"&gt;this problem&lt;/a&gt;. You have to change your version of fabridge.js accordingly or you have to use the version that comes with gwt-fabridge.&lt;br /&gt;&lt;br /&gt;For code examples and more tips how to use the library, please read the &lt;a href="http://1pxsolidblack.blogspot.com/2007/10/gwt-flex-and-fabridge.html"&gt;previous post for 1.0&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369921299506498261-1498070104229551613?l=1pxsolidblack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://1pxsolidblack.blogspot.com/feeds/1498070104229551613/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2369921299506498261&amp;postID=1498070104229551613' title='10 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default/1498070104229551613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default/1498070104229551613'/><link rel='alternate' type='text/html' href='http://1pxsolidblack.blogspot.com/2007/12/gwt-fabridge-111-released.html' title='gwt-fabridge 1.1.1 released'/><author><name>Christian Voigt</name><uri>http://www.blogger.com/profile/02845274726854152108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369921299506498261.post-1318685547796863602</id><published>2007-10-27T11:21:00.000-07:00</published><updated>2007-12-11T08:53:32.307-08:00</updated><title type='text'>GWT, Flex and the FABridge</title><content type='html'>Earlier this year Alistair Rutherford &lt;a href="http://ccgi.arutherford.plus.com/blog/wordpress/?p=93"&gt;wrote&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;A recent thread on the GWT forum got me interested in the possibility of interfacing GWT to Adobe Flex. Adobe have released a javascript to flex ‘bridge’ component called FABridge.&lt;br /&gt;I have put together a (very) quick and dirty demo the two components talking to each other through the FABridge. This is far from finished but is does demonstrate the basic concepts.&lt;br /&gt;&lt;/blockquote&gt;At that time, the integration of &lt;a href="http://labs.adobe.com/wiki/index.php/Flex-Ajax_Bridge"&gt;FABridge&lt;/a&gt; didn't work in IE. I don't know, what exactly has changed since then. But FABridge is working now in IE. Since I am currently developing a GWT-Flex application anyhow, it was a small step to write a GWT-FABridge library for general purposes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://argunet.org/gwt-fabridge/FABridgeDemo.html"&gt;Here&lt;/a&gt; you can see this small library in action. It is now possible to access actionscript objects from GWT, get and set actionscript properties, invoke actionscript methods and even register GWT objects as Flex event listeners. The most important new classes are BridgeObject which wraps ActionscriptObjects (or to be precise the ASProxyObjects from FABridge) and SWFABridgeWidget, which extends the SWFWidget from Rafal Malinowski's great &lt;a href="http://gwt2swf.sourceforge.net/"&gt;gwt2swf&lt;/a&gt; library. Gwt2swf wraps the&lt;a href="http://blog.deconcept.com/swfobject/"&gt; SWFObject&lt;/a&gt; javascript library for GWT. This means, that gwt-fabridge can be used with multiple swf-files, just like gwt2swf.&lt;br /&gt;&lt;br /&gt;Rafal Malinowski is planning to write his own extension SWFCallableWidget in the near future. SWFCallableWidget will be compatible with Actionscript 2 and will essentially do for GWT, what FABridge does for Javascript. Probably, this will be a better approach than mine, since wrapping the FABridge has created some redundancy. Be that as it may, for the moment gwt-fabridge surely is a better and easier method for controlling swfs from GWT, than hacking your own native methods from scratch.&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="http://gwt-fabridge.googlecode.com/files/gwt-fabridge-1.1.1.rar"&gt;library&lt;/a&gt; and the simple &lt;a href="http://gwt-fabridge.googlecode.com/files/gwt-fabridge-demo-1.1.1.rar"&gt;demo&lt;/a&gt; for download. I would be glad to get some comments (I am fairly new to GWT). Please note, that you have to access the files through a http:// server address (like http://localhost) because of the swf's security sandbox.&lt;br /&gt;&lt;br /&gt;I have made some small changes in the gwt2swf classes. These changes are already in the gwt2swf cvs, but not in the current jar release, so please use the jar in the rar.&lt;br /&gt;&lt;br /&gt;The same goes for the FABridge.js. I had to change one line, because FABridge could not be called from iframes and hence not from GWT (I needed several days to figure this out and nearly gave up). More about this &lt;a href="http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=72&amp;amp;catid=600&amp;amp;threadid=1311127&amp;amp;enterthread=y"&gt;here&lt;/a&gt;. I hope that this iframe-support will be added in the next version of FABridge.&lt;br /&gt;&lt;br /&gt;Here are some code snippets which show you how to use the new classes (all code comes from the example class, in which I used the app.swf from &lt;a href="http://flexapps.macromedia.com/labs/fabridge/samples/FABridgeSample.html"&gt;Adobes example&lt;/a&gt;):&lt;br /&gt;&lt;h4&gt;Creating a New SWFABridgeWidget&lt;/h4&gt;&lt;pre&gt;//Parameter for SWFObject&lt;br /&gt;SWFParams params = new SWFParams("app.swf", new Integer(400),new Integer(400));&lt;br /&gt;&lt;br /&gt;// set bridge name flashVar for FABridge&lt;br /&gt;params.addVar("bridgeName", "example");&lt;br /&gt;swfWidget = new SWFABridgeWidget(params);&lt;br /&gt;&lt;br /&gt;// add swfWidget to RootPanel&lt;br /&gt;RootPanel.get().add(swfWidget);&lt;br /&gt;&lt;br /&gt;//show swf movie&lt;br /&gt;swfWidget.show();&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;Adding an Initialization Callback&lt;br /&gt;&lt;/h4&gt;&lt;pre&gt;// add initialization listener&lt;br /&gt;swfWidget.addInitializationListener(new IInitializationListener(){&lt;br /&gt;public void onInitialization() {&lt;br /&gt;// get width of the swf&lt;br /&gt;Object width = swfWidget.root().getProperty("width").getContent();&lt;br /&gt;Integer test = new Integer(width.toString());&lt;br /&gt;Window.alert("Swf Initialized. Width: " + test);&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;Getting and Setting an Actionscript Property&lt;br /&gt;&lt;/h4&gt;&lt;pre&gt;// get check box&lt;br /&gt;BridgeObject check = swfWidget.root().getObject("check");&lt;br /&gt;// get check box status&lt;br /&gt;Boolean status = new Boolean(check.getProperty("selected").getContent().toString());&lt;br /&gt;// change check box status&lt;br /&gt;check.setProperty("selected", !status.booleanValue());&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;How to register an Actionscript EventListener&lt;br /&gt;&lt;/h4&gt;&lt;pre&gt;// add click listener to flex button&lt;br /&gt;swfWidget.root().getObject("button").addEventListener("click",&lt;br /&gt;new ISWFListener() {&lt;br /&gt;&lt;br /&gt;public void onSWFEvent(JavaScriptObject event) {&lt;br /&gt;Window.alert("Hello, GWT! Love, Actionscript...");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;// add change listener to flex slider&lt;br /&gt;swfWidget.root().getObject("slider").addEventListener("change",&lt;br /&gt;new ISWFListener() {&lt;br /&gt;public void onSWFEvent(JavaScriptObject event) {&lt;br /&gt;// wrap event object into bridge object&lt;br /&gt;BridgeObject e = new BridgeObject(event);&lt;br /&gt;// get slider value from event object&lt;br /&gt;sliderLabel.setText(e.getProperty("value").getContent().toString());&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;How to create a new DataGrid&lt;br /&gt;&lt;/h4&gt;&lt;pre&gt;BridgeObject flexApp = swfWidget.root();&lt;br /&gt;&lt;br /&gt;// create new data grid&lt;br /&gt;BridgeObject grid = swfWidget.create("mx.controls.DataGrid");&lt;br /&gt;&lt;br /&gt;// create first column&lt;br /&gt;BridgeObject col1 = swfWidget.create("mx.controls.dataGridClasses.DataGridColumn");&lt;br /&gt;col1.setProperty("dataField", "apples");&lt;br /&gt;&lt;br /&gt;// create second column&lt;br /&gt;BridgeObject col2 = swfWidget.create("mx.controls.dataGridClasses.DataGridColumn");&lt;br /&gt;col2.setProperty("dataField", "oranges");&lt;br /&gt;&lt;br /&gt;// add columns to data grid&lt;br /&gt;JavaScriptObject jsArray = JSNIUtils&lt;br /&gt;.convertArray(new JavaScriptObject[] {&lt;br /&gt;col1.getJSContent(), col2.getJSContent() });&lt;br /&gt;grid.setProperty("columns", jsArray);&lt;br /&gt;grid.setProperty("width", 300);&lt;br /&gt;&lt;br /&gt;// create first row&lt;br /&gt;BridgeParameterObject row1 = new BridgeParameterObject();&lt;br /&gt;row1.addProperty("apples", 12);&lt;br /&gt;row1.addProperty("oranges", 32);&lt;br /&gt;&lt;br /&gt;// create second row&lt;br /&gt;BridgeParameterObject row2 = new BridgeParameterObject();&lt;br /&gt;row2.addProperty("apples", 15);&lt;br /&gt;row2.addProperty("oranges", 24);&lt;br /&gt;&lt;br /&gt;// set dataProvider&lt;br /&gt;grid.setProperty("dataProvider", JSNIUtils&lt;br /&gt;.convertArray(new JavaScriptObject[] {&lt;br /&gt;row1.getObject(), row2.getObject() }));&lt;br /&gt;&lt;br /&gt;// add grid to panel&lt;br /&gt;BridgeParameter params = new BridgeParameter();&lt;br /&gt;params.addParameter(grid.getJSContent());&lt;br /&gt;flexApp.getObject("panel").invokeMethod("addChild",params.getParameter());&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369921299506498261-1318685547796863602?l=1pxsolidblack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://1pxsolidblack.blogspot.com/feeds/1318685547796863602/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2369921299506498261&amp;postID=1318685547796863602' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default/1318685547796863602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369921299506498261/posts/default/1318685547796863602'/><link rel='alternate' type='text/html' href='http://1pxsolidblack.blogspot.com/2007/10/gwt-flex-and-fabridge.html' title='GWT, Flex and the FABridge'/><author><name>Christian Voigt</name><uri>http://www.blogger.com/profile/02845274726854152108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
