---
title: Eventos de Componentes
source: https://tdn.totvs.com/display/fluig/Eventos+de+Componentes
path: \Plataforma Documentação técnica\Recurso de Páginas e Widgets (WCM)\Construção de Widgets e Layouts\Widgets\Eventos de Componentes.md
---
No desenvolvimento de um *widget* para o Fluig Plataforma é possível programar certas ações a serem executadas em tempo de instalação, ativação ou desativação.
Importante
Esses eventos estão disponíveis desde que se utilize a [Central de Componentes](http://tdn.totvs.com/display/HF/Central+de+componentes) disponível no agrupador **Aplicativos** do **Painel de controle** ou a [Exportação e Importação de Páginas](http://tdn.totvs.com/pages/viewpage.action?pageId=234455771) disponível no agrupador **Personalização** do **Painel de controle**
Para que isso seja possível, é necessário criar uma classe em seu projeto Fluig que [implemente](https://docs.oracle.com/javase/tutorial/java/IandI/usinginterface.html) a classe "com.fluig.sdk.api.component.activation.ActivationListener". É necessário também inserir uma [annotation](https://docs.oracle.com/javase/tutorial/java/annotations/) de mapeamento, que depois deverá ser referenciada no arquivo [application.info](http://tdn.totvs.com/display/fluig/Arquivo+application.info).
Veja abaixo um exemplo dessa classe:
**ActivationClass.java**
```
package com.fluig;
import javax.ejb.Singleton;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import com.fluig.sdk.api.component.activation.ActivationEvent;
import com.fluig.sdk.api.component.activation.ActivationListener;
@Singleton(mappedName = "activator/codigo_widget", name = "activator/codigo_widget")
public class ActivationClass implements ActivationListener {
/**
* @return nome do arquivo que será gerado e feito o deploy na central de componentes
* @throws Exception
*/
@Override
public String getArtifactFileName() throws Exception {
return "nome-do-arquivo-gerado.war";
}
/**
* Evento chamado no momento da instalação (deploy) do artefato dentro da Central de Componentes.
* @param event
* @throws Exception
*/
@Override
public void install(ActivationEvent event) throws Exception {
}
/**
* Evento chamado no momento da ativação do artefato dentro da Central de Componentes.
* @param event
* @throws Exception
*/
@Override
public void enable(ActivationEvent event) throws Exception {
}
/**
* Evento chamado no momento da desativação do artefato dentro da Central de Componentes.
* @param event
* @throws Exception
*/
@Override
public void disable(ActivationEvent event) throws Exception {
}
}
```
Em seguida, no arquivo [application.info](http://tdn.totvs.com/display/fluig/Arquivo+application.info) deve ser criada a propriedade "activation.class", cujo valor deve ser o mesmo da propriedade *"name"* da [annotation](https://docs.oracle.com/javase/tutorial/java/annotations/) da classe de ativação.
Para o exemplo dado acima a propriedade ficaria assim:
**application.info**
```
activation.class=activator/codigo_widget
```
Além disso, para que seu artefato seja corretamente gerado, é necessário adicionar algumas dependências ao seu projeto. Caso o seu projeto seja do tipo maven.
Utilize o código abaixo:
**pom.xml**
```
com.fluig
foundation-security-authentication-saml
provided
javax
javaee-api
provided
com.fluig
wcm-sdk-service
provided
com.fluig
wcm-common
provided
com.fluig
fluig-sdk-common
provided
com.fluig
fluig-sdk-api
provided
com.fluig
wcm-core
jar
com.fluig
ecm-ejb-api
jar
org.json
json
provided
org.apache.maven.plugins
maven-war-plugin
false
org.slf4j, com.fluig.api, com.fluig.api.common
net.alchim31.maven
yuicompressor-maven-plugin
compress
false
true
-1
false
false
false
true
false
```
Exemplo Completo
Para uma visão mais completa dessa técnica, é possível visualizar um dos *widgets* disponibilizados pela equipe do TOTVS Fluig Plataforma em nosso repositório de [samples](https://git.fluig.com/projects/SAMPLES/repos/widgets/browse), como por exemplo o *widget* de [convênios.](http://git.fluig.com/projects/SAMPLES/repos/kit-intranet/browse/wcm/widget/kit_convenios)