logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

Metadata DefaultProperty

Colocado por DClick Team na(s) categoria(s): 2009, 4, 6, Actionscript, Adobe, app, AR, blog, class, classe, Componente, Componentes, components, DataProvider, exemplo, Flex, function, ide, IE, if, int, layout, library, MXML, NaN, O, on, padrão, pt, RIA, Ria’s Geral, spark, tag, TAT, Twitter, UI, XML, XP em 03 13th, 2011 | Sem comentários

Uma das grandes vantagens de utilizar o MXML é ter a facilidade de compor os componentes através da utilização de tags e atributos. Basicamente todo arquivo MXML segue a estrutura:

PLAIN TEXT
CODE:

  1. “valor”>
  2. ? ?
  3. ? ? ? ?
  4. ? ?

Entender essa estrutura é simples, estamos setando novos valores para as propriedades do nosso componente base. Em exemplo prático temos:

PLAIN TEXT
CODE:

  1. “http://ns.adobe.com/mxml/2009″
  2. ? ? ? ? ? ?? ? xmlns:s=“library://ns.adobe.com/flex/spark”
  3. ? ? ? ? ? ?? ? xmlns:mx=“library://ns.adobe.com/flex/mx” minWidth=“955″ minHeight=“600″>
  4. ? ?
  5. ? ? ? ?
  6. ? ?
  7. ? ?
  8. ? ?
  9. ? ?

Saber que uma instância da classe VerticalLayout está sendo atribuída a propriedade layout da classe Application é fácil, mas onde estamos atribuindo a instância da classe Group uma vez que ela não segue a estrutura base do MXML?

Para facilitar a utilização dos componentes no MXML, a Adobe criou a metadata DefaultProperty que, assim como o nome diz, determina uma propriedade a ser utilizada como padrão no MXML caso não haja sua especificação na composição do componentes, isso explica como conseguimos atribuir uma instância da classe Group em uma determinada propriedade da classe Application sem a necessidade de declará-la.

Vamos então criar um exemplo funcional de um componente com a metadata DefaultProperty?

Utilizando a metadada.

PLAIN TEXT
CODE:

  1. package
  2. {
  3. ? ? import spark.components.DropDownList;
  4. ? ?
  5. ? ? [DefaultProperty("prompt")]
  6. ? ? public class NewDropDownList extends DropDownList
  7. ? ? {
  8. ? ? ? ? public function NewDropDownList()
  9. ? ? ? ? {
  10. ? ? ? ? ? ? super();
  11. ? ? ? ? }
  12. ? ? }
  13. }

Em sintaxe: [DefaultProperty("propriedade")]
No exemplo estou extendendo a classe DropDownList e apenas determinando que sua propriedade default é a propriedade prompt.

Utilizando a Classe DropDownList.

PLAIN TEXT
CODE:

  1. ? ?
  2. ? ? ? ? Selecione um item
  3. ? ?

Na classe DropDownList precisamos abrir a tag da propriedade prompt antes de atribuir o seu valor.

Utilizando a Classe NewDropDownList.

PLAIN TEXT
CODE:

  1. ? ? Selecione um item

Na nossa classe recém criada não precisamos abrir a tag da propriedade, pois avisamos o compilador que nossa propriedade padrão é o prompt, logo, qualquer valor atribuído diretamente a tag do componente base será direcionado a propriedade padrão.

Não posso deixar de comentar que a metadata DefaultProperty adicionada na classe NewDropDownList sobrescreveu a DefaultProperty dataProvider que ele herda da classe SkinnableDataContainer, logo muito cuidado na hora de utilizar essa metadata em componentes extendidos!



Veja o post original no blog do autor aqui!  

DClick Team

Escrito por DClick Team @ http://blog.dclick.com.br/pt/
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Injeção de Dependências nos DAOs de Entidades do Framework
» Adobe Photoshop CS5 – Criação de Interface para Flex 4
» Escopo de Váriavel em ActionScript 3

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2791 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com