Entendo que a solução apresentada é algo semelhante a ordernar uma coluna em
um dataGrid, ou seja, estamos trocando os XML/Objetos para um índice acima
ou abaixo onde o resultado é visto individualmente para cada client. Seria
possível utilizando o FDS repercurtir as alterações para todos os clients?
João
2007/5/15, Beck Novaes <[EMAIL PROTECTED]>:
>
>
> > Aproveito para perguntar se a solução funcionaria caso o dataProvider
> for
> > uma ArrayCollection vinda de um de um DataService ?
>
> Creio que a semântica possa seguir a mesma linha de raciocínio, mas a
> sintaxe já não poderia ser aproveitada visto que a notação para
> trabalhar com os atributos XML é diferente da notação para trabalhar
> com as propriedades dos objetos, tal como o uso do @ (arroba) no caso
> do XML. Mas a princípio seria simples adaptar a solução para o caso
> que você citou.
>
> []'s
> Beck Novaes
>
> On 15 maio, 08:40, "João Ribeiro Junior" <[EMAIL PROTECTED]> wrote:
> > Ótima solução Hamad, Beck.
> > Aproveito para perguntar se a solução funcionaria caso o dataProvider
> for
> > uma ArrayCollection vinda de um de um DataService ?
> >
> > João
> >
> > 2007/5/15, Hamad Amaral <[EMAIL PROTECTED]>:
> >
> >
> >
> > > Beck,
> >
> > > BN> Eu faria apenas umas Refatorações básicos para reduzir a
> complexidade
> > > BN> e aumentar a legibilidade.
> >
> > > Beleza, Beck, obrigado, eu já tinha removido parte do código
> duplicado,
> > > mas
> > > não pensei na solução das constantes. Como sempre, você mandou muito
> > > bem.
> >
> > > BN> NO LUGAR DA FUNÇÃO "moveNodeTest()" TERÍAMOS:
> > > BN> =========================================
> >
> > > BN> private function setStateMoveButtons():void
> > > BN> {
> > > BN> if ([EMAIL PROTECTED] != MODULE)
> > > BN> {
> > > BN> btUp.enabled = false;
> > > BN> btDown.enabled = false;
> > > BN> }
> > > BN> else
> > > BN> {
> > > BN> var hasPrevSibling:Boolean = (
> > > myTree.selectedItem.childIndex()-1) >=
> > > BN> 0;
> > > BN> var hasNextSibling:Boolean = (
> > > myTree.selectedItem.childIndex()+1) <
> > > BN> myTree.selectedItem.parent().children().length();
> > > BN> btUp.enabled = hasPrevSibling;
> > > BN> btDown.enabled = hasNextSibling;
> > > BN> }
> > > BN> }
> >
> > > BN> Acabamos de matar 3 ifs.
> >
> > > BN> NO LUGAR DE "moveNode()" TERÍAMOS:
> > > BN> ===============================
> >
> > > BN> private function moveModule(type:int):void
> > > BN> {
> > > BN> if (type == UP || type == DOWN)
> > > BN> {
> > > BN> var firstModule:XML = XML(myTree.selectedItem);
> > > BN> var firstModuleCopy:XML = firstModule.copy();
> > > BN> myTree.selectedIndex = myTree.selectedIndex +
> type;
> > > BN> var secondModule:XML = XML(myTree.selectedItem);
> > > BN> [EMAIL PROTECTED] = [EMAIL PROTECTED];
> > > BN> [EMAIL PROTECTED] = [EMAIL PROTECTED];
> > > BN> [EMAIL PROTECTED] = [EMAIL PROTECTED];
> > > BN> [EMAIL PROTECTED] = [EMAIL PROTECTED]
> ;
> > > BN> }
> > > BN> else
> > > BN> {
> > > BN> Alert.show("Error");
> > > BN> }
> > > BN> setStateMoveButtons();
> > > BN> }
> >
> > > BN> Usamos constantes no lugar de strings, matamos um "if" e removemos
> o
> > > BN> código duplicado. Estas constantes seriam definadas da seguinte
> forma:
> >
> > > BN> private const UP:int = -1;
> > > BN> private const DOWN:int = 1;
> >
> > > BN> Então elas seriam usadas no "click" dos botões:
> >
> > > BN> <mx:Button id="btUp" label="UP" enabled="false"
> click="moveModule(UP)"
> > > BN> x="209" y="189" width="58"/>
> > > BN> <mx:Button id="btDown" label="Down" enabled="false"
> > > BN> click="moveModule(DOWN)" x="209" y="219" />
> >
> > > BN> []'s
> > > BN> Beck Novaes
> >
> > > BN> On 14 maio, 07:03, Hamad Amaral <[EMAIL PROTECTED]> wrote:
> > > >> Pessoal,
> >
> > > >> Segue a minha solução (mas estou certo de que existem soluções
> > > melhores):
> >
> > > >> <?xml version="1.0" encoding="utf-8"?>
> > > >> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
> > > layout="absolute"
> > > >> initialize="getInitialData();">
> > > >> <mx:Script>
> > > >> <![CDATA[
> > > >> import mx.controls.Alert;
> > > >> import mx.collections.XMLListCollection;
> >
> > > >> private const FOLDER:String = "folder";
> > > >> private const COURSE:String = "course";
> > > >> private const MODULE:String = "module";
> >
> > > >> [Bindable]
> > > >> private var types: Array =
> > > [FOLDER,COURSE,MODULE];
> >
> > > >> [Bindable]
> > > >> private var coursesList:XML =
> > > >> <list><node objectID="6"
> > > name="CF" parentID="1" recordType="course"><node objectID="7"
> name="CFC"
> > > parentID="6" recordType="module"/><node objectID="8"
> > > >> name="CFAdmin" parentID="6" recordType="module"/><node objectID="9"
> > > name="CFML" parentID="6" recordType="module"/><node objectID="10"
> > > name="CFSCRIPT" parentID="6" recordType="module"/></node><node
> > > >> objectID="2" name="DataBase" parentID="1" recordType="folder"><node
> > > objectID="3" name="Oracle" parentID="2" recordType="course"><node
> > > objectID="4" name="PLSQL" parentID="3"
> > > >> recordType="module"/><node objectID="5" name="SP" parentID="3"
> > > recordType="module"/></node></node></list> ;
> >
> > > >> [Bindable]
> > > >> private var courses:XMLListCollection;
> >
> > > >> private function getInitialData():void
> > > >> {
> > > >> courses = new XMLListCollection(
> > > coursesList.node);
> > > >> }
> >
> > > >> private function
> > > treeNodeLabelFunction(item:XML):String
> > > >> {
> > > >> return [EMAIL PROTECTED] + " (" +
> > > [EMAIL PROTECTED] + ")";
> > > >> }
> >
> > > >> private function moveNodeTest():void
> > > >> {
> > > >> if ([EMAIL PROTECTED]
> > > MODULE)
> > > >> {
> > > >> btUp.enabled = false;
> > > >> btDown.enabled = false;
> > > >> }
> > > >> else
> > > >> {
> > > >> var modulesList:XMLList =
> > > myTree.selectedItem.parent().descendants();
> > > >> if (modulesList[0] ==
> > > myTree.selectedItem)
> > > >> {
> > > >> btUp.enabled =
> false;
> > > >> btDown.enabled =
> true;
> > > >> }else if (modulesList[
> > > modulesList.length()-1] == myTree.selectedItem)
> > > >> {
> > > >> btUp.enabled =
> true;
> > > >> btDown.enabled =
> false;
> > > >> }
> > > >> else
> > > >> {
> > > >> btUp.enabled =
> true;
> > > >> btDown.enabled =
> true;
> > > >> }
> > > >> }
> > > >> }
> >
> > > >> private function moveNode(type:String):void
> > > >> {
> > > >> var i:Number;
> > > >> var module:XML;
> > > >> var aModule:XML;
> > > >> var tempNode:XML;
> >
> > > >> if (type == "up")
> > > >> {
> > > >> module = XML(
> > > myTree.selectedItem);
> > > >> tempNode = XML(
> > > myTree.selectedItem).copy();
> > > >> myTree.selectedIndex =
> > > myTree.selectedIndex - 1
> > > >> aModule = XML(
> > > myTree.selectedItem);
> > > >> [EMAIL PROTECTED] =
> [EMAIL PROTECTED];
> > > >> [EMAIL PROTECTED] =
> > > [EMAIL PROTECTED];
> > > >> [EMAIL PROTECTED] =
> [EMAIL PROTECTED];
> > > >> [EMAIL PROTECTED] =
> > > [EMAIL PROTECTED];
> > > >> }
> > > >> else if (type == "down")
> > > >> {
> > > >> module = XML(
> > > myTree.selectedItem);
> > > >> tempNode = XML(
> > > myTree.selectedItem).copy();
> > > >> myTree.selectedIndex =
> > > myTree.selectedIndex + 1
> > > >> aModule = XML(
> > > myTree.selectedItem);
> > > >> [EMAIL PROTECTED] =
> [EMAIL PROTECTED];
> > > >> [EMAIL PROTECTED] =
> > > [EMAIL PROTECTED];
> > > >> [EMAIL PROTECTED] =
> [EMAIL PROTECTED];
> > > >> [EMAIL PROTECTED] =
> > > [EMAIL PROTECTED];
> > > >> }
> > > >> else
> > > >> {
> > > >> Alert.show("Error");
> > > >> }
> > > >> moveNodeTest();
> > > >> }
> > > >> ]]>
> > > >> </mx:Script>
> >
> > > >> <mx:Tree id="myTree" dataProvider="{courses}"
> > > labelFunction="treeNodeLabelFunction"
> > > >> change="moveNodeTest()"
> > > >> width="200" showRoot="false" height="300"/>
> >
> > > >> <mx:TextInput id="tiTemp" text="{myTree.selectedItem.parent
> ()[EMAIL PROTECTED]"
> > > y="142" x="208"/>
> >
> > > >> <mx:Button id="btUp" label="UP" enabled="false"
> > > click="moveNode('up')" x="209" y="189" width="58"/>
> > > >> <mx:Button id="btDown" label="Down" enabled="false"
> > > click="moveNode('down')" x="209" y="219" />
> >
> > > >> </mx:Application>
> >
> > > >> --
> > > >> Hamad Amaral
> > > >> [EMAIL PROTECTED]
> >
> > > BN>
> >
> > > BN> --
> > > BN> No virus found in this incoming message.
> > > BN> Checked by AVG Free Edition.
> > > BN> Version: 7.5.467 / Virus Database: 269.7.0/804 - Release Date:
> > > 14/5/2007 16:46
> >
> > > --
> > > Hamad Amaral
> > > [EMAIL PROTECTED]
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---