Arquivo

Arquivo de maio, 2011

Flash Builder DataGrid DragEvent

11, maio, 2011 2 comentários

Olá pessoal beleza?

Pois é em ritmo de AudiCup.
Eis que então o pessoal da Audi entrou em contato comigo essa semana para fazer algo em Web 2.0 para cadastrar os times que irão participar da AudiCup.

Segue os links abaixo:
http://www.audi.com/com/brand/en/experience/sponsoring/sportsponsoring/the_audi_cup_2011.html
http://www.audi.com/com/brand/en/experience/sponsoring/sportsponsoring/the_audi_cup_2011/schedule_and_tickets.html

Inter , estaremos contigo ..
Tu és minha paixão !
Não importa o que digam
Sempre levarei comigo
Minha camisa vermelha ..
e a cachaça na mão
O Gigante me espera ..
Para começar a festa !

O exemplo é mais ou menos o que esta abaixo:

Veja o Fonte é simples:

<?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" minWidth="955" minHeight="600"
			   creationComplete="application1_creationCompleteHandler(event)">
	<fx:Declarations>
 
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.events.CloseEvent;
			import mx.controls.Alert;
			import mx.events.DragEvent;
			import mx.events.FlexEvent;
			import mx.managers.DragManager;
 
			[Bindable]
			private var time:Time;
 
			[Bindable]
			private var times:ArrayCollection;			
 
			[Bindable]
			private var timesConvocados:ArrayCollection=new ArrayCollection();
 
			private function onDrop(event:DragEvent):void {
				if(event.dragSource.formats.toString() == "items,itemsByIndex,caretIndex") {
					var dragList:Array = event.dragSource.dataForFormat('items') as Array;
					var draggedTimes:Time = dragList[0] as Time;
 
					if(draggedTimes.fifa == 'N') {
						Alert.show("Não foi possível adicionar este time!\n\n"+draggedTimes.nome+" não tem mundial de Clubes FIFA!", "AudiCup");
						event.preventDefault();
						event.target.hideDropFeedback(event);
						DragManager.showFeedback(DragManager.NONE);
					}else if(draggedTimes.fifa == 'T') {
						Alert.show("Time Adicionado!\n\n"+draggedTimes.nome+" foi campeão do mundialito de Gentil em 2010!", "AudiCup");
					}else{
						Alert.show("Time Adicionado!\n\n"+draggedTimes.nome+" foi campeão Mundial FIFA!", "AudiCup");
					}
				}
			}	
 
			protected function application1_creationCompleteHandler(event:FlexEvent):void
			{
				times=new ArrayCollection();
				time=new Time();
				time.id=1;
				time.nome="FC Barcelona";
				time.fifa="S";
				times.addItem(time);
 
				time=new Time();
				time.id=2;
				time.nome="SC Internacional de Porto Alegre";
				time.fifa="S";
				times.addItem(time);
 
				time=new Time();
				time.id=3;
				time.nome="FC Bayern";
				time.fifa="S";
				times.addItem(time);
 
				time=new Time();
				time.id=4;
				time.nome="AC Milan";
				time.fifa="S";
				times.addItem(time);
 
				time=new Time();
				time.id=5;
				time.nome="Grêmio de Porto Alegre";
				time.fifa="N";
				times.addItem(time);
 
				time=new Time();
				time.id=6;
				time.nome="SC Juventude de Caxias do Sul";
				time.fifa="N";
				times.addItem(time);				
 
				time=new Time();
				time.id=7;
				time.nome="FC Bãrdei de Marau";
				time.fifa="T";
				times.addItem(time);				
			}
 
		]]>
	</fx:Script>
	<s:Label x="10" y="10" fontSize="14" fontWeight="bold" text="Audi Cup 2011 Meet the best"/>
 
	<mx:DataGrid x="10" y="32" width="250" height="220" dataProvider="{times}"				
				dragEnabled="true" dragMoveEnabled="true" dropEnabled="true">
		<mx:columns>
			<mx:DataGridColumn dataField="nome" headerText="Times disponíveis para a AudiCup"/>
		</mx:columns>
	</mx:DataGrid>
 
	<mx:DataGrid x="268" y="32" width="250" height="220" dataProvider="{timesConvocados}"
				 dragEnabled="true" dragMoveEnabled="true" dropEnabled="true" dragDrop="onDrop(event);">
		<mx:columns>
			<mx:DataGridColumn dataField="nome" headerText="Convoque você mesmo - Arraste Aqui"/>
		</mx:columns>
	</mx:DataGrid>	
</s:Application>
package
{
	[Bindable]
	public class Time
	{
		public var id:Number;
		public var nome:String;
		public var fifa:String;
 
		public function Time()
		{
		}
	}
}

Felipe Borella.

Share on Facebook
Categories: Flex Tags:

Flash Builder 4.5 Eclipse

6, maio, 2011 Sem comentários

Opa.

Fiz alguns testes com o Flash Builder 4.5 e fiquei impressionado com o desenvolvimento para mobile. Show de bola mesmo.
Bom para instalar o Eclipse juntamente com o Flash Builder é fácil.

Depois do Flash Builder instalado va ate a página http://kb2.adobe.com/cps/890/cpsid_89021.html que é bem fácil a instalação.

Tradução é +- isso:

Flash Builder 4,5 suporta a instalação de um plugin para o Eclipse uma instância existente. Para fazer isso:

Navegue até o local de instalação instalado o Flash Builder e abra a pasta Utilitários.
Execute o executável do Adobe Flash Builder 4,5 Plug-in Utility.exe.
Selecione o idioma e clique em OK.
Selecione o local de instalação do Flash Builder, se solicitado.
Selecione a pasta do Eclipse para o qual deseja Flash Builder 4.5 para ser conectado e clique em Avançar. (Nota: A cópia do Eclipse deve ser versão 3.6.1 ou posterior, de 32 bits e deve conter uma pasta chamada “dropins”)
Reveja a pré-instalação de resumo e clique em Install
Após a instalação, é recomendável que você edite o arquivo eclipse.ini para a instância do Eclipse, para que ele inclui as seguintes definições:

-Vmargs-Xms256m-Xmx512m-XX: MaxPermSize = 256m-XX: PermSize = 64m

E isso ai

Felipe.

Share on Facebook
Categories: Flex, iOS, Iphone, Tablet Tags:

Spring @Transactional Transações Java

5, maio, 2011 2 comentários

E ai pessoal blza?
Uma coisa que as vezes eu vejo por ai são aplicações sem o uso do controle de transações. Descobri a poucos dias que isso pode ser tornar uma dor de cabeça para o desenvolvedor. Então se você usa o Spring ( que é o meus caso ) basta incluir no seu ApplicationContext essa tag abaixo:

<tx:annotation-driven transaction-manager="transactionManager"/>

Depois nos seus services basta fazer isso:

@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)

Isso pode evitar alguns indesejáveis problemas no banco de dados, inconsistências e até mesmo a quedra do servidor ( apache tomcat, jboos etc ).

ps – Esse controle de aplicação aplica-se para outros, não apenas no Spring ( veja a documentação )

Att
Felipe

Share on Facebook
Categories: Java Tags: