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

Dica Flex – Utilizando o padrão Typesafe Enum no ActionScript 3.0

Escrito por Pablo Souza em 1, 2009, 4, 6, action, Actionscript, ActionScript 3, Adobe, app, AR, arte, BI, blog, boolean, break, case, class, classe, classes, código, demo, Dica, Download, err, erro, error, event, events, Excel, exemplo, Flex, for, function, handle, html, ide, IE, if, image, Java, library, Livro, MXML, O, on, Oracle, padrão, problema, pt, RIA, Ria’s Geral, RoR, Segurança, spark, state, string, TAT, Teste, UAU, UI, utf8, XML @ 01 7th, 2011 | via http://rectius.com.br/blog | Sem comentários
Pablo Souza
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Um das grandes passagens do livro Code Complete é sem dúvidas aquela que diz: “se uma linguagem não suporta nativamente uma determinada implementação, você deve então programar ‘para a linguagem’ e não ‘na linguagem’ “. O exemplo que o livro apresenta para essas limitações é justamente com relação ao Typesafe Enum, nossa dica Flex de hoje.

Os Enums são muito utilizados para evitar redundância de código e garantir o máximo de segurança nas aplicações. Além de serem excelentes objetos para se trabalhar com estados e tipos, eles também são parte essencial quando trabalhamos com o padrão de projeto State. Ele é muito utilizado também para limitar as opções de argumentos para determinados métodos. O problema é que diferente do Java 5 ou do ActionScript 2, o ActionScript 3 não suporta Enums e não permite usar o modificador privado no construtor das classes.

Suponha que temos um método que retorna a URL de uma imagem em 3 diferentes tamanhos: Pequeno, médio e grande. Para retornar o caminho dessa imagem passamos como argumento do método qual o tamanho que esperamos. Sem utilizar o Typesafe Enum poderíamos fazer conforme código abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               initialize="application1_initializeHandler(event)">

    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            private static const PEQUENO:String     = "pequeno";
            private static const MEDIO:String     = "medio";
            private static const GRANDE:String   = "grande";

            protected function application1_initializeHandler(event:FlexEvent):void
            {
                trace( retornaCaminhoImagem("texto qualquer") );
            }

            private function retornaCaminhoImagem(tamanho:String):String
            {
                var caminho:String;
                switch(tamanho)
                {
                    case PEQUENO:
                    {
                        caminho = "http://www.suaurl.com/imagem_pequena.jpg";
                        break;
                    }
                    case MEDIO:
                    {
                        caminho = "http://www.suaurl.com/imagem_media.jpg";
                        break;
                    }
                    case GRANDE:
                    {
                        caminho = "http://www.suaurl.com/imagem_grande.jpg";
                        break;
                    }
                    default:
                    {
                        caminho = "[ERRO]";
                    }
                }

                return caminho;
            }

        ]]>
    </fx:Script>

</s:Application>

O problema no código acima é que podemos passar como argumento do método “retornaCaminhoImagem()” qualquer string:

1
trace( retornaCaminhoImagem("texto qualquer") );

Para resolvermos o problema acima vamos criar uma classe que implementa o padrão Typesafe Enum:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package enum
{
    public class ImageSizeEnum
    {

        public static const PEQUENO:ImageSizeEnum   = new ImageSizeEnum("pequeno");
        public static const MEDIO:ImageSizeEnum     = new ImageSizeEnum("medio");
        public static const GRANDE:ImageSizeEnum    = new ImageSizeEnum("grande");

        private var _tamanho:String;

        private static var _instance:Boolean = false;

        // Bloco estático
        {
            _instance = true;
        }

        public function ImageSizeEnum(tamanho:String)
        {
            if(_instance)
            {
                throw new Error("Você não pode instanciar um Typesafe Enum");
            }
            _tamanho = tamanho;
        }

        public function toString():String
        {
            return this._tamanho;
        }
    }
}

Repare no bloco estático que criamos, ele será excutado assim que a classe for carregada na memória, portanto antes do construtor da classe ser chamado e depois que todos os membros estáticos forem criados.

Agora crie um novo método chamado “retornaCaminhoTypesafeEnum()”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private function retornaCaminhoTypesafeEnum(tamanho:ImageSizeEnum):String
            {
                var caminho:String;
                switch(tamanho)
                {
                    case ImageSizeEnum.PEQUENO:
                    {
                        caminho = "http://www.suaurl.com/imagem_pequena.jpg";
                        break;
                    }
                    case ImageSizeEnum.MEDIO:
                    {
                        caminho = "http://www.suaurl.com/imagem_media.jpg";
                        break;
                    }
                    case ImageSizeEnum.GRANDE:
                    {
                        caminho = "http://www.suaurl.com/imagem_grande.jpg";
                        break;
                    }
                    default:
                    {
                        caminho = "[ERRO]";
                    }
                }

                return caminho;
            }

Para utilizá-lo faça:

1
trace( retornaCaminhoTypesafeEnum(ImageSizeEnum.GRANDE) );

Faça alguns testes, tente instanciar nosso Enum para criar um novo tipo:

1
var enum:ImageSizeEnum = new ImageSizeEnum("novo_tipo");

Como resultado você deve ter recebido um erro em tempo de execução com a mensagem: “Você não pode instanciar um Typesafe Enum”.

Agora tente passar uma string qualquer como argumento do método “retornaCaminhoTypesafeEnum()”:

1
trace( retornaCaminhoTypesafeEnum("novo_tipo") );

Você deve ter visto um erro em tempo de compilação uma vez não ser possível passar como argumento do método uma string quando ele espera o tipo “ImageSizeEnum”.

Bom galera espero que tenham gostado. Veja aqui um projeto de exemplo.

Até a próxima!

Jan 2

Os números de 2010

Escrito por Flavia Moreira em .NET, 1, 2009, 4, 6, AR, Artigo, Artigos, Asp.Net, back, Blend, blog, blog silverlight, blogsilverlight, busca, C#, CSharp, DataGrid, deep zoom, deepZoom, desempenho, Desktop, Destaque, DevMedia, Dica, estatísticas, exemplo, Expression Blend, facebook, for, Google, ide, IE, if, image, imagens, int, linq, Linq to Sql, mg, Microsoft, Microsoft Blend, MSDN, O, on, pt, Reconhecimento de voz, redeRIA, RIA, Ria’s Geral, saúde, silverlight, Silverlight 3, Silverlight 4, site, social, tag, TAT, template, Twitter, UAU, UI, Video Aula, Visual Studio 2010, VOZ, vs, Wordpress, WPF, Xna @ 01 2nd, 2011 | via http://flamoreira.wordpress.com | Sem comentários
Flavia Moreira
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Os duendes das estatísticas do WordPress.com analisaram o desempenho deste blog em 2010 e apresentam-lhe aqui um resumo de alto nível da saúde do seu blog:

Healthy blog!

O Blog-Health-o-Meterâ„¢ indica: Uau.

Números apetitosos

Imagem de destaque

Um Boeing 747-400 transporta 416 passageiros. Este blog foi visitado cerca de 12,000 vezes em 2010. Ou seja, cerca de 29 747s cheios.

?

Em 2010, escreveu 23 novo artigo, aumentando o arquivo total do seu blog para 80 artigos. Fez upload de 2 imagens, ocupando um total de 85kb.

O seu dia mais activo do ano foi 16 de agosto com 110 visitas. O artigo mais popular desse dia foi C#.

De onde vieram?

Os sites que mais tráfego lhe enviaram em 2010 foram social.msdn.microsoft.com, google.com.br, devmedia.com.br, rederia.net e pt-br.wordpress.com

Alguns visitantes vieram dos motores de busca, sobretudo por exemplo de aplicação desktop c# vs 2010, flavia moreira, sites super interessantes, video aula silverlight e reconhecimento de voz c#

Atracções em 2010

Estes são os artigos e páginas mais visitados em 2010.

1

C# novembro, 2008
3 comentários

2

Sobre mim agosto, 2008
54 comentários

3

Sites super interessantes agosto, 2008
3 comentários

4

Populando Datagrid usando LINQ TO SQL em Silverlight agosto, 2008
16 comentários

5

WPF E RECONHECIMENTO DE VOZ março, 2009
4 comentários

Mai 24

Download dos arquivos para iniciar com o desenvolvimento em Silverlight 4

Escrito por Alexandre Tadashi em .NET, 1, 4, 6, Aplicativos, AR, arte, BI, Blend, blog, Blogs, class, codeplex, Componente, Componentes, comunidade, control, Controls, Curso, Desenvolvimento, Design, developer, DevMedia, Download, Draw, err, exemplo, Exemplos, expression, Expression Blend, Ferramenta, Google, html, ide, IE, int, kit, labs, Links, lista, mg, Microsoft, MIX, MSDN, O, on, online, Outros, pt, redeRIA, RIA, Ria’s Geral, runtime, SDK, silverlight, Silverlight 4, site, Software, tool, toolkit, Tutoriais, Twitter, UAU, UX, Visual Studio, Visual Studio 2010, vs, WCF, web, WPF, XP @ 05 24th, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Segue a lista de  links das principais ferramentas, tutoriais, comunidades e blogs para quem quer começar com o desenvolvimento de aplicativos em Silverlight.

Para quem ainda não tem o ambiente de desenvolvimento instalado:

IDE de desenvolvimento : Visual Studio 2010 RC
Complemento para o Visual Studio: Silverlight 4 Tools para Visual Studio 2010
(Contém o Runtime do Silverlight 4, SDK, Tooling para o Visual Studio e o WCF RIA Services RC)
Ferramenta de auxílio para o design de aplicativos em Silverlight/WPF : Expression Blend 4
Conjunto de componentes para o Silverlight 4 : Silverlight Toolkit

Outros sites interessantes:

Sites Oficiais do Silverlight : link e link
Curso de Silverlight 4: link
Exemplos  online do Silverlight 4 Toolkit: link
Hello World: link
Comunidade Silverlight Brasil : link
Silverlight Developer Center (em português) : link
Innovation Lab (em português) : link
o UAU nosso de cada dia : link
Comunidade RedeRIA : link
DevMedia: link
RIASoftware: link
Desenvolvendo para Web : link
Shine Draw : link
Project Rosetta : link
Expression Blend : link

Mai 21

Bárbaro: abriram os números da transmissão das Olimpíadas de Inverno em Smooth Streaming

Escrito por rene em 1, 4, 6, AR, bar, blog, Blogs, browser, bug, Dica, esporte, Evento, exemplo, ide, mg, MSDN, NaN, O, on, online, referencia, Ria’s Geral, silverlight, smooth streaming, streaming, televisao, UAU, UI, user experience, Vídeo, wow @ 05 21st, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

boníssima notícia: finalmente divulgaram os números da transmissão online ao vivo das Olimpíadas de Inverno com Smooth Streaming   veja um exemplo: impressionante.   e o mais legal é que muitas das solucoes usadas (edicao de videos no browser,…(read more)

Mai 21

Bárbaro: abriram os números da transmissão das Olimpíadas de Inverno em Smooth Streaming

Escrito por rene em 1, 4, 6, AR, bar, blog, Blogs, browser, bug, Dica, esporte, Evento, exemplo, ide, mg, MSDN, NaN, O, on, online, referencia, Ria’s Geral, silverlight, smooth streaming, streaming, televisao, UAU, UI, user experience, Vídeo, wow @ 05 21st, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

boníssima notícia: finalmente divulgaram os números da transmissão online ao vivo das Olimpíadas de Inverno com Smooth Streaming   veja um exemplo: impressionante.   e o mais legal é que muitas das solucoes usadas (edicao de videos no browser,…(read more)

Mai 10

Que orgulho! Thumba, brasileiríssimo, no Lifehacker!

Escrito por rene em 1, 4, 6, app, AR, blog, Blogs, bug, gentequefazUAU, if, image, imagens, mg, MSDN, O, out-of-browser, RIA, Ria’s Geral, silverlight, UAU, UI, wow @ 05 10th, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

meus agradecimentos ao Galileu por ter me avisado: o famoso blog Lifehacker fez um post recomendando com louvor o editor de imagens Thumba, criado em Silverlight por três brasileiros que já apresentei aqui .  vejam que legal a matéria: Thumba Is…(read more)

Abr 23

Sunday Night Football em Silverlight- esse eu queria ter visto

Escrito por rene em 1, 4, 6, AR, blog, Blogs, bug, esporte, mg, MSDN, O, RIA, Ria’s Geral, silverlight, smooth streaming, Sun, televisao, UAU, user experience, Vídeo, wow, XP @ 04 23rd, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

  well, eu queria ter visto nao pelo futebol americano (nao gosto de esporte algum, nem peteca), mas sim pra ver a experiência de ter cinco cameras simultaneas pra escolher.  e pra ver a qualidade do HD tambem, claro.  veja o resumo da…(read more)

Abr 21

GENIO! quebra-cabeças touch e fora do browser!

Escrito por rene em 1, 4, 6, AR, bar, blog, Blogs, browser, bug, for, game, if, image, imagens, jogo, mg, MSDN, O, on, out-of-browser, produtividade, Ria’s Geral, silverlight, Touch, UAU, UI, wow @ 04 21st, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

  essa é pra acabar com a produtividade de todo mundo: um quebra-cabeças com inumeras imagens diferentes, com quantos peças voce quiser e que "salva" pra voce continuar depois. mais: dá pra instalar fora do browser e é touch!  have…(read more)

Mar 29

Uma esbórnia de conteúdo bom: User Experience Kit

Escrito por rene em 1, 6, advertising, AR, blog, Blogs, bug, código, demo, fonte, ide, IE, kit, live, mg, MSDN, O, on, referencia, Ria’s Geral, silverlight, UAU, user experience, UX, wow, XP @ 03 29th, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

  céus, quanta coisa… demos, videos, aplicacoes, códigos-fonte, um monnnte de coisa boa.  melhor que isso: tudo dividido por cenários: Rich Media Delivery, Content Publishing, Publisher Advertising, Personalized Experiences…  vou explorar…(read more)

Mar 14

GÊNIO: aprenda Silverlight com .toolbox (é grátis!)

Escrito por rene em 1, 4, 6, AR, bar, blog, Blogs, bug, grátis, gratuito, how-to, mg, MIX, MSDN, O, on, referencia, RIA, Ria’s Geral, silverlight, tool, Treinamento, treinamentos, UAU, UI, wow, XP @ 03 14th, 2010 | via http://blogs.msdn.com/renedepaula/ | Sem comentários
rene
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

  que bárbaro, isso: nao só criaram treinamentos gratuitos de Silverlight mas também organizaram tudo num "currículo" em que você vai evoluindo no teu conhecimento (veja abaixo) estou em Vegas às vésperas do MIX10, não consegui explorar…(read more)

« Entradas anteriores |

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 2750 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