Opa galera... queria uma luz aqui...
Estou com o seguinte problema. Tenho uma tree renderizada e lá na classe
renderer que criei (ArvoreItemRenderer), eu agrego um linkButton ao lado do
label. Ex:
public class ArvoreItemRenderer extends TreeItemRenderer {
[Bindable]
public var layoutArquivoEdicao: LayoutArquivoEdicao;
private var btn: LinkButton;
private static const INCLUIR_NOVA_LINHA: String = "Incluir Nova
Linha";
private static const INCLUIR_NOVO_ATRIBUTO: String = "Incluir Novo
Atributo";
public function ArvoreItemRenderer() {
super();
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
if (listData != null) {
label.text = listData.label;
if (btn != null) {
btn.x = label.width - 120;
}
}
}
override public function set data(value:Object):void {
if(value != null) {
super.data = value;
if(TreeListData(super.listData).hasChildren) {
var tempObj: Object = TreeListData(super.listData).item;
btn = new LinkButton();
btn.width = 150;
btn.height = 20;
if (tempObj instanceof Layout) {
btn.label = INCLUIR_NOVA_LINHA
} else {
btn.label = INCLUIR_NOVO_ATRIBUTO;
}
this.addChild(btn);
}
}
}
}
Observem que lá na declaração dos atributos eu tenho o atributo
layoutArquivoEdicao. É ele que possui a tree. Nele contém os métodos que
quero disparar quando for clicado no linkButton.
Como faço isso? Porque eu tinha pensado em criar esse meu atributo
layoutArquivoEdicao na classe renderer e lá eu setar a instância que tô
trabalhando. Ex:
private static var arvoreRenderer: ArvoreItemRenderer = new
ArvoreItemRenderer();
arvoreRenderer.layoutArquivoEdicao = this;
e ai depois eu adicionaria essa minha classe renderer (ArvoreItemRenderer) a
minha tree. Ex:
arvore.itemRenderer = new ClassFactory(arvoreRenderer);
Mas o flex não aceita a instância. Só aceita a Classe. Ex:
arvore.itemRenderer = new ClassFactory(ArvoreItemRenderer);
Como eu consigo chamar um método na classe renderizada?
--
Att,
Thiago R. Fernandes
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---