<?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>FiveDigital &#187; Flex</title>
	<atom:link href="http://fivedigital.de/category/adobe_flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://fivedigital.de</link>
	<description>Ein Blog über PHP, Magento usw.</description>
	<lastBuildDate>Fri, 15 Jul 2011 11:49:22 +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>Flex DataGrid zum Bearbeiten und Hinzufügen von Datensätzen</title>
		<link>http://fivedigital.de/2010/01/28/flex-datagrid-zum-bearbeiten-und-hinzufuegen-von-datensaetzen/</link>
		<comments>http://fivedigital.de/2010/01/28/flex-datagrid-zum-bearbeiten-und-hinzufuegen-von-datensaetzen/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 13:13:10 +0000</pubDate>
		<dc:creator>Thomas Müller</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://fivedigital.de/?p=59</guid>
		<description><![CDATA[Das Flex DataGrid bietet von Haus aus die Möglichkeit, Datensätze in der Tabelle zu bearbeiten. Ich habe ein Beispiel erstellt, das ein DataGrid bereit hält, welches immer einen neuen, leeren Datensatz anzeigt. Der Trick dabei ist, dem Dataprovider einen leeren Datensatz hinzuzufügen. Update: Mein liebenswerter Kollege Alex hat mich auf einen kleinen Fehler im Beispiel [...]]]></description>
			<content:encoded><![CDATA[<p>Das Flex DataGrid bietet von Haus aus die Möglichkeit, Datensätze in der Tabelle zu bearbeiten. Ich habe ein <a href="http://fivedigital.de/flex/editgrid/">Beispiel</a> erstellt, das ein DataGrid bereit hält, welches immer einen neuen, leeren Datensatz anzeigt. Der Trick dabei ist, dem Dataprovider einen leeren Datensatz hinzuzufügen.</p>
<p><strong>Update:</strong> Mein liebenswerter Kollege Alex hat mich auf einen kleinen Fehler im Beispiel hingewiesen, den ich nun korrigiert habe. Vielen Dank!</p>
]]></content:encoded>
			<wfw:commentRss>http://fivedigital.de/2010/01/28/flex-datagrid-zum-bearbeiten-und-hinzufuegen-von-datensaetzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die Flex Tree Komponente für Kategorien mit Drag &amp; Drop &#8211; Teil 1</title>
		<link>http://fivedigital.de/2010/01/19/drag-drop-mit-der-flex-tree-komponente/</link>
		<comments>http://fivedigital.de/2010/01/19/drag-drop-mit-der-flex-tree-komponente/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 08:55:17 +0000</pubDate>
		<dc:creator>Thomas Müller</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://fivedigital.de/?p=46</guid>
		<description><![CDATA[Die Tree Komponente ist sehr hilfreich um hierarchische Daten darzustellen. Angedacht ist die Komponente, wie der Name vermuten lässt, als Baum mit Knoten und Blättern. So wird er auch in den Beispielen auf der Adobe Seite dargestellt. Entwickelt man eine Flex Anwendung, kommt man oft an einen Punkt, an dem Daten kategorisiert werden müssen. Was [...]]]></description>
			<content:encoded><![CDATA[<p>Die <a href="http://livedocs.adobe.com/flex/3/langref/mx/controls/Tree.html">Tree</a> Komponente ist sehr hilfreich um hierarchische Daten darzustellen. Angedacht ist die Komponente, wie der Name vermuten lässt, als Baum mit Knoten und Blättern. So wird er auch in den Beispielen auf der Adobe Seite dargestellt. Entwickelt man eine Flex Anwendung, kommt man oft an einen Punkt, an dem Daten kategorisiert werden müssen. Was eignet sich dazu besser als die Tree Komponente? Wie sich heraus stellt, ist sie jedoch nicht 100%ig für einen derartigen Einsatz geschaffen.<br />
<span id="more-46"></span><br />
Die erste, kosmetische Änderung die an einem Tree zur Darstellung von Verschachtelten Kategorien vorgenommen werden muss, ist die Darstellung der Blätter. Alle Elemente in dem Tree sollen Kategorien darstellen.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #000000;">&#91;</span>Bindable<span style="color: #000000;">&#93;</span>
 <span style="color: #000000;">&#91;</span>Embed<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;images/icons/folder.png&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
 <span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #6699cc; font-weight: bold;">var</span> MyFolderIcon<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Class</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000000;">&#91;</span>Bindable<span style="color: #000000;">&#93;</span>
 <span style="color: #000000;">&#91;</span>Embed<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;images/icons/folder-open.png&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
 <span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #6699cc; font-weight: bold;">var</span> MyFolderOpenIcon<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Class</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">&lt;</span>mx<span style="color: #000066; font-weight: bold;">:</span>Tree id=<span style="color: #990000;">&quot;tree&quot;</span> defaultLeafIcon=<span style="color: #990000;">&quot;{MyFolderIcon}&quot;</span>
 folderOpenIcon=<span style="color: #990000;">&quot;{MyFolderOpenIcon}&quot;</span>
 folderClosedIcon=<span style="color: #990000;">&quot;{MyFolderIcon}&quot;</span><span style="color: #000066; font-weight: bold;">&gt;</span></pre></div></div>

<p>Durch den Einsatz von eigenen Grafiken für Blätter und Knoten wurde ein einheitliches Aussehen geschaffen. In der von mir entwickelten Anwendung löst ein Klick auf ein Element des Trees ein Event aus, das dazu führt das ein Datagrid alle Objekte die zu der ausgewählten Kategorie gehören, anzeigt.</p>
<p>Der Tree bietet die Möglichkeit, dass Elemente mittels Drag &amp; Drop neu zu arrangieren. Dazu müssen lediglich einige Eigenschaften des Trees gesetzt werden.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">&lt;</span>mx<span style="color: #000066; font-weight: bold;">:</span>Tree id=<span style="color: #990000;">&quot;tree&quot;</span> defaultLeafIcon=<span style="color: #990000;">&quot;{MyFolderIcon}&quot;</span>
 folderOpenIcon=<span style="color: #990000;">&quot;{MyFolderOpenIcon}&quot;</span>
 folderClosedIcon=<span style="color: #990000;">&quot;{MyFolderIcon}&quot;</span>
dragMoveEnabled=<span style="color: #990000;">&quot;true&quot;</span> dragEnabled=<span style="color: #990000;">&quot;true&quot;</span> dropEnabled=<span style="color: #990000;">&quot;true&quot;</span><span style="color: #000066; font-weight: bold;">&gt;</span></pre></div></div>

<p>Und schon kann der Tree beliebig sortiert werden. Ein Beispiel dazu liefert <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=dragdrop_4.html">Adobe</a>. Doch kann wirklich beliebig sortiert werden? Nein! Warum? Es ist nicht möglich ein Element &#8220;in&#8221; ein anderes herein zu schieben. Was bedeutet das für die Darstellung von Kategorien? Es ist nicht möglich eine Kategorie in eine andere Kategorie, die <strong>keine</strong> Kinder hat, zu verschieben. Dies fällt nicht nur mir auf, auch bei <a href="http://blog.flexexamples.com/2007/11/29/dragging-and-dropping-items-in-a-flex-tree-control/">FlexExamples</a> wurde dieses Verhalten bemängelt:</p>
<blockquote><p>Rob McKeown November 30, 2007 at 2:12 pm</p>
<p>One thing to note about <strong>the tree is that it is really just a list in which items are displayed</strong>. What that means is, <strong>you can’t really drop somthing “into” folder</strong> unless the folder is open. Even in that case the user experience isn’t quite right. So try moving everything out of one of the folders and then collapse that empty folder. If you drop something “on” the folder, it actually winds up between the target folder and the one below or above. This is indicated by the black line showing up as you move the mouse over the folders. If you “open” the folder (the only way to tell it is open is by the arrow) and then try it, you end up with an additional drop zone that is basically the bottom half of the opened, empty folder. This is also indicated by the black lines position.</p>
<p>It would be better if the middle section of any item could always be the drop zone for “add to this folder” and the top and bottom edges could be for dropping above or below respectively.</p></blockquote>
<p>Besser kann ich das Verhalten des Trees nicht beschreiben. Leider habe ich dieses Verhalten erst festgestellt, als ich das Verschieben der Kategorien bereits in Flex und im Webservice implementiert habe. Alles funktioniert, jedoch war es nicht möglich, eine Kategorie in eine andere ohne Kinder zu verschieben. So konnte es nicht bleiben, eine Workaround wurde benötigt.</p>
<p>Nach einigem Probieren kam ich zu dem Entschluss, dass es am einfachsten zu realisieren ist, indem einer Kategorie ein Kind hinzugefügt wird, wenn sie keiner Kinder besitzt. Der Ablauf sieht wie folgt aus:</p>
<ul>
<li>Der Benutzer zieht eine Kategorie</li>
<li>Jedes mal, wenn der Benutzer die gezogene Kategorie über eine andere Kategorie zieht, wird ein Timer gestartet um zu messen, wie lange er über der Kategorie verweilt</li>
<li>Ist eine bestimmte Zeit (in meiner Anwendung 2 Sekunden) erreicht und hat die Kategorie über der der Benutzer verweilt, wird der Kategorie ein Kind mit dem Titel &#8220;Als Unterkategorie einfügen&#8221; hinzugefügt</li>
<li>Bewegt der Benutzer die gezogene Kategorie weiter, wird das neu hinzugefügte Kind wieder entfernt</li>
<li>Nach erfolgtem Verschieben wird das Kind ebenfalls entfernt</li>
</ul>
<p>Durch diese Technik ist es möglich geworden, dass Kategorien auch in andere, die keine Kinder haben, zu verschieben. In meinem nächsten Posting werde ich mich der Implementierung widmen. Dabei werden neben der, in diesem Posting beschriebenen, Problematik auch weitere Probleme behandelt. Wie verhindere ich, dass eine Kategorie in eine eigene Unterkategorie &#8211; und damit in sich selber, verschoben wird? Wie lese ich aus, wohin die Kategorie verschoben wurde, wenn die Datenquelle des Trees kein XML ist? Wie setze ich das Verschieben auf Seiten des Webservices um?</p>
]]></content:encoded>
			<wfw:commentRss>http://fivedigital.de/2010/01/19/drag-drop-mit-der-flex-tree-komponente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

