Opa Marcelo, valeu pela resposta, mas tentei aqui e num funfou...
Olha só:
Eu tenho o meu componente Arvore:
<layoutarquivo1:Arvore id="arvore" top="10" labelField="rotulo" width="100%"
height="100"
itemRenderer="layoutarquivo.ArvoreItemRenderer"
doubleClickEnabled="true" />
e tenho a minha classe ArvoreItemRenderer:
public class ArvoreItemRenderer extends TreeItemRenderer {
private var btn: Button;
public function ArvoreItemRenderer() {
super();
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
/* if (listData != null) {
label.text = listData.label;
btn.x = icon.x;
icon.x = btn.x + btn.width + 15;
label.x = icon.x + 15;
} */
if (listData != null) {
label.text = listData.label;
btn.x = label.width - 30;
}
}
override protected function createChildren(): void {
super.createChildren();
btn = new Button();
btn.width = 60;
btn.height = 20;
btn.label = "incluir";
this.addChild(btn);
}
}
Coloquei um botão... Ele aparece depois do label.
Na hora de posicionar eu tentei fazer da seguinte forma:
btn.x = label.x + label.width + 15;
Só que a propriedade label.width me retorna um tamanho de 776 pixels. Esse
pelo que ví é o tamanho de minha árvore na tela. Então o botão fica
desaparecido.
Fiz então da seguinte forma: btn.x = label.width - 30;
Até ai tudo bem, mas o problema é que eu quero adicionar um botão somente
uma vez em cada nó. Dessa forma que está, cada nó da árvore tem um botão.
Eu quero que fique da seguinte forma:
--Pai >> Botão Adicionar Novo Filho
--Filho1 >> Botão Adicionar Novo Neto
--Filho2 >> Botão Adicionar Novo Neto
--Filho3 >> Botão Adicionar Novo Neto
--Filho4 >> Botão Adicionar Novo Neto
--Neto1
--Neto2
--Neto3
Nesse caso existirá somente um botão ao lado do label "Pai" aonde eu posso
clicar para adicionar um novo filho. Na frente do label
"Filho" existirá um botão aonde eu posso adicionar um novo neto. Aí no caso
o neto como não tem bisneto não existe botão.
Alguém tem idéia de como eu faria isso?
--
Att,
Thiago R. Fernandes
2008/6/5 Marcelo Savioli <[EMAIL PROTECTED]>:
> Quase Thiago.. você esta no caminho certo.
>
> Da uma olhada neste post do Beck e ve como ele fez para criar um
> itemRenderer para o Tree, pode servir como exemplo para criar o seu.
>
> http://blog.dclick.com.br/2006/12/21/treecheck-com-e4x/
>
> resumindo o que faltou para dar certo o seu é:
>
> - criar o link button no createChildren
> - posicionar o linkButton no updateDisplaylist
> - definir a label em "set listData"
>
>
>
> 2008/6/5 Thiago <[EMAIL PROTECTED]>:
>
> Falae Pessoal....
>>
>> Estou com um probleminha aqui...
>>
>> Eu tenho uma Tree.. gostaria de agregar a ela um linkButton...
>>
>> Tentei utilizar o itemRenderer mas não obtive sucesso...
>>
>> Segue abaixo o código:
>>
>> Classe que criei pra renderizar:
>>
>> package layoutarquivo {
>>
>> import mx.controls.LinkButton;
>> import mx.controls.treeClasses.TreeItemRenderer;
>> import mx.controls.treeClasses.TreeListData;
>> import mx.utils.ObjectUtil;
>>
>> public class ArvoreItemRenderer extends TreeItemRenderer {
>>
>> private var novaInclusao: LinkButton = new LinkButton();
>>
>> public function ArvoreItemRenderer() {
>> super();
>> novaInclusao.label = "Testando";
>> this.addChild(novaInclusao);
>> }
>> }
>> }
>>
>> Minha árvore:
>>
>> <mx:Tree id="arvore" top="10" dataProvider="{listaArvore}"
>> labelField="@label"
>> width="100%" height="100"
>> itemRenderer="layoutarquivo.ArvoreItemRenderer" />
>>
>> O que eu quero é criar um linkButton na última opção de cada nó aonde se
>> pode clicar para adicionar uma nova opção naquela posição do nó.
>>
>> Eu sei que tá errado essa classe ai. Mas é pq não tive idéia de como seria
>> isso.
>>
>>
>>
>> --
>> Att,
>> Thiago R. Fernandes
>>
>>
>
>
> --
> Marcelo Curi Savioli
> DClick Web & Mobile Solutions
> [EMAIL PROTECTED]
> www.dclick.com.br/blog
> www.dclick.com.br
> >
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---