<?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>Weave &#187; Simon Widjaja</title>
	<atom:link href="http://www.weave.de/tag/simon-widjaja/feed" rel="self" type="application/rss+xml" />
	<link>http://www.weave.de</link>
	<description>Webdesign, Konzeption &#38; Development</description>
	<lastBuildDate>Mon, 06 Feb 2012 10:38:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Goodbye FFK: Hello beyondtellerrand &#8211; play!</title>
		<link>http://www.weave.de/allgemeines/goodbye-ffk-hello-beyondtellerrand-play</link>
		<comments>http://www.weave.de/allgemeines/goodbye-ffk-hello-beyondtellerrand-play#comments</comments>
		<pubDate>Wed, 18 Jan 2012 11:17:58 +0000</pubDate>
		<dc:creator>le</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Termine]]></category>
		<category><![CDATA[Weblog]]></category>
		<category><![CDATA[Creative JS]]></category>
		<category><![CDATA[FFK]]></category>
		<category><![CDATA[Flshforum]]></category>
		<category><![CDATA[Joshua Davis]]></category>
		<category><![CDATA[Köln]]></category>
		<category><![CDATA[Marc Thiele]]></category>
		<category><![CDATA[Simon Widjaja]]></category>

		<guid isPermaLink="false">http://www.weave.de/?p=6106</guid>
		<description><![CDATA[Die FFK war einmal&#8230;das immer ausgebuchte Event für die deutsche und internationale Flasher-Szene, die FlashforumKonferenz in Köln, heißt nun beyondtellerrand &#8211; play. Die Namens- und Konzeptänderung erklärt Veranstalter Marc Thiele hier in einem Interview mit Weave-Autor Simon Widjaja. Nur soviel sei verraten: Statt ausschließlich Flash-Sessions gibt es diesmal ein größeres Themenspektrum. Grant Skinner wird etwa über EasleJS [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.weave.de/wp-content/uploads/2012/01/btplay_logo-1.png"><img class="alignnone size-large wp-image-6107" title="btplay_logo-1" src="http://www.weave.de/wp-content/uploads/2012/01/btplay_logo-1-1024x462.png" alt="" width="553" height="249" /></a></p>
<p>Die FFK war einmal&#8230;das immer ausgebuchte Event für die deutsche und internationale Flasher-Szene, die FlashforumKonferenz in Köln, heißt nun <a href="http://play12.beyondtellerrand.com" target="_blank">beyondtellerrand &#8211; play</a>. Die Namens- und Konzeptänderung erklärt Veranstalter Marc Thiele hier in einem <a href="http://bynd.it/t3iplk" target="_blank">Interview</a> mit Weave-Autor Simon Widjaja.<span id="more-6106"></span></p>
<p>Nur soviel sei verraten: Statt ausschließlich Flash-Sessions gibt es diesmal ein größeres Themenspektrum. Grant Skinner wird etwa über EasleJS sprechen, Seb-Lee Delisle zwei Workshops zu JavaScript machen, einen davon für Nicht-Programmierer (&#8220;Creative JS for Designers&#8221;) und auch Joshua Davis erzählt nicht über Flash&#8230;</p>
<p>Es finden aber wie gehabt eine eintägige Pre-Konferenz am 24. April mit Workshops sowie im Anschluss ein zweitägiger Kongress (25. &amp; 26. April) statt. Ebenfalls gibt es die Post-Konferenz-Workshops am 27. April. Auch geblieben ist der Ort der Veranstaltung, der Mediapark, Köln. Tickets zum Early Bird Preis gibt es <a href="http://play12.beyondtellerrand.com/registration.php" target="_blank">hier</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weave.de/allgemeines/goodbye-ffk-hello-beyondtellerrand-play/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WEAVE 03.2011 – Flash Content verwalten</title>
		<link>http://www.weave.de/linklisten/flashcms0311</link>
		<comments>http://www.weave.de/linklisten/flashcms0311#comments</comments>
		<pubDate>Wed, 04 May 2011 05:18:07 +0000</pubDate>
		<dc:creator>ilona</dc:creator>
				<category><![CDATA[Linklisten]]></category>
		<category><![CDATA[Weblog]]></category>
		<category><![CDATA[Content Management Flash]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Flash CMS]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Moto CMS]]></category>
		<category><![CDATA[Rainbow LIve]]></category>
		<category><![CDATA[Royale/CMS]]></category>
		<category><![CDATA[Simon Widjaja]]></category>
		<category><![CDATA[SpryFlash CMS]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://www.weave.de/?p=4803</guid>
		<description><![CDATA[Nichts ist so alt wie der Content von gestern. Deshalb wollen immer mehr Kunden per Content-Management-System ihre Websites aktualisieren. Flash-Redaktionslösungen sind allerdings rar. Webentwickler Simon Widjaja stellt in der WEAVE 03.2011 die wichtigsten Lösungen vor, zeigt Fallstricke bei der Suche nach dem richtigen System auf und gibt Entscheidungshilfen. Eine Übersicht der wichtigsten Lösungen haben wir [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-4805" title="Simon-Widjaja" src="http://www.weave.de/wp-content/uploads/2011/04/Simon-Widjaja1.jpg" alt="" width="570" height="468" /></p>
<p>Nichts ist so alt wie der Content von gestern. Deshalb wollen immer mehr Kunden per Content-Management-System ihre Websites aktualisieren. Flash-Redaktionslösungen sind allerdings rar. Webentwickler Simon Widjaja stellt in der WEAVE 03.2011 die wichtigsten Lösungen vor, zeigt Fallstricke bei der Suche nach dem richtigen System auf und gibt Entscheidungshilfen. Eine Übersicht der wichtigsten Lösungen haben wir auch hier für Sie zusammen gestellt.<span id="more-4803"></span></p>
<p><span style="color: #800000;"><strong>Moto CMS</strong></span><br />
 <strong>Typ: </strong>WYSIWYG-Framework <br />
 <strong>Anwendungsbereich: </strong>Online Präsentationen, Flash-Sites<br />
 <strong>Flex-Support:</strong> nein<br />
 <strong>Multilanguage:</strong> nein<br />
 <strong>Multiscreen-Support:</strong> nein<br />
 <strong>Workflows/Freigabe/Revisionen: </strong>nein<br />
 <strong>SEO: </strong>ja<br />
 <strong>Verfügbare Templates:</strong> 73<br />
 <strong>Größe des Entwicklerteams: </strong>k.A.<br />
 <strong>Verfügbar seit:</strong> Ende 2009<br />
 <strong>Testversion:</strong> Uneingeschränkte 30-Tage-Version, Online-Demo von jedem Template<br />
 <strong>Erweiterbar:</strong> Ja, mit Widgets und offener API<br />
 <strong>White-Label-Option:</strong> ja<br />
 <strong>Preis:</strong> 199 Dollar<br />
 <strong>URL:</strong> <a href="http://www.motocms.com" target="_blank">www.motocms.com</a></p>
<p><span style="color: #800000;"><strong>SpryFlash CMS</strong></span><br />
 <strong>Typ: </strong>WYSIWYG-Framework <br />
 <strong>Anwendungsbereich: </strong>Microsites, Prototypen, ößere Flash-Seiten<br />
 <strong>Flex-Support:</strong> nein<br />
 <strong>Multilanguage:</strong> ja<br />
 <strong>Multiscreen-Support:</strong> geplant<br />
 <strong>Workflows/Freigabe/Revisionen:</strong> nein<br />
 <strong>SEO:</strong> ja<br />
 <strong>Verfügbare Templates:</strong> k.A.<br />
 <strong>Größe des Entwicklerteams:</strong> vier Personen<br />
 <strong>Verfügbar seit:</strong> Ende 2010<br />
 <strong>Testversion:</strong> Uneingeschränkte 30-Tage-Version<br />
 <strong>Erweiterbar:</strong> Ja, offene API<br />
 <strong>White-Label-Option:</strong> ja<br />
 <strong>Preis:</strong> 390 Euro / Website<br />
 <strong>URL:</strong> <a href="http://www.spryflash.com" target="_blank">www.spryflash.com </a></p>
<p><span style="color: #800000;"><strong>Royale/CMS</strong></span><br />
 <strong>Typ:</strong> Datenprovider (XML) <br />
 <strong>Anwendungsbereich:</strong> Flash-Sites aller Art, RIA<br />
 <strong>Flex-Support: </strong>ja<br />
 <strong>Multilanguage:</strong> bedingt<br />
 <strong>Multiscreen-Support:</strong> ja<br />
 <strong>Workflows/Freigabe/Revisionen:</strong> bedingt<br />
 <strong>SEO: </strong>möglich <br />
 <strong>Verfügbare Templates: </strong>keine<br />
 <strong>Größe des Entwicklerteams:</strong> k.A.<br />
 <strong>Verfügbar seit: </strong>Ende 2009<br />
 <strong>Testversion: </strong>30-Tage-Trial-Version<br />
 <strong>Erweiterbar:</strong> nein<br />
 <strong>White-Label-Option: </strong>ja<br />
 <strong>Preis: </strong>199 Dollar / Website<br />
 <strong>URL:</strong> <a href="http://www.royalecms.com" target="_blank">www.royalecms.com</a></p>
<p><span style="color: #800000;"><strong>Rainbow Live</strong></span><br />
 <strong>Typ:</strong> Datenprovider (XML) <br />
 <strong>Anwendungsbereich:</strong> Flash-Sites jeglicher Art / RIA<br />
 <strong>Flex-Support: </strong>ja<br />
 <strong>Multilanguage:</strong> nein<br />
 <strong>Multiscreen-Support:</strong> ja<br />
 <strong>Workflows/Freigabe/Revisionen:</strong> bedingt<br />
 <strong>SEO: </strong>möglich <br />
 <strong>Verfügbare Templates:</strong> keine<br />
 <strong>Größe des Entwicklerteams:</strong> k.A.<br />
 <strong>Verfügbar seit:</strong> Ende 2009<br />
 <strong>Testversion:</strong> Uneingeschränkte 30-Tage-Version<br />
 <strong>Erweiterbar:</strong> Ja, mit Widgets und offener API<br />
 <strong>White-Label-Option:</strong> k.A.<br />
 <strong>Preis:</strong> 99 Dollar<br />
 <strong>URL:</strong> <a href="http://www.codeandvisual.com/rainbow" target="_blank">www.codeandvisual.com/rainbow </a></p>
<p><span style="color: #800000;"><strong>Drupal, TYPO3, Joomla</strong></span><br />
 <strong>Typ: </strong>HTML-CMS mit Möglichkeit für Datenprovider (XML, AMF et cetera)<br />
 <strong>Anwendungsbereich: </strong>Flash-Seiten aller Art, RIA, <br />
 <strong>Flex-Support:</strong> ja<br />
 <strong>Multilanguage:</strong> ja<br />
 <strong>Multiscreen-Support:</strong> ja<br />
 <strong>Workflows/Freigabe/Revisionen:</strong> ja<br />
 <strong>SEO:</strong> ja<br />
 <strong>Verfügbare Templates:</strong> ja, aber nur für HTML<br />
 <strong>Größe des Entwicklerteams:</strong> über 100 Personen<br />
 <strong>Erweiterbar:</strong> ja<br />
 <strong>White-Label-Option:</strong> ja<br />
 <strong>Preis:</strong> OpenSource<br />
 <strong>URL:</strong> <a href="http://www.drupal.org" target="_blank">www.drupal.org</a>, <a href="http://typo3.org/" target="_blank">typo3.org</a>, <a href="http://www.joomla.org" target="_blank">www.joomla.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.weave.de/linklisten/flashcms0311/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WEAVE 02.2011 – Quellcode für AIR-2-Android-Tutorial</title>
		<link>http://www.weave.de/code/burrito0211</link>
		<comments>http://www.weave.de/code/burrito0211#comments</comments>
		<pubDate>Tue, 15 Mar 2011 06:49:34 +0000</pubDate>
		<dc:creator>ilona</dc:creator>
				<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Weblog]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flash Builder Burrito]]></category>
		<category><![CDATA[Flex Hero]]></category>
		<category><![CDATA[Simon Widjaja]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.weave.de/?p=4378</guid>
		<description><![CDATA[Flash Builder Burrito und Flex Hero sollen Entwicklern das Leben erleichtern, denn mit den Public Betas kann man Desktop-, Browser- und mobile Anwendungen mit einem einzigen Werkzeug realisieren. Simon Widjaja zeigt in der WEAVE 02.2011 – die am 21. März erscheint – Schritt für Schritt, wie Sie eine einfache Android-App mit Bookmarks und Videos erstellen. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-4379" title="AIR2Android_Tutorial_0211" src="http://www.weave.de/wp-content/uploads/2011/03/AIR2Android_Tutorial_0211.jpg" alt="" width="570" height="334" /></p>
<p>Flash Builder Burrito und Flex Hero sollen Entwicklern das Leben erleichtern, denn mit den Public Betas kann man Desktop-, Browser- und mobile Anwendungen mit einem einzigen Werkzeug realisieren. Simon Widjaja zeigt in der WEAVE 02.2011 – die am 21. März erscheint – Schritt für Schritt, wie Sie eine einfache Android-App mit Bookmarks und Videos erstellen. Den dazu gehörenden Quellcode gibt es hier zum <a href="http://www.weave.de/wp-content/uploads/2011/03/WEAVEtutorial_AIR2Android.zip">Herunterladen</a>.</p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.weave.de/code/burrito0211/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WEAVE 05.10 – Android-Apps entwickeln</title>
		<link>http://www.weave.de/code/android0510</link>
		<comments>http://www.weave.de/code/android0510#comments</comments>
		<pubDate>Tue, 14 Sep 2010 06:37:42 +0000</pubDate>
		<dc:creator>ilona</dc:creator>
				<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Weblog]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[Simon Widjaja]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Zeiterfassung]]></category>

		<guid isPermaLink="false">http://www.weave.de/?p=2973</guid>
		<description><![CDATA[Androider Zeitrekorder Googles mobiles Betriebssystem wird immer populärer und das Entwickeln von Android-Apps damit lukrativer. Web-Entwickler Simon Widjaja (www.simonwidjaja.com) zeigt in der WEAVE 05.2010 (ab 20. September am Kiosk) Schritt für Schritt, wie Sie mit einfachen Mitteln Ihre erste native App erstellen können: Eine Zeiterfassung, die Daten in der integrierten SQLite-Datenbank ablegt und auf Ihre [...]]]></description>
			<content:encoded><![CDATA[<h2><a href="http://www.weave.de/wp-content/uploads/2010/09/simonwidjaja.jpg"><img class="alignleft size-full wp-image-2975" title="simonwidjaja" src="http://www.weave.de/wp-content/uploads/2010/09/simonwidjaja.jpg" alt="" width="600" height="303" /></a></h2>
<h2><span style="color: #008080;">Androider Zeitrekorder</span></h2>
<p>Googles mobiles Betriebssystem wird immer populärer und das Entwickeln von Android-Apps damit lukrativer. Web-Entwickler Simon Widjaja (<a href="http://www.simonwidjaja.com/" target="_blank">www.simonwidjaja.com</a>) zeigt in der WEAVE 05.2010 (ab 20. September am Kiosk) Schritt für Schritt, wie Sie mit einfachen Mitteln Ihre erste native App erstellen können: Eine Zeiterfassung, die Daten in der integrierten SQLite-Datenbank ablegt und auf Ihre Kontakte zugreift. Die Beispieldaten und Code-Schnipsel zu diesem Tutorial können Sie hier herunter laden: <a href="http://www.weave.de/wp-content/uploads/2010/09/weave_simonwidjaja_android_timerecorder.zip">CODE-SNIPPETS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.weave.de/code/android0510/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WEAVE 01.10 – Data Centric Development</title>
		<link>http://www.weave.de/code/flashbuilder4dcd0110</link>
		<comments>http://www.weave.de/code/flashbuilder4dcd0110#comments</comments>
		<pubDate>Sun, 10 Jan 2010 05:00:00 +0000</pubDate>
		<dc:creator>le</dc:creator>
				<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Simon Widjaja]]></category>

		<guid isPermaLink="false">http://www.weave.de/?p=1916</guid>
		<description><![CDATA[Kontaktverwaltung mit Flash Builder 4 Mit Flash Builder 4 hält ein neuer Workflow Einzug in die Entwicklung von Rich-Internet-Applikationen. Entwickler Simon Widjaja zeigt, wie Sie mit den neuen Werkzeugen rund ums Data Centric Development (DCD) eine Flex-basierte Kontaktdaten-Verwaltung mit PHP-Backend realisieren – ohne eine Zeile PHP-Code. Hier gibt es das Flex-Projekt zum Herunterladen und ausprobieren.]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #ff9900;">Kontaktverwaltung mit Flash Builder 4 </span></h2>
<p><em>Mit Flash Builder 4 hält ein neuer Workflow Einzug in die Entwicklung von Rich-Internet-Applikationen. Entwickler Simon Widjaja zeigt, wie Sie mit den neuen Werkzeugen rund ums Data Centric Development (DCD) eine Flex-basierte Kontaktdaten-Verwaltung mit PHP-Backend realisieren – ohne eine Zeile PHP-Code. Hier gibt es das Flex-Projekt zum <a href="http://www.weave.de/wp-content/uploads/2009/12/WEAVE_DCD0110.zip" target="_blank">Herunterladen</a></em><em> und ausprobieren.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.weave.de/code/flashbuilder4dcd0110/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WEAVE 05.09 – AIR-Anwendung lokaler Datenbank</title>
		<link>http://www.weave.de/code/airworkshop0509</link>
		<comments>http://www.weave.de/code/airworkshop0509#comments</comments>
		<pubDate>Tue, 25 Aug 2009 05:00:08 +0000</pubDate>
		<dc:creator>fwolf</dc:creator>
				<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Bookmarking Verwaltung]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Simon Widjaja]]></category>
		<category><![CDATA[SQLight]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.weave.de/?p=1500</guid>
		<description><![CDATA[Bookmark-Anwendung mit AIR Die Adobe Integrated Runtime (AIR) ermöglicht die Entwicklung plattformübergreifender Webanwendungen für den Desktop, wie sie zum Beispiel von eBay oder AOL eingesetzt werden. Mit dem folgenden Quellcode von Simon Widjaja können Sie in rund drei Stunden eine kleine Anwendung zur Verwaltung von Bookmarks entwickeln. 1// Value Object definieren {{Listing com.simonwidjaja.workshop.BookmarkVO}} package com.simonwidjaja.workshop [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #808000;">Bookmark-Anwendung mit AIR</span></h2>
<p>Die Adobe Integrated Runtime (AIR) ermöglicht die Entwicklung plattformübergreifender Webanwendungen für den Desktop, wie sie zum Beispiel von eBay oder AOL eingesetzt werden. Mit dem folgenden Quellcode von Simon Widjaja können Sie in rund drei Stunden eine kleine Anwendung zur Verwaltung von Bookmarks entwickeln.</p>
<h3>1// Value Object definieren</h3>
<p>{{Listing com.simonwidjaja.workshop.BookmarkVO}}</p>
<pre lang="actionscript">
package com.simonwidjaja.workshop
{
  [Bindable]
  public class BookmarkVO
  {
    public var id:int;
    public var url:String;
    public var title:String;
    public var description:String;

    public function BookmarkVO( object:Object=null ):void {
      if ( object ) {
        id = object.id;
        url = object.url;
        title = object.title;
        description = object.description;
      }
    }
  }
}</pre>
<h3>2// Datenbankverbindung herstellen</h3>
<p>{{Listing: DatabaseConnector (1)}}</p>
<pre lang="actionscript">package com.simonwidjaja.workshop
{
  import flash.data.SQLConnection;
  import flash.data.SQLResult;
  import flash.data.SQLStatement;
  import flash.filesystem.File;

  public class DatabaseConnector
  {
    [Bindable] public var bookmarks:Array = new Array();

    private var conn:SQLConnection;
    private var firstTimeFlag:Boolean;

    private static var _instance:DatabaseConnector;
    public static function getInstance():DatabaseConnector {
      if ( !_instance )
        _instance = new DatabaseConnector( new SingletonEnforcer() );
      return _instance;
    }

    public function DatabaseConnector( singleton:SingletonEnforcer ) {
    }

    public function connect():void {
      var file:File = File.applicationStorageDirectory.resolvePath( „Datenbank“ );
      trace( „file.nativePath: „+file.nativePath );
      firstTimeFlag = ( file.exists ) ? false : true;
      conn = new SQLConnection();
      conn.open( file );
      if ( firstTimeFlag ) createTable();
      //else                fetchAllBookmarks();
    }

    private function createTable():void {
      var statement:SQLStatement = new SQLStatement();
      statement.sqlConnection = conn;
      statement.text = „CREATE TABLE bookmarks ( id INTEGER PRIMARY KEY AUTOINCREMENT, „ +
          „url CHAR(200), title CHAR(200), description CHAR(1000) );“;
      statement.execute();
    }
    // Hier folgen spŠter die CRUD-Methoden
  }
}
class SingletonEnforcer {}</pre>
<p>Um sicherzustellen, dass unsere Datenbank wie gewünscht angelegt wird, können wir testweise die <code>connect()</code>-Methode direkt in unserem MXML-Dokument wie folgt ausführen:</p>
<pre lang="xml">
    <![CDATA[
      import com.simonwidjaja.workshop.DatabaseConnector;
      DatabaseConnector.getInstance().connect();
    ]]&gt;
  </mx:Script></pre>
<p>Plugin, um das Ergebnis zu prüfen beziehungsweise direkt auf der Datenbank arbeiten zu können: <a href="https://addons.mozilla.org/de/firefox/addon/5817" mce_href="https://addons.mozilla.org/de/firefox/addon/5817">SQLite Manager</a></p>
<h3>3// Datensätze lesen und schreiben</h3>
<pre lang="actionscript">
 public function fetchAllBookmarks():void {
      var statement:SQLStatement = new SQLStatement();
      statement.sqlConnection = conn;
      statement.text = „SELECT * FROM bookmarks;“;
      statement.execute();
      var result:SQLResult = statement.getResult();
      var bookmarks:Array = new Array();
      for each ( var entry:Object in result.data ) {
        bookmarks.push( new BookmarkVO( entry ) );
      }
      this.bookmarks = bookmarks;
    }

    public function saveBookmark( bookmark:BookmarkVO, action:String ):void {
      var statement:SQLStatement = new SQLStatement();
      statement.sqlConnection = conn;
      if ( action==“update“ ) {
        statement.text = „UPDATE bookmarks SET url=:url, title=:title, description=:description WHERE id=:id“;
        statement.parameters[„:id“] = bookmark.id;
      }
      else {
        statement.text = „INSERT INTO bookmarks (url, title, description) VALUES (:url, :title, :description);“;
      }
      statement.parameters[„:url“] = bookmark.url;
      statement.parameters[„:title“] = bookmark.title;
      statement.parameters[„:description“] = bookmark.description;
      statement.execute();
      fetchAllBookmarks();
    }

    public function deleteBookmark( bookmark:BookmarkVO ):void {
      var statement:SQLStatement = new SQLStatement();
      statement.sqlConnection = conn;
      statement.text = „DELETE FROM bookmarks WHERE id=:id;“;
      statement.parameters[„:id“] = bookmark.id;
      statement.execute();
      fetchAllBookmarks();
    }</pre>
<h3>4// View zum Hinzufügen und Ändern</h3>
<p>{{Listing com.simonwidjaja.workshop.EditView}}</p>
<pre lang="xml">

<mx:Panel xmlns:mx=“http://www.adobe.com/2006/mxml“
    xmlns:validator=“com.simonwidjaja.workshop.validator.*“
    layout=“vertical“ width=“500“ height=“300“
    paddingLeft=“25“ paddingTop=“25“ paddingRight=“25“
    borderAlpha=“0.8“ title=“HinzufŸgen/Bearbeiten“>

  <mx:Script>
    <![CDATA[
      import mx.utils.ObjectUtil;
      import mx.managers.PopUpManager;
      import com.simonwidjaja.workshop.BookmarkVO;
      import com.simonwidjaja.workshop.DatabaseConnector;

      [Bindable] public var bookmark:BookmarkVO;

      private function save():void {
        bookmark.url = urlInput.text;
        bookmark.title = titleInput.text;
        bookmark.description = descriptionInput.text;
        var action:String;
        if ( bookmark.id )  action = „update“;
        else                action = „insert“;
        var databaseConnector:DatabaseConnector = DatabaseConnector.getInstance();
        databaseConnector.saveBookmark( bookmark, action );
        close();
      }
      private function close():void {
        PopUpManager.removePopUp( this );
      }
    ]]&gt;
  </mx:Script>

  <mx:RegExpValidator source=“{ urlInput }“ property=“text“
      expression=“^(https?://)[A-Za-z0-9]+[.][A-Za-z0-9]+“
      noMatchError=“Keine gŸltige URL“ />

  <mx:Text text=“Bitte geben Sie die Eigenschaften des Bookmarks ein:“ />

  <mx:Form width=“100%“>
    <mx:FormItem label=“URL“ width=“100%“>
      <mx:TextInput id=“urlInput“ width=“100%“ text=“{ bookmark.url }“ />
    </mx:FormItem>
    <mx:FormItem label=“Titel“ width=“100%“>
      <mx:TextInput id=“titleInput“ width=“100%“ text=“{ bookmark.title }“ />
    </mx:FormItem>
    <mx:FormItem label=“Beschreibung“ width=“100%“>
      <mx:TextArea id=“descriptionInput“ width=“100%“ text=“{ bookmark.description }“ />
    </mx:FormItem>
  </mx:Form>

  <mx:ControlBar horizontalAlign=“right“>
    <mx:Button label=“Abbrechen“ click=“close()“ />
    <mx:Button label=“Speichern“ click=“save()“ />
  </mx:ControlBar>  

</mx:Panel></pre>
<h3>5// Zusammenfügen der einzelnen Elemente</h3>
<p>{{Listing main.mxml}}</p>
<pre lang="xml">

<mx:WindowedApplication xmlns:mx=“http://www.adobe.com/2006/mxml“
    layout=“absolute“ minWidth=“800“ minHeight=“600“
    creationComplete=“onCreationComplete()“>

  <mx:Script>
    <![CDATA[
      import mx.events.ListEvent;
      import com.simonwidjaja.workshop.BookmarkVO;
      import com.simonwidjaja.workshop.EditView;
      import mx.managers.PopUpManager;
      import com.simonwidjaja.workshop.DatabaseConnector;

      [Bindable]
      private var connector:DatabaseConnector =  DatabaseConnector.getInstance();

      private function onCreationComplete():void {
        connector.connect();
      }
      private function openEditView( action:String ):void {
        var popup:EditView = PopUpManager.createPopUp( this, EditView, true ) as EditView;
        popup.bookmark = ( myDataGrid.selectedItem ) ? myDataGrid.selectedItem as BookmarkVO : new BookmarkVO();
        PopUpManager.centerPopUp( popup );
      }
      private function onDeleteClick():void {
        var selectedBookmark:BookmarkVO = myDataGrid.selectedItem as BookmarkVO;
        connector.deleteBookmark( selectedBookmark );
      }
      private function onDataGridChange( event:ListEvent ):void {
        myHTML.location = ( event.itemRenderer.data as BookmarkVO ).url;
      }
    ]]&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.weave.de/code/airworkshop0509/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

