diff --git a/.settings/org.springframework.ide.eclipse.roo.core.prefs b/.settings/org.springframework.ide.eclipse.roo.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..856cb00c036008ad57de75757c29c336818b989a
--- /dev/null
+++ b/.settings/org.springframework.ide.eclipse.roo.core.prefs
@@ -0,0 +1,5 @@
+#
+#Thu Sep 26 11:20:13 BRT 2013
+org.springframework.ide.eclipse.roo.core.use.default.install=true
+eclipse.preferences.version=1
+org.springframework.ide.eclipse.roo.core.org.springframework.ide.eclipse.roo.core.install.name=Roo 1.2.3.RELEASE [rev 7fd62b6]
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Estado.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/Estado.java
index 227e3ad46f551bf0843785a8346de8f7fac5ef62..af7122258a3354ba32d08537df0158842cb16a57 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/Estado.java
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Estado.java
@@ -1,5 +1,11 @@
 package br.ufpr.c3sl.estacaojuventude;
 
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.ManyToMany;
+
 import org.springframework.roo.addon.javabean.RooJavaBean;
 import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
 import org.springframework.roo.addon.tostring.RooToString;
@@ -12,4 +18,7 @@ public class Estado {
 	private String nome;
 	
 	private String sigla;
+	
+	@ManyToMany(cascade = CascadeType.ALL, mappedBy = "uf")
+	private Set<Municipio> municipios = new HashSet<Municipio>();
 }
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Estado_Roo_JavaBean.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Estado_Roo_JavaBean.aj
index 5cb9cd3ed4ec7d069ca4f3976e8f2065e322072a..67fca8c320d1ca1d01ddb4add17d763daf3f9dd0 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/Estado_Roo_JavaBean.aj
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Estado_Roo_JavaBean.aj
@@ -4,6 +4,8 @@
 package br.ufpr.c3sl.estacaojuventude;
 
 import br.ufpr.c3sl.estacaojuventude.Estado;
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import java.util.Set;
 
 privileged aspect Estado_Roo_JavaBean {
     
@@ -23,4 +25,12 @@ privileged aspect Estado_Roo_JavaBean {
         this.sigla = sigla;
     }
     
+    public Set<Municipio> Estado.getMunicipios() {
+        return this.municipios;
+    }
+    
+    public void Estado.setMunicipios(Set<Municipio> municipios) {
+        this.municipios = municipios;
+    }
+    
 }
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao.java
new file mode 100644
index 0000000000000000000000000000000000000000..e53b880f1581375329a06773d68c6ace82305c9f
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao.java
@@ -0,0 +1,33 @@
+package br.ufpr.c3sl.estacaojuventude;
+
+import javax.persistence.Column;
+import javax.persistence.OneToOne;
+
+import org.springframework.roo.addon.javabean.RooJavaBean;
+import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
+import org.springframework.roo.addon.tostring.RooToString;
+
+@RooJavaBean
+@RooToString
+@RooJpaActiveRecord
+public class Localizacao {
+
+	@OneToOne
+	private OcorrenciaMunicipal ocorrencia;
+
+	@Column(columnDefinition = "text")
+	private String local;
+
+	@Column(columnDefinition = "text")
+	private String endereco;
+
+	private Integer quantidadeVagas;
+
+	private String horarioFuncionamento;
+
+	private String nomeReferencia;
+
+	private String telefone;
+
+	private String email;
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Configurable.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Configurable.aj
new file mode 100644
index 0000000000000000000000000000000000000000..74a40a66aa5f0c497f8a547f81c70795e11e13a5
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Configurable.aj
@@ -0,0 +1,13 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import org.springframework.beans.factory.annotation.Configurable;
+
+privileged aspect Localizacao_Roo_Configurable {
+    
+    declare @type: Localizacao: @Configurable;
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_JavaBean.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_JavaBean.aj
new file mode 100644
index 0000000000000000000000000000000000000000..18f64bc0463a0156e2e97a53e32e9784eaf50e8a
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_JavaBean.aj
@@ -0,0 +1,75 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+
+privileged aspect Localizacao_Roo_JavaBean {
+    
+    public OcorrenciaMunicipal Localizacao.getOcorrencia() {
+        return this.ocorrencia;
+    }
+    
+    public void Localizacao.setOcorrencia(OcorrenciaMunicipal ocorrencia) {
+        this.ocorrencia = ocorrencia;
+    }
+    
+    public String Localizacao.getLocal() {
+        return this.local;
+    }
+    
+    public void Localizacao.setLocal(String local) {
+        this.local = local;
+    }
+    
+    public String Localizacao.getEndereco() {
+        return this.endereco;
+    }
+    
+    public void Localizacao.setEndereco(String endereco) {
+        this.endereco = endereco;
+    }
+    
+    public Integer Localizacao.getQuantidadeVagas() {
+        return this.quantidadeVagas;
+    }
+    
+    public void Localizacao.setQuantidadeVagas(Integer quantidadeVagas) {
+        this.quantidadeVagas = quantidadeVagas;
+    }
+    
+    public String Localizacao.getHorarioFuncionamento() {
+        return this.horarioFuncionamento;
+    }
+    
+    public void Localizacao.setHorarioFuncionamento(String horarioFuncionamento) {
+        this.horarioFuncionamento = horarioFuncionamento;
+    }
+    
+    public String Localizacao.getNomeReferencia() {
+        return this.nomeReferencia;
+    }
+    
+    public void Localizacao.setNomeReferencia(String nomeReferencia) {
+        this.nomeReferencia = nomeReferencia;
+    }
+    
+    public String Localizacao.getTelefone() {
+        return this.telefone;
+    }
+    
+    public void Localizacao.setTelefone(String telefone) {
+        this.telefone = telefone;
+    }
+    
+    public String Localizacao.getEmail() {
+        return this.email;
+    }
+    
+    public void Localizacao.setEmail(String email) {
+        this.email = email;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Jpa_ActiveRecord.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Jpa_ActiveRecord.aj
new file mode 100644
index 0000000000000000000000000000000000000000..42b899df581356455e1c94e1a8f33347a81e8981
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Jpa_ActiveRecord.aj
@@ -0,0 +1,77 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import org.springframework.transaction.annotation.Transactional;
+
+privileged aspect Localizacao_Roo_Jpa_ActiveRecord {
+    
+    @PersistenceContext
+    transient EntityManager Localizacao.entityManager;
+    
+    public static final EntityManager Localizacao.entityManager() {
+        EntityManager em = new Localizacao().entityManager;
+        if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
+        return em;
+    }
+    
+    public static long Localizacao.countLocalizacaos() {
+        return entityManager().createQuery("SELECT COUNT(o) FROM Localizacao o", Long.class).getSingleResult();
+    }
+    
+    public static List<Localizacao> Localizacao.findAllLocalizacaos() {
+        return entityManager().createQuery("SELECT o FROM Localizacao o", Localizacao.class).getResultList();
+    }
+    
+    public static Localizacao Localizacao.findLocalizacao(Long id) {
+        if (id == null) return null;
+        return entityManager().find(Localizacao.class, id);
+    }
+    
+    public static List<Localizacao> Localizacao.findLocalizacaoEntries(int firstResult, int maxResults) {
+        return entityManager().createQuery("SELECT o FROM Localizacao o", Localizacao.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
+    }
+    
+    @Transactional
+    public void Localizacao.persist() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.persist(this);
+    }
+    
+    @Transactional
+    public void Localizacao.remove() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        if (this.entityManager.contains(this)) {
+            this.entityManager.remove(this);
+        } else {
+            Localizacao attached = Localizacao.findLocalizacao(this.id);
+            this.entityManager.remove(attached);
+        }
+    }
+    
+    @Transactional
+    public void Localizacao.flush() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.flush();
+    }
+    
+    @Transactional
+    public void Localizacao.clear() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.clear();
+    }
+    
+    @Transactional
+    public Localizacao Localizacao.merge() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        Localizacao merged = this.entityManager.merge(this);
+        this.entityManager.flush();
+        return merged;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Jpa_Entity.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Jpa_Entity.aj
new file mode 100644
index 0000000000000000000000000000000000000000..167810bc2924b4b22528be36f96acf53c8bea016
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_Jpa_Entity.aj
@@ -0,0 +1,43 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Version;
+
+privileged aspect Localizacao_Roo_Jpa_Entity {
+    
+    declare @type: Localizacao: @Entity;
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id")
+    private Long Localizacao.id;
+    
+    @Version
+    @Column(name = "version")
+    private Integer Localizacao.version;
+    
+    public Long Localizacao.getId() {
+        return this.id;
+    }
+    
+    public void Localizacao.setId(Long id) {
+        this.id = id;
+    }
+    
+    public Integer Localizacao.getVersion() {
+        return this.version;
+    }
+    
+    public void Localizacao.setVersion(Integer version) {
+        this.version = version;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_ToString.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_ToString.aj
new file mode 100644
index 0000000000000000000000000000000000000000..c687a19c4f47298ba513ef81a6901f11766c41d8
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Localizacao_Roo_ToString.aj
@@ -0,0 +1,16 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+privileged aspect Localizacao_Roo_ToString {
+    
+    public String Localizacao.toString() {
+        return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio.java
new file mode 100644
index 0000000000000000000000000000000000000000..a2173068d1480888dd1db014903ab801ae59f420
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio.java
@@ -0,0 +1,18 @@
+package br.ufpr.c3sl.estacaojuventude;
+
+import javax.persistence.OneToOne;
+
+import org.springframework.roo.addon.javabean.RooJavaBean;
+import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
+import org.springframework.roo.addon.tostring.RooToString;
+
+@RooJavaBean
+@RooToString
+@RooJpaActiveRecord
+public class Municipio {
+	
+	private String nome;
+
+	@OneToOne
+	private Estado uf;
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Configurable.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Configurable.aj
new file mode 100644
index 0000000000000000000000000000000000000000..12cd30677b0accc868a0a0293f421e81e10a606a
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Configurable.aj
@@ -0,0 +1,13 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import org.springframework.beans.factory.annotation.Configurable;
+
+privileged aspect Municipio_Roo_Configurable {
+    
+    declare @type: Municipio: @Configurable;
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_JavaBean.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_JavaBean.aj
new file mode 100644
index 0000000000000000000000000000000000000000..51f3517c7169fed3c2746003ab0025064a452db7
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_JavaBean.aj
@@ -0,0 +1,27 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Estado;
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+
+privileged aspect Municipio_Roo_JavaBean {
+    
+    public String Municipio.getNome() {
+        return this.nome;
+    }
+    
+    public void Municipio.setNome(String nome) {
+        this.nome = nome;
+    }
+    
+    public Estado Municipio.getUf() {
+        return this.uf;
+    }
+    
+    public void Municipio.setUf(Estado uf) {
+        this.uf = uf;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Jpa_ActiveRecord.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Jpa_ActiveRecord.aj
new file mode 100644
index 0000000000000000000000000000000000000000..14f22f2bf95d63f8e41fbc26f1c3eb66db026e87
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Jpa_ActiveRecord.aj
@@ -0,0 +1,77 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import org.springframework.transaction.annotation.Transactional;
+
+privileged aspect Municipio_Roo_Jpa_ActiveRecord {
+    
+    @PersistenceContext
+    transient EntityManager Municipio.entityManager;
+    
+    public static final EntityManager Municipio.entityManager() {
+        EntityManager em = new Municipio().entityManager;
+        if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
+        return em;
+    }
+    
+    public static long Municipio.countMunicipios() {
+        return entityManager().createQuery("SELECT COUNT(o) FROM Municipio o", Long.class).getSingleResult();
+    }
+    
+    public static List<Municipio> Municipio.findAllMunicipios() {
+        return entityManager().createQuery("SELECT o FROM Municipio o", Municipio.class).getResultList();
+    }
+    
+    public static Municipio Municipio.findMunicipio(Long id) {
+        if (id == null) return null;
+        return entityManager().find(Municipio.class, id);
+    }
+    
+    public static List<Municipio> Municipio.findMunicipioEntries(int firstResult, int maxResults) {
+        return entityManager().createQuery("SELECT o FROM Municipio o", Municipio.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
+    }
+    
+    @Transactional
+    public void Municipio.persist() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.persist(this);
+    }
+    
+    @Transactional
+    public void Municipio.remove() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        if (this.entityManager.contains(this)) {
+            this.entityManager.remove(this);
+        } else {
+            Municipio attached = Municipio.findMunicipio(this.id);
+            this.entityManager.remove(attached);
+        }
+    }
+    
+    @Transactional
+    public void Municipio.flush() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.flush();
+    }
+    
+    @Transactional
+    public void Municipio.clear() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.clear();
+    }
+    
+    @Transactional
+    public Municipio Municipio.merge() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        Municipio merged = this.entityManager.merge(this);
+        this.entityManager.flush();
+        return merged;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Jpa_Entity.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Jpa_Entity.aj
new file mode 100644
index 0000000000000000000000000000000000000000..180d04526ddd27f576be950a34eeb33f817c8f04
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_Jpa_Entity.aj
@@ -0,0 +1,43 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Version;
+
+privileged aspect Municipio_Roo_Jpa_Entity {
+    
+    declare @type: Municipio: @Entity;
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id")
+    private Long Municipio.id;
+    
+    @Version
+    @Column(name = "version")
+    private Integer Municipio.version;
+    
+    public Long Municipio.getId() {
+        return this.id;
+    }
+    
+    public void Municipio.setId(Long id) {
+        this.id = id;
+    }
+    
+    public Integer Municipio.getVersion() {
+        return this.version;
+    }
+    
+    public void Municipio.setVersion(Integer version) {
+        this.version = version;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_ToString.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_ToString.aj
new file mode 100644
index 0000000000000000000000000000000000000000..f3d61bff5fa367223e8e7333ce617c0d76558622
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Municipio_Roo_ToString.aj
@@ -0,0 +1,16 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+privileged aspect Municipio_Roo_ToString {
+    
+    public String Municipio.toString() {
+        return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal.java
new file mode 100644
index 0000000000000000000000000000000000000000..a0ff326b3499468abecf3f557cc5d6c435f00cce
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal.java
@@ -0,0 +1,43 @@
+package br.ufpr.c3sl.estacaojuventude;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.ManyToMany;
+import javax.persistence.OneToOne;
+
+import org.springframework.roo.addon.javabean.RooJavaBean;
+import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
+import org.springframework.roo.addon.tostring.RooToString;
+
+@RooJavaBean
+@RooToString
+@RooJpaActiveRecord
+public class OcorrenciaMunicipal {
+
+	@OneToOne
+	private Programa programaVinculado;
+
+	@OneToOne
+	private Municipio municipio;
+
+	@ManyToMany(cascade = CascadeType.ALL)
+	private Set<OrgaoExecutor> orgaosExecutores = new HashSet<OrgaoExecutor>();
+
+	private Integer quantidadeVagas;
+
+	@Column(columnDefinition = "text")
+	private String beneficiosLocais;
+
+	@Column(columnDefinition = "text")
+	private String comoAcessar;
+
+	private String inicioInscricoes;
+
+	private String fimInscricoes;
+	
+	@ManyToMany(cascade = CascadeType.ALL, mappedBy = "ocorrencia")
+	private Set<Localizacao> localizacoes = new HashSet<Localizacao>();
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Configurable.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Configurable.aj
new file mode 100644
index 0000000000000000000000000000000000000000..9cd7a8a7021a2e10f7832f99a65345718a214435
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Configurable.aj
@@ -0,0 +1,13 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+import org.springframework.beans.factory.annotation.Configurable;
+
+privileged aspect OcorrenciaMunicipal_Roo_Configurable {
+    
+    declare @type: OcorrenciaMunicipal: @Configurable;
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_JavaBean.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_JavaBean.aj
new file mode 100644
index 0000000000000000000000000000000000000000..9d9ecb8d6a3140e5389caf35338442f4de6ba3f3
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_JavaBean.aj
@@ -0,0 +1,87 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+import br.ufpr.c3sl.estacaojuventude.OrgaoExecutor;
+import br.ufpr.c3sl.estacaojuventude.Programa;
+import java.util.Set;
+
+privileged aspect OcorrenciaMunicipal_Roo_JavaBean {
+    
+    public Programa OcorrenciaMunicipal.getProgramaVinculado() {
+        return this.programaVinculado;
+    }
+    
+    public void OcorrenciaMunicipal.setProgramaVinculado(Programa programaVinculado) {
+        this.programaVinculado = programaVinculado;
+    }
+    
+    public Municipio OcorrenciaMunicipal.getMunicipio() {
+        return this.municipio;
+    }
+    
+    public void OcorrenciaMunicipal.setMunicipio(Municipio municipio) {
+        this.municipio = municipio;
+    }
+    
+    public Set<OrgaoExecutor> OcorrenciaMunicipal.getOrgaosExecutores() {
+        return this.orgaosExecutores;
+    }
+    
+    public void OcorrenciaMunicipal.setOrgaosExecutores(Set<OrgaoExecutor> orgaosExecutores) {
+        this.orgaosExecutores = orgaosExecutores;
+    }
+    
+    public Integer OcorrenciaMunicipal.getQuantidadeVagas() {
+        return this.quantidadeVagas;
+    }
+    
+    public void OcorrenciaMunicipal.setQuantidadeVagas(Integer quantidadeVagas) {
+        this.quantidadeVagas = quantidadeVagas;
+    }
+    
+    public String OcorrenciaMunicipal.getBeneficiosLocais() {
+        return this.beneficiosLocais;
+    }
+    
+    public void OcorrenciaMunicipal.setBeneficiosLocais(String beneficiosLocais) {
+        this.beneficiosLocais = beneficiosLocais;
+    }
+    
+    public String OcorrenciaMunicipal.getComoAcessar() {
+        return this.comoAcessar;
+    }
+    
+    public void OcorrenciaMunicipal.setComoAcessar(String comoAcessar) {
+        this.comoAcessar = comoAcessar;
+    }
+    
+    public String OcorrenciaMunicipal.getInicioInscricoes() {
+        return this.inicioInscricoes;
+    }
+    
+    public void OcorrenciaMunicipal.setInicioInscricoes(String inicioInscricoes) {
+        this.inicioInscricoes = inicioInscricoes;
+    }
+    
+    public String OcorrenciaMunicipal.getFimInscricoes() {
+        return this.fimInscricoes;
+    }
+    
+    public void OcorrenciaMunicipal.setFimInscricoes(String fimInscricoes) {
+        this.fimInscricoes = fimInscricoes;
+    }
+    
+    public Set<Localizacao> OcorrenciaMunicipal.getLocalizacoes() {
+        return this.localizacoes;
+    }
+    
+    public void OcorrenciaMunicipal.setLocalizacoes(Set<Localizacao> localizacoes) {
+        this.localizacoes = localizacoes;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Jpa_ActiveRecord.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Jpa_ActiveRecord.aj
new file mode 100644
index 0000000000000000000000000000000000000000..ed48f8bda12adb0efdb79d0922a2323e30e5d61a
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Jpa_ActiveRecord.aj
@@ -0,0 +1,77 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import org.springframework.transaction.annotation.Transactional;
+
+privileged aspect OcorrenciaMunicipal_Roo_Jpa_ActiveRecord {
+    
+    @PersistenceContext
+    transient EntityManager OcorrenciaMunicipal.entityManager;
+    
+    public static final EntityManager OcorrenciaMunicipal.entityManager() {
+        EntityManager em = new OcorrenciaMunicipal().entityManager;
+        if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
+        return em;
+    }
+    
+    public static long OcorrenciaMunicipal.countOcorrenciaMunicipals() {
+        return entityManager().createQuery("SELECT COUNT(o) FROM OcorrenciaMunicipal o", Long.class).getSingleResult();
+    }
+    
+    public static List<OcorrenciaMunicipal> OcorrenciaMunicipal.findAllOcorrenciaMunicipals() {
+        return entityManager().createQuery("SELECT o FROM OcorrenciaMunicipal o", OcorrenciaMunicipal.class).getResultList();
+    }
+    
+    public static OcorrenciaMunicipal OcorrenciaMunicipal.findOcorrenciaMunicipal(Long id) {
+        if (id == null) return null;
+        return entityManager().find(OcorrenciaMunicipal.class, id);
+    }
+    
+    public static List<OcorrenciaMunicipal> OcorrenciaMunicipal.findOcorrenciaMunicipalEntries(int firstResult, int maxResults) {
+        return entityManager().createQuery("SELECT o FROM OcorrenciaMunicipal o", OcorrenciaMunicipal.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
+    }
+    
+    @Transactional
+    public void OcorrenciaMunicipal.persist() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.persist(this);
+    }
+    
+    @Transactional
+    public void OcorrenciaMunicipal.remove() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        if (this.entityManager.contains(this)) {
+            this.entityManager.remove(this);
+        } else {
+            OcorrenciaMunicipal attached = OcorrenciaMunicipal.findOcorrenciaMunicipal(this.id);
+            this.entityManager.remove(attached);
+        }
+    }
+    
+    @Transactional
+    public void OcorrenciaMunicipal.flush() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.flush();
+    }
+    
+    @Transactional
+    public void OcorrenciaMunicipal.clear() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.clear();
+    }
+    
+    @Transactional
+    public OcorrenciaMunicipal OcorrenciaMunicipal.merge() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        OcorrenciaMunicipal merged = this.entityManager.merge(this);
+        this.entityManager.flush();
+        return merged;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Jpa_Entity.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Jpa_Entity.aj
new file mode 100644
index 0000000000000000000000000000000000000000..b82b9cf7fca9b602552ce2b118054440508b7fc5
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_Jpa_Entity.aj
@@ -0,0 +1,43 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Version;
+
+privileged aspect OcorrenciaMunicipal_Roo_Jpa_Entity {
+    
+    declare @type: OcorrenciaMunicipal: @Entity;
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id")
+    private Long OcorrenciaMunicipal.id;
+    
+    @Version
+    @Column(name = "version")
+    private Integer OcorrenciaMunicipal.version;
+    
+    public Long OcorrenciaMunicipal.getId() {
+        return this.id;
+    }
+    
+    public void OcorrenciaMunicipal.setId(Long id) {
+        this.id = id;
+    }
+    
+    public Integer OcorrenciaMunicipal.getVersion() {
+        return this.version;
+    }
+    
+    public void OcorrenciaMunicipal.setVersion(Integer version) {
+        this.version = version;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_ToString.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_ToString.aj
new file mode 100644
index 0000000000000000000000000000000000000000..784d19e01199558e23d680fb06707c230a8e8292
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/OcorrenciaMunicipal_Roo_ToString.aj
@@ -0,0 +1,16 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude;
+
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+privileged aspect OcorrenciaMunicipal_Roo_ToString {
+    
+    public String OcorrenciaMunicipal.toString() {
+        return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Programa.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/Programa.java
index 70fba0cbc26042b77c4a51cffe172b36a8cc0eca..f8d761d2fe9a099fcde5d38d23b7ad5287b122a2 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/Programa.java
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Programa.java
@@ -1,10 +1,12 @@
 package br.ufpr.c3sl.estacaojuventude;
 
+import br.ufpr.c3sl.estacaojuventude.enums.NivelPrograma;
+import br.ufpr.c3sl.estacaojuventude.enums.TipoStatus;
+import br.ufpr.c3sl.estacaojuventude.enums.TipoTemporalidade;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.EnumType;
@@ -13,29 +15,23 @@ import javax.persistence.ManyToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
-
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.roo.addon.javabean.RooJavaBean;
 import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
 import org.springframework.roo.addon.tostring.RooToString;
 import org.springframework.security.core.context.SecurityContextHolder;
 
-import br.ufpr.c3sl.estacaojuventude.enums.NivelPrograma;
-import br.ufpr.c3sl.estacaojuventude.enums.TipoStatus;
-import br.ufpr.c3sl.estacaojuventude.enums.TipoTemporalidade;
-
 @RooJavaBean
 @RooToString
 @RooJpaActiveRecord
 public class Programa {
-	
-	private String nomeOficial;
+
+    private String nomeOficial;
 
     private String nomeDivulgacao;
 
     private String sigla;
 
-    //NivelPrograma = {Nacional,Estadual,Municipal}
     @Enumerated(EnumType.STRING)
     private NivelPrograma nivel;
 
@@ -49,7 +45,7 @@ public class Programa {
 
     @Column(columnDefinition = "text")
     private String objetivos;
-    
+
     @Column(columnDefinition = "text")
     private String beneficios;
 
@@ -57,13 +53,12 @@ public class Programa {
     @DateTimeFormat(style = "S-")
     private Date dataInicio;
 
-    //TipoTemporalidade = {Permanente, Temporario, Eventual}
     @Enumerated(EnumType.STRING)
     private TipoTemporalidade temporalidade;
 
     @Column(columnDefinition = "text")
     private String publicoAlvo;
-    
+
     private Integer idadeMinima;
 
     private Integer idadeMaxima;
@@ -75,34 +70,36 @@ public class Programa {
 
     @ManyToMany(cascade = CascadeType.ALL)
     private Set<Tematica> tematicas = new HashSet<Tematica>();
-    
+
     @ManyToMany(cascade = CascadeType.ALL)
     private Set<OrgaoExecutor> orgaosExecutores = new HashSet<OrgaoExecutor>();
-    
+
     @Column(columnDefinition = "text")
     private String parceiros;
-    
+
+    @ManyToMany(cascade = CascadeType.ALL, mappedBy = "programaVinculado")
+    private Set<OcorrenciaMunicipal> ocorrencias = new HashSet<OcorrenciaMunicipal>();
+
     @Enumerated(EnumType.STRING)
-	private TipoStatus status;
-	
-	@OneToOne
-	private Usuario usuario;
-	
+    private TipoStatus status;
+
+    @OneToOne
+    private Usuario usuario;
+
     public static List<Programa> findAllProgramasCandidatos() {
         return entityManager().createNativeQuery("SELECT * FROM Programa WHERE status = 'Candidato'", Programa.class).getResultList();
     }
-    
-	public static List<Programa>  findAllProgramasEfetivos() {
-		return entityManager().createNativeQuery("SELECT * FROM Programa WHERE status = 'Efetivo'", Programa.class).getResultList();
-	}
-
-	public static List<Programa>  findAllProgramasRejeitados() {
-		return entityManager().createNativeQuery("SELECT * FROM Programa WHERE status = 'Rejeitado'", Programa.class).getResultList();
-	}
-	
-	public static List<Programa>  findMeusProgramas() {
-		String login = SecurityContextHolder.getContext().getAuthentication().getName();
-		
-		return entityManager().createNativeQuery("SELECT * FROM Programa p, Usuario u WHERE p.usuario = u.id and p.status = 'Candidato' and u.login = '"+login+"'", Programa.class).getResultList();
-	}
+
+    public static List<Programa> findAllProgramasEfetivos() {
+        return entityManager().createNativeQuery("SELECT * FROM Programa WHERE status = 'Efetivo'", Programa.class).getResultList();
+    }
+
+    public static List<Programa> findAllProgramasRejeitados() {
+        return entityManager().createNativeQuery("SELECT * FROM Programa WHERE status = 'Rejeitado'", Programa.class).getResultList();
+    }
+
+    public static List<Programa> findMeusProgramas() {
+        String login = SecurityContextHolder.getContext().getAuthentication().getName();
+        return entityManager().createNativeQuery("SELECT * FROM Programa p, Usuario u WHERE p.usuario = u.id and p.status = 'Candidato' and u.login = '" + login + "'", Programa.class).getResultList();
+    }
 }
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/Programa_Roo_JavaBean.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/Programa_Roo_JavaBean.aj
index 7096686b4813a27d0100ca641b0dcf1a0b6c36c5..fd2104c798cc4151e2a28ee3244c2c8070f9050f 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/Programa_Roo_JavaBean.aj
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/Programa_Roo_JavaBean.aj
@@ -3,6 +3,7 @@
 
 package br.ufpr.c3sl.estacaojuventude;
 
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
 import br.ufpr.c3sl.estacaojuventude.OrgaoExecutor;
 import br.ufpr.c3sl.estacaojuventude.Programa;
 import br.ufpr.c3sl.estacaojuventude.Tematica;
@@ -167,6 +168,14 @@ privileged aspect Programa_Roo_JavaBean {
         this.parceiros = parceiros;
     }
     
+    public Set<OcorrenciaMunicipal> Programa.getOcorrencias() {
+        return this.ocorrencias;
+    }
+    
+    public void Programa.setOcorrencias(Set<OcorrenciaMunicipal> ocorrencias) {
+        this.ocorrencias = ocorrencias;
+    }
+    
     public TipoStatus Programa.getStatus() {
         return this.status;
     }
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean.java
index 09906a935decfc9c09cd002696219808f0cfb3ff..57ad7b87433d2ada9317d9dfe3973fd1f7fa0d2c 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean.java
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean.java
@@ -6,6 +6,9 @@ import org.springframework.format.support.FormattingConversionServiceFactoryBean
 import org.springframework.roo.addon.web.mvc.controller.converter.RooConversionService;
 
 import br.ufpr.c3sl.estacaojuventude.Estado;
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
 import br.ufpr.c3sl.estacaojuventude.OrgaoExecutor;
 import br.ufpr.c3sl.estacaojuventude.Programa;
 import br.ufpr.c3sl.estacaojuventude.Usuario;
@@ -57,4 +60,27 @@ public class ApplicationConversionServiceFactoryBean extends FormattingConversio
         };
     }
 	
+	public Converter<Municipio, String> getMunicipioToStringConverter() {
+        return new org.springframework.core.convert.converter.Converter<br.ufpr.c3sl.estacaojuventude.Municipio, java.lang.String>() {
+            public String convert(Municipio municipio) {
+                return new StringBuilder().append(municipio.getNome()).append(" - ").append(municipio.getUf().getSigla()).toString();
+            }
+        };
+    }
+	
+	public Converter<Localizacao, String> getLocalizacaoToStringConverter() {
+        return new org.springframework.core.convert.converter.Converter<br.ufpr.c3sl.estacaojuventude.Localizacao, java.lang.String>() {
+            public String convert(Localizacao localizacao) {
+                return new StringBuilder().append(localizacao.getOcorrencia().getProgramaVinculado().getNomeDivulgacao()).append(" - ").append(localizacao.getOcorrencia().getMunicipio().getNome()).append(" - ").append(localizacao.getLocal()).toString();
+            }
+        };
+    }
+	
+	public Converter<OcorrenciaMunicipal, String> getOcorrenciaMunicipalToStringConverter() {
+        return new org.springframework.core.convert.converter.Converter<br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal, java.lang.String>() {
+            public String convert(OcorrenciaMunicipal ocorrenciaMunicipal) {
+                return new StringBuilder().append(ocorrenciaMunicipal.getProgramaVinculado().getNomeDivulgacao()).append(" - ").append(ocorrenciaMunicipal.getMunicipio().getNome()).toString();
+            }
+        };
+    }
 }
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj
index 14c4cf8926ad3beae8a79363decaa83440aa8807..db2622bf54f8f631ba744d7ad4d2f4a5ec7b685b 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj
@@ -4,6 +4,9 @@
 package br.ufpr.c3sl.estacaojuventude.web;
 
 import br.ufpr.c3sl.estacaojuventude.Estado;
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
 import br.ufpr.c3sl.estacaojuventude.OrgaoExecutor;
 import br.ufpr.c3sl.estacaojuventude.Programa;
 import br.ufpr.c3sl.estacaojuventude.Tematica;
@@ -33,6 +36,54 @@ privileged aspect ApplicationConversionServiceFactoryBean_Roo_ConversionService
         };
     }
     
+    public Converter<Long, Localizacao> ApplicationConversionServiceFactoryBean.getIdToLocalizacaoConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.Long, br.ufpr.c3sl.estacaojuventude.Localizacao>() {
+            public br.ufpr.c3sl.estacaojuventude.Localizacao convert(java.lang.Long id) {
+                return Localizacao.findLocalizacao(id);
+            }
+        };
+    }
+    
+    public Converter<String, Localizacao> ApplicationConversionServiceFactoryBean.getStringToLocalizacaoConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.String, br.ufpr.c3sl.estacaojuventude.Localizacao>() {
+            public br.ufpr.c3sl.estacaojuventude.Localizacao convert(String id) {
+                return getObject().convert(getObject().convert(id, Long.class), Localizacao.class);
+            }
+        };
+    }
+    
+    public Converter<Long, Municipio> ApplicationConversionServiceFactoryBean.getIdToMunicipioConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.Long, br.ufpr.c3sl.estacaojuventude.Municipio>() {
+            public br.ufpr.c3sl.estacaojuventude.Municipio convert(java.lang.Long id) {
+                return Municipio.findMunicipio(id);
+            }
+        };
+    }
+    
+    public Converter<String, Municipio> ApplicationConversionServiceFactoryBean.getStringToMunicipioConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.String, br.ufpr.c3sl.estacaojuventude.Municipio>() {
+            public br.ufpr.c3sl.estacaojuventude.Municipio convert(String id) {
+                return getObject().convert(getObject().convert(id, Long.class), Municipio.class);
+            }
+        };
+    }
+    
+    public Converter<Long, OcorrenciaMunicipal> ApplicationConversionServiceFactoryBean.getIdToOcorrenciaMunicipalConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.Long, br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal>() {
+            public br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal convert(java.lang.Long id) {
+                return OcorrenciaMunicipal.findOcorrenciaMunicipal(id);
+            }
+        };
+    }
+    
+    public Converter<String, OcorrenciaMunicipal> ApplicationConversionServiceFactoryBean.getStringToOcorrenciaMunicipalConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.String, br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal>() {
+            public br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal convert(String id) {
+                return getObject().convert(getObject().convert(id, Long.class), OcorrenciaMunicipal.class);
+            }
+        };
+    }
+    
     public Converter<Long, OrgaoExecutor> ApplicationConversionServiceFactoryBean.getIdToOrgaoExecutorConverter() {
         return new org.springframework.core.convert.converter.Converter<java.lang.Long, br.ufpr.c3sl.estacaojuventude.OrgaoExecutor>() {
             public br.ufpr.c3sl.estacaojuventude.OrgaoExecutor convert(java.lang.Long id) {
@@ -109,6 +160,15 @@ privileged aspect ApplicationConversionServiceFactoryBean_Roo_ConversionService
         registry.addConverter(getEstadoToStringConverter());
         registry.addConverter(getIdToEstadoConverter());
         registry.addConverter(getStringToEstadoConverter());
+        registry.addConverter(getLocalizacaoToStringConverter());
+        registry.addConverter(getIdToLocalizacaoConverter());
+        registry.addConverter(getStringToLocalizacaoConverter());
+        registry.addConverter(getMunicipioToStringConverter());
+        registry.addConverter(getIdToMunicipioConverter());
+        registry.addConverter(getStringToMunicipioConverter());
+        registry.addConverter(getOcorrenciaMunicipalToStringConverter());
+        registry.addConverter(getIdToOcorrenciaMunicipalConverter());
+        registry.addConverter(getStringToOcorrenciaMunicipalConverter());
         registry.addConverter(getOrgaoExecutorToStringConverter());
         registry.addConverter(getIdToOrgaoExecutorConverter());
         registry.addConverter(getStringToOrgaoExecutorConverter());
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/EstadoController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/EstadoController.java
index f07323c9d7ef2d9fdf95c603648dde4d782e7add..98742dc5542f241780e3b5af9c84af1d7879f5d6 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/EstadoController.java
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/EstadoController.java
@@ -2,7 +2,9 @@ package br.ufpr.c3sl.estacaojuventude.web;
 
 import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import br.ufpr.c3sl.estacaojuventude.Estado;
 
@@ -10,4 +12,18 @@ import br.ufpr.c3sl.estacaojuventude.Estado;
 @Controller
 @RooWebScaffold(path = "estados", formBackingObject = Estado.class)
 public class EstadoController {
+	
+	@RequestMapping(produces = "text/html")
+    public String list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        if (page != null || size != null) {
+            int sizeNo = size == null ? 10 : size.intValue();
+            final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
+            uiModel.addAttribute("estados", Estado.findEstadoEntries(firstResult, sizeNo));
+            float nrOfPages = (float) Estado.countEstadoes() / sizeNo;
+            uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
+        } else {
+            uiModel.addAttribute("estados", Estado.findAllEstadoes());
+        }
+        return "estados/list";
+    }
 }
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/EstadoController_Roo_Controller.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/EstadoController_Roo_Controller.aj
index 5e095db12772312d3b5c126eea9151ddc6e5a464..f418b445cac444891a2829949232b07c4e03c6fc 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/EstadoController_Roo_Controller.aj
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/EstadoController_Roo_Controller.aj
@@ -4,6 +4,7 @@
 package br.ufpr.c3sl.estacaojuventude.web;
 
 import br.ufpr.c3sl.estacaojuventude.Estado;
+import br.ufpr.c3sl.estacaojuventude.Municipio;
 import br.ufpr.c3sl.estacaojuventude.web.EstadoController;
 import java.io.UnsupportedEncodingException;
 import javax.servlet.http.HttpServletRequest;
@@ -43,20 +44,6 @@ privileged aspect EstadoController_Roo_Controller {
         return "estados/show";
     }
     
-    @RequestMapping(produces = "text/html")
-    public String EstadoController.list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
-        if (page != null || size != null) {
-            int sizeNo = size == null ? 10 : size.intValue();
-            final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
-            uiModel.addAttribute("estadoes", Estado.findEstadoEntries(firstResult, sizeNo));
-            float nrOfPages = (float) Estado.countEstadoes() / sizeNo;
-            uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
-        } else {
-            uiModel.addAttribute("estadoes", Estado.findAllEstadoes());
-        }
-        return "estados/list";
-    }
-    
     @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
     public String EstadoController.update(@Valid Estado estado, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
         if (bindingResult.hasErrors()) {
@@ -86,6 +73,7 @@ privileged aspect EstadoController_Roo_Controller {
     
     void EstadoController.populateEditForm(Model uiModel, Estado estado) {
         uiModel.addAttribute("estado", estado);
+        uiModel.addAttribute("municipios", Municipio.findAllMunicipios());
     }
     
     String EstadoController.encodeUrlPathSegment(String pathSegment, HttpServletRequest httpServletRequest) {
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController.java
new file mode 100644
index 0000000000000000000000000000000000000000..26f30866bbbd63356eb1953d5cf267c4cb66c49b
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController.java
@@ -0,0 +1,12 @@
+package br.ufpr.c3sl.estacaojuventude.web;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/localizacoes")
+@Controller
+@RooWebScaffold(path = "localizacoes", formBackingObject = Localizacao.class)
+public class LocalizacaoController {
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController_Roo_Controller.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController_Roo_Controller.aj
new file mode 100644
index 0000000000000000000000000000000000000000..b2e6022cf360e11e39754dafadd610a4caa82a95
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/LocalizacaoController_Roo_Controller.aj
@@ -0,0 +1,104 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude.web;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+import br.ufpr.c3sl.estacaojuventude.web.LocalizacaoController;
+import java.io.UnsupportedEncodingException;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.util.UriUtils;
+import org.springframework.web.util.WebUtils;
+
+privileged aspect LocalizacaoController_Roo_Controller {
+    
+    @RequestMapping(method = RequestMethod.POST, produces = "text/html")
+    public String LocalizacaoController.create(@Valid Localizacao localizacao, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, localizacao);
+            return "localizacoes/create";
+        }
+        uiModel.asMap().clear();
+        localizacao.persist();
+        return "redirect:/localizacoes/" + encodeUrlPathSegment(localizacao.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(params = "form", produces = "text/html")
+    public String LocalizacaoController.createForm(Model uiModel) {
+        populateEditForm(uiModel, new Localizacao());
+        return "localizacoes/create";
+    }
+    
+    @RequestMapping(value = "/{id}", produces = "text/html")
+    public String LocalizacaoController.show(@PathVariable("id") Long id, Model uiModel) {
+        uiModel.addAttribute("localizacao", Localizacao.findLocalizacao(id));
+        uiModel.addAttribute("itemId", id);
+        return "localizacoes/show";
+    }
+    
+    @RequestMapping(produces = "text/html")
+    public String LocalizacaoController.list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        if (page != null || size != null) {
+            int sizeNo = size == null ? 10 : size.intValue();
+            final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
+            uiModel.addAttribute("localizacaos", Localizacao.findLocalizacaoEntries(firstResult, sizeNo));
+            float nrOfPages = (float) Localizacao.countLocalizacaos() / sizeNo;
+            uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
+        } else {
+            uiModel.addAttribute("localizacaos", Localizacao.findAllLocalizacaos());
+        }
+        return "localizacoes/list";
+    }
+    
+    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
+    public String LocalizacaoController.update(@Valid Localizacao localizacao, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, localizacao);
+            return "localizacoes/update";
+        }
+        uiModel.asMap().clear();
+        localizacao.merge();
+        return "redirect:/localizacoes/" + encodeUrlPathSegment(localizacao.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(value = "/{id}", params = "form", produces = "text/html")
+    public String LocalizacaoController.updateForm(@PathVariable("id") Long id, Model uiModel) {
+        populateEditForm(uiModel, Localizacao.findLocalizacao(id));
+        return "localizacoes/update";
+    }
+    
+    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html")
+    public String LocalizacaoController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        Localizacao localizacao = Localizacao.findLocalizacao(id);
+        localizacao.remove();
+        uiModel.asMap().clear();
+        uiModel.addAttribute("page", (page == null) ? "1" : page.toString());
+        uiModel.addAttribute("size", (size == null) ? "10" : size.toString());
+        return "redirect:/localizacoes";
+    }
+    
+    void LocalizacaoController.populateEditForm(Model uiModel, Localizacao localizacao) {
+        uiModel.addAttribute("localizacao", localizacao);
+        uiModel.addAttribute("ocorrenciamunicipals", OcorrenciaMunicipal.findAllOcorrenciaMunicipals());
+    }
+    
+    String LocalizacaoController.encodeUrlPathSegment(String pathSegment, HttpServletRequest httpServletRequest) {
+        String enc = httpServletRequest.getCharacterEncoding();
+        if (enc == null) {
+            enc = WebUtils.DEFAULT_CHARACTER_ENCODING;
+        }
+        try {
+            pathSegment = UriUtils.encodePathSegment(pathSegment, enc);
+        } catch (UnsupportedEncodingException uee) {}
+        return pathSegment;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController.java
new file mode 100644
index 0000000000000000000000000000000000000000..9db929563583e8dee3ca4a650b96b82a1c5bec21
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController.java
@@ -0,0 +1,12 @@
+package br.ufpr.c3sl.estacaojuventude.web;
+
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/municipios")
+@Controller
+@RooWebScaffold(path = "municipios", formBackingObject = Municipio.class)
+public class MunicipioController {
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController_Roo_Controller.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController_Roo_Controller.aj
new file mode 100644
index 0000000000000000000000000000000000000000..ce2d3fc990c0758862048c6d3aae16d00d6825b0
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/MunicipioController_Roo_Controller.aj
@@ -0,0 +1,104 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude.web;
+
+import br.ufpr.c3sl.estacaojuventude.Estado;
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import br.ufpr.c3sl.estacaojuventude.web.MunicipioController;
+import java.io.UnsupportedEncodingException;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.util.UriUtils;
+import org.springframework.web.util.WebUtils;
+
+privileged aspect MunicipioController_Roo_Controller {
+    
+    @RequestMapping(method = RequestMethod.POST, produces = "text/html")
+    public String MunicipioController.create(@Valid Municipio municipio, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, municipio);
+            return "municipios/create";
+        }
+        uiModel.asMap().clear();
+        municipio.persist();
+        return "redirect:/municipios/" + encodeUrlPathSegment(municipio.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(params = "form", produces = "text/html")
+    public String MunicipioController.createForm(Model uiModel) {
+        populateEditForm(uiModel, new Municipio());
+        return "municipios/create";
+    }
+    
+    @RequestMapping(value = "/{id}", produces = "text/html")
+    public String MunicipioController.show(@PathVariable("id") Long id, Model uiModel) {
+        uiModel.addAttribute("municipio", Municipio.findMunicipio(id));
+        uiModel.addAttribute("itemId", id);
+        return "municipios/show";
+    }
+    
+    @RequestMapping(produces = "text/html")
+    public String MunicipioController.list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        if (page != null || size != null) {
+            int sizeNo = size == null ? 10 : size.intValue();
+            final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
+            uiModel.addAttribute("municipios", Municipio.findMunicipioEntries(firstResult, sizeNo));
+            float nrOfPages = (float) Municipio.countMunicipios() / sizeNo;
+            uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
+        } else {
+            uiModel.addAttribute("municipios", Municipio.findAllMunicipios());
+        }
+        return "municipios/list";
+    }
+    
+    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
+    public String MunicipioController.update(@Valid Municipio municipio, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, municipio);
+            return "municipios/update";
+        }
+        uiModel.asMap().clear();
+        municipio.merge();
+        return "redirect:/municipios/" + encodeUrlPathSegment(municipio.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(value = "/{id}", params = "form", produces = "text/html")
+    public String MunicipioController.updateForm(@PathVariable("id") Long id, Model uiModel) {
+        populateEditForm(uiModel, Municipio.findMunicipio(id));
+        return "municipios/update";
+    }
+    
+    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html")
+    public String MunicipioController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        Municipio municipio = Municipio.findMunicipio(id);
+        municipio.remove();
+        uiModel.asMap().clear();
+        uiModel.addAttribute("page", (page == null) ? "1" : page.toString());
+        uiModel.addAttribute("size", (size == null) ? "10" : size.toString());
+        return "redirect:/municipios";
+    }
+    
+    void MunicipioController.populateEditForm(Model uiModel, Municipio municipio) {
+        uiModel.addAttribute("municipio", municipio);
+        uiModel.addAttribute("estadoes", Estado.findAllEstadoes());
+    }
+    
+    String MunicipioController.encodeUrlPathSegment(String pathSegment, HttpServletRequest httpServletRequest) {
+        String enc = httpServletRequest.getCharacterEncoding();
+        if (enc == null) {
+            enc = WebUtils.DEFAULT_CHARACTER_ENCODING;
+        }
+        try {
+            pathSegment = UriUtils.encodePathSegment(pathSegment, enc);
+        } catch (UnsupportedEncodingException uee) {}
+        return pathSegment;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java
new file mode 100644
index 0000000000000000000000000000000000000000..a32d7c80732acdf7cde1933df2368b8e9ed13c08
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java
@@ -0,0 +1,39 @@
+package br.ufpr.c3sl.estacaojuventude.web;
+
+import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import br.ufpr.c3sl.estacaojuventude.Localizacao;
+import br.ufpr.c3sl.estacaojuventude.Municipio;
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+import br.ufpr.c3sl.estacaojuventude.OrgaoExecutor;
+import br.ufpr.c3sl.estacaojuventude.Programa;
+
+@RequestMapping("/ocorrenciamunicipais")
+@Controller
+@RooWebScaffold(path = "ocorrenciamunicipais", formBackingObject = OcorrenciaMunicipal.class)
+public class OcorrenciaMunicipalController {
+	
+	@RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html")
+    public String delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        OcorrenciaMunicipal ocorrenciaMunicipal = OcorrenciaMunicipal.findOcorrenciaMunicipal(id);
+        ocorrenciaMunicipal.remove();
+        uiModel.asMap().clear();
+        //uiModel.addAttribute("page", (page == null) ? "1" : page.toString());
+        //uiModel.addAttribute("size", (size == null) ? "10" : size.toString());
+        return "redirect:/ocorrenciamunicipais";
+    }
+	
+	void populateEditForm(Model uiModel, OcorrenciaMunicipal ocorrenciaMunicipal) {
+        uiModel.addAttribute("ocorrenciaMunicipal", ocorrenciaMunicipal);
+        uiModel.addAttribute("localizacaos", Localizacao.findAllLocalizacaos());
+        uiModel.addAttribute("municipios", Municipio.findAllMunicipios());
+        uiModel.addAttribute("orgaoexecutores", OrgaoExecutor.findAllOrgaoExecutors());
+        uiModel.addAttribute("programas", Programa.findAllProgramasEfetivos());
+    }
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController_Roo_Controller.aj b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController_Roo_Controller.aj
new file mode 100644
index 0000000000000000000000000000000000000000..04c50a3e1cf390b4f71b4a06bf239ccfbc7a4ce4
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController_Roo_Controller.aj
@@ -0,0 +1,88 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.estacaojuventude.web;
+
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
+import br.ufpr.c3sl.estacaojuventude.web.OcorrenciaMunicipalController;
+import java.io.UnsupportedEncodingException;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.util.UriUtils;
+import org.springframework.web.util.WebUtils;
+
+privileged aspect OcorrenciaMunicipalController_Roo_Controller {
+    
+    @RequestMapping(method = RequestMethod.POST, produces = "text/html")
+    public String OcorrenciaMunicipalController.create(@Valid OcorrenciaMunicipal ocorrenciaMunicipal, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, ocorrenciaMunicipal);
+            return "ocorrenciamunicipais/create";
+        }
+        uiModel.asMap().clear();
+        ocorrenciaMunicipal.persist();
+        return "redirect:/ocorrenciamunicipais/" + encodeUrlPathSegment(ocorrenciaMunicipal.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(params = "form", produces = "text/html")
+    public String OcorrenciaMunicipalController.createForm(Model uiModel) {
+        populateEditForm(uiModel, new OcorrenciaMunicipal());
+        return "ocorrenciamunicipais/create";
+    }
+    
+    @RequestMapping(value = "/{id}", produces = "text/html")
+    public String OcorrenciaMunicipalController.show(@PathVariable("id") Long id, Model uiModel) {
+        uiModel.addAttribute("ocorrenciamunicipal", OcorrenciaMunicipal.findOcorrenciaMunicipal(id));
+        uiModel.addAttribute("itemId", id);
+        return "ocorrenciamunicipais/show";
+    }
+    
+    @RequestMapping(produces = "text/html")
+    public String OcorrenciaMunicipalController.list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        if (page != null || size != null) {
+            int sizeNo = size == null ? 10 : size.intValue();
+            final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
+            uiModel.addAttribute("ocorrenciamunicipals", OcorrenciaMunicipal.findOcorrenciaMunicipalEntries(firstResult, sizeNo));
+            float nrOfPages = (float) OcorrenciaMunicipal.countOcorrenciaMunicipals() / sizeNo;
+            uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
+        } else {
+            uiModel.addAttribute("ocorrenciamunicipals", OcorrenciaMunicipal.findAllOcorrenciaMunicipals());
+        }
+        return "ocorrenciamunicipais/list";
+    }
+    
+    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
+    public String OcorrenciaMunicipalController.update(@Valid OcorrenciaMunicipal ocorrenciaMunicipal, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, ocorrenciaMunicipal);
+            return "ocorrenciamunicipais/update";
+        }
+        uiModel.asMap().clear();
+        ocorrenciaMunicipal.merge();
+        return "redirect:/ocorrenciamunicipais/" + encodeUrlPathSegment(ocorrenciaMunicipal.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(value = "/{id}", params = "form", produces = "text/html")
+    public String OcorrenciaMunicipalController.updateForm(@PathVariable("id") Long id, Model uiModel) {
+        populateEditForm(uiModel, OcorrenciaMunicipal.findOcorrenciaMunicipal(id));
+        return "ocorrenciamunicipais/update";
+    }
+    
+    String OcorrenciaMunicipalController.encodeUrlPathSegment(String pathSegment, HttpServletRequest httpServletRequest) {
+        String enc = httpServletRequest.getCharacterEncoding();
+        if (enc == null) {
+            enc = WebUtils.DEFAULT_CHARACTER_ENCODING;
+        }
+        try {
+            pathSegment = UriUtils.encodePathSegment(pathSegment, enc);
+        } catch (UnsupportedEncodingException uee) {}
+        return pathSegment;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ProgramaController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ProgramaController.java
index 9bec2298851d8221f2025c93e764873b43823520..3f96d088581717ceac0cc3a13e974edc1e8ce075 100644
--- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ProgramaController.java
+++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ProgramaController.java
@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import br.ufpr.c3sl.estacaojuventude.Estado;
+import br.ufpr.c3sl.estacaojuventude.OcorrenciaMunicipal;
 import br.ufpr.c3sl.estacaojuventude.OrgaoExecutor;
 import br.ufpr.c3sl.estacaojuventude.Programa;
 import br.ufpr.c3sl.estacaojuventude.Tematica;
@@ -200,6 +201,7 @@ public class ProgramaController {
         uiModel.addAttribute("tipostatuses", Arrays.asList(TipoStatus.values()));
         uiModel.addAttribute("tipotemporalidades", Arrays.asList(TipoTemporalidade.values()));
         uiModel.addAttribute("nivelprogramas", Arrays.asList(NivelPrograma.values()));
+        uiModel.addAttribute("ocorrenciamunicipais", OcorrenciaMunicipal.findAllOcorrenciaMunicipals());
     }
     
 }
diff --git a/src/main/resources/META-INF/spring/applicationContext-security.xml b/src/main/resources/META-INF/spring/applicationContext-security.xml
index 6e810cbfe7a43be7b5a9fc6e106ee226f1e626e6..35ad8b88779aa2be675720e370d0fcbb5fc712f8 100644
--- a/src/main/resources/META-INF/spring/applicationContext-security.xml
+++ b/src/main/resources/META-INF/spring/applicationContext-security.xml
@@ -26,6 +26,9 @@
         <intercept-url pattern="/estados**" access="hasRole('Administrador')"/>
         <intercept-url pattern="/estados**" access="hasRole('Administrador')" method="POST" />
         
+        <intercept-url pattern="/municipios**" access="hasRole('Administrador')" />
+        <intercept-url pattern="/municipios**" access="hasRole('Administrador')" method="POST" />
+        
 <!--         <intercept-url pattern="/programas/listEfetivos" access="permitAll" /> -->
         
         <intercept-url pattern="/**" access="isAuthenticated()" />
diff --git a/src/main/webapp/WEB-INF/i18n/application.properties b/src/main/webapp/WEB-INF/i18n/application.properties
index 4271578e3f218b181294caf982b184103375787e..82fbee085f4ae87c7148ddc535a9b4bbe85d0277 100644
--- a/src/main/webapp/WEB-INF/i18n/application.properties
+++ b/src/main/webapp/WEB-INF/i18n/application.properties
@@ -2,6 +2,40 @@
 #Tue Sep 03 11:11:06 BRT 2013
 application_name=Banco de Dados Estação Juventude
 
+label_br_ufpr_c3sl_estacaojuventude_localizacao=Localização
+label_br_ufpr_c3sl_estacaojuventude_localizacao_email=Email
+label_br_ufpr_c3sl_estacaojuventude_localizacao_endereco=Endereço
+label_br_ufpr_c3sl_estacaojuventude_localizacao_horariofuncionamento=Horário de Funcionamento
+label_br_ufpr_c3sl_estacaojuventude_localizacao_id=Id
+label_br_ufpr_c3sl_estacaojuventude_localizacao_local=Local
+label_br_ufpr_c3sl_estacaojuventude_localizacao_nomereferencia=Nome de Referência
+label_br_ufpr_c3sl_estacaojuventude_localizacao_ocorrencia=Ocorrência
+label_br_ufpr_c3sl_estacaojuventude_localizacao_plural=Localizações
+label_br_ufpr_c3sl_estacaojuventude_localizacao_quantidadevagas=Quantidade de Vagas
+label_br_ufpr_c3sl_estacaojuventude_localizacao_telefone=Telefone
+label_br_ufpr_c3sl_estacaojuventude_localizacao_version=Versão
+
+label_br_ufpr_c3sl_estacaojuventude_municipio=Município
+label_br_ufpr_c3sl_estacaojuventude_municipio_id=Id
+label_br_ufpr_c3sl_estacaojuventude_municipio_nome=Nome
+label_br_ufpr_c3sl_estacaojuventude_municipio_plural=Municípios
+label_br_ufpr_c3sl_estacaojuventude_municipio_uf=Uf
+label_br_ufpr_c3sl_estacaojuventude_municipio_version=Versão
+
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal=Ocorrência Municipal
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_beneficioslocais=Benefícios Locais
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_comoacessar=Como Acessar
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_inicioinscricoes=Início das Inscrições
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_fiminscricoes=Fim das Inscrições
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_id=Id
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_localizacoes=Localizações
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_municipio=Município
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_programavinculado=Programa Vinculado
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_orgaosexecutores=Orgãos Executores
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_plural=Ocorrências Municipais
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_quantidadevagas=Quantidade de Vagas
+label_br_ufpr_c3sl_estacaojuventude_ocorrenciamunicipal_version=Versão
+
 label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor=Orgão Executor
 label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_contato=Contato
 label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_endereco=Endereço
@@ -14,17 +48,18 @@ label_br_ufpr_c3sl_estacaojuventude_orgaoexecutor_version=Versão
 label_br_ufpr_c3sl_estacaojuventude_programa=Programa
 label_br_ufpr_c3sl_estacaojuventude_programa_beneficios=Benefícios
 label_br_ufpr_c3sl_estacaojuventude_programa_criteriosacesso=Critérios Acesso
-label_br_ufpr_c3sl_estacaojuventude_programa_datainicio=Data Início
+label_br_ufpr_c3sl_estacaojuventude_programa_datainicio=Data de Início
 label_br_ufpr_c3sl_estacaojuventude_programa_descricao=Descrição
 label_br_ufpr_c3sl_estacaojuventude_programa_duracao=Duração
 label_br_ufpr_c3sl_estacaojuventude_programa_id=Id
 label_br_ufpr_c3sl_estacaojuventude_programa_idademaxima=Idade Máxima
 label_br_ufpr_c3sl_estacaojuventude_programa_idademinima=Idade Minima
-label_br_ufpr_c3sl_estacaojuventude_programa_leicriacao=Lei Criação
+label_br_ufpr_c3sl_estacaojuventude_programa_leicriacao=Lei de Criação
 label_br_ufpr_c3sl_estacaojuventude_programa_nivel=Nível
-label_br_ufpr_c3sl_estacaojuventude_programa_nomedivulgacao=Nome Divulgação
+label_br_ufpr_c3sl_estacaojuventude_programa_nomedivulgacao=Nome de Divulgação
 label_br_ufpr_c3sl_estacaojuventude_programa_nomeoficial=Nome Oficial
 label_br_ufpr_c3sl_estacaojuventude_programa_objetivos=Objetivos
+label_br_ufpr_c3sl_estacaojuventude_programa_ocorrencias=Ocorrências
 label_br_ufpr_c3sl_estacaojuventude_programa_orgaosexecutores=Orgãos Executores
 label_br_ufpr_c3sl_estacaojuventude_programa_parceiros=Parceiros
 label_br_ufpr_c3sl_estacaojuventude_programa_plural=Programas
@@ -45,6 +80,7 @@ label_br_ufpr_c3sl_estacaojuventude_tematica_version=Versão
 
 label_br_ufpr_c3sl_estacaojuventude_estado=Estado
 label_br_ufpr_c3sl_estacaojuventude_estado_id=Id
+label_br_ufpr_c3sl_estacaojuventude_estado_municipios=Municípios
 label_br_ufpr_c3sl_estacaojuventude_estado_nome=Nome
 label_br_ufpr_c3sl_estacaojuventude_estado_plural=Estados
 label_br_ufpr_c3sl_estacaojuventude_estado_sigla=Sigla
@@ -61,17 +97,41 @@ label_br_ufpr_c3sl_estacaojuventude_usuario_oldpass=Senha Atual
 label_br_ufpr_c3sl_estacaojuventude_usuario_newpass=Nova Senha
 
 menu_category_usuario_label=Usuário
+
 menu_category_estado_label=Estado
+
+menu_category_localizacao_label=Localização
+
+menu_category_municipio_label=Município
+
+menu_category_ocorrenciamunicipal_label=Ocorrência Municipal
+
 menu_category_orgaoexecutor_label=Orgão Executor
+
 menu_category_programa_label=Programa
+
 menu_category_tematica_label=Temática
+
 menu_item_estado_list_label=Estados
 menu_item_estado_new_label=Estado
+
+menu_item_localizacao_list_label=Localizações
+menu_item_localizacao_new_label=Localização
+
+menu_item_municipio_list_label=Municípios
+menu_item_municipio_new_label=Município
+
+menu_item_ocorrenciamunicipal_list_label=Ocorrências Municipais
+menu_item_ocorrenciamunicipal_new_label=Ocorrência Municipal
+
 menu_item_usuario_list_label=Usuários
 menu_item_usuario_new_label=Usuário
+
 menu_item_orgaoexecutor_list_label=Orgãos Executores
 menu_item_orgaoexecutor_new_label=Orgão Executor
+
 menu_item_programa_list_label=Programas
 menu_item_programa_new_label=Programa
+
 menu_item_tematica_list_label=Temáticas
 menu_item_tematica_new_label=Temática
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/i18n/messages.properties b/src/main/webapp/WEB-INF/i18n/messages.properties
index 8c0e8ebf627d88ab9b343a73704c1b2bde447d56..f8eb3e8d0006fd173be9cee9a97087baf0503554 100644
--- a/src/main/webapp/WEB-INF/i18n/messages.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages.properties
@@ -28,7 +28,7 @@ entity_update=Atualizar {0}
 entity_delete=Deletar {0}
 entity_delete_confirm=Você está certo que deseja excluir esse item?
 entity_find=Encontrado por {0}
-entity_not_found={0} não foi encontrado.
+entity_not_found=Não há cadastro de {0}.
 entity_not_found_single=Nenhum {0} encontrado com esse identificador.
 entity_dependency_required=As seguintes dependencias precisam ser criadas:
 entity_reference_not_managed=Esse relacionamento é gerenciado por {0}.
diff --git a/src/main/webapp/WEB-INF/views/estados/create.jspx b/src/main/webapp/WEB-INF/views/estados/create.jspx
index 7434ec9461fec65dfebb16d9e751e2a01a87fc35..f927737ddd15af7477768fcbed751164a0135f5a 100644
--- a/src/main/webapp/WEB-INF/views/estados/create.jspx
+++ b/src/main/webapp/WEB-INF/views/estados/create.jspx
@@ -2,10 +2,10 @@
 <div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
     <jsp:directive.page contentType="text/html;charset=UTF-8"/>
     <jsp:output omit-xml-declaration="yes"/>
-    <form:create id="fc_br_ufpr_c3sl_participatorio_Estado" modelAttribute="estado" path="/estados" render="${empty dependencies}" z="user-managed"/>
     <form:create id="fc_br_ufpr_c3sl_estacaojuventude_Estado" modelAttribute="estado" path="/estados" render="${empty dependencies}" z="qskhIUlkZvcNoqdyPOHXGL9te8M=">
         <field:input field="nome" id="c_br_ufpr_c3sl_estacaojuventude_Estado_nome" z="kIoq6F1PK1AezI2ozamOd4cblT4="/>
         <field:input field="sigla" id="c_br_ufpr_c3sl_estacaojuventude_Estado_sigla" z="QKgJsPxT2TSjqowUe/LWpgmta5k="/>
+        <field:select field="municipios" id="c_br_ufpr_c3sl_estacaojuventude_Estado_municipios" itemValue="id" items="${municipios}" multiple="true" path="/municipios" z="qSQbotIYGpKXYM4bQL5qBDG34l4="/>
     </form:create>
     <form:dependency dependencies="${dependencies}" id="d_br_ufpr_c3sl_estacaojuventude_Estado" render="${not empty dependencies}" z="U6rn6PODKImfZaUzsq6cbz2oCiw="/>
 </div>
diff --git a/src/main/webapp/WEB-INF/views/estados/list.jspx b/src/main/webapp/WEB-INF/views/estados/list.jspx
index e10cc7917407ac1c2f9223dc31947fb77a89f682..e091bfe0b78ec9f2630e1d3469727a00cade672e 100644
--- a/src/main/webapp/WEB-INF/views/estados/list.jspx
+++ b/src/main/webapp/WEB-INF/views/estados/list.jspx
@@ -2,13 +2,11 @@
 <div xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
     <jsp:directive.page contentType="text/html;charset=UTF-8"/>
     <jsp:output omit-xml-declaration="yes"/>
-    <page:list id="pl_br_ufpr_c3sl_participatorio_Estado" items="${estados}" z="user-managed">
-        <table:table data="${estados}" id="l_br_ufpr_c3sl_participatorio_Estado" path="/estados" z="user-managed"/>
-    </page:list>
-    <page:list id="pl_br_ufpr_c3sl_estacaojuventude_Estado" items="${estadoes}" z="xcUbU6bJ8sIlUQGtxYnoAdKwqC4=">
-        <table:table data="${estadoes}" id="l_br_ufpr_c3sl_estacaojuventude_Estado" path="/estados" z="+wgq68BMMRlY0nm0iqNiV8CLsF0=">
+    <page:list id="pl_br_ufpr_c3sl_estacaojuventude_Estado" items="${estados}" z="user-managed">
+        <table:table data="${estados}" id="l_br_ufpr_c3sl_estacaojuventude_Estado" path="/estados" z="user-managed">
             <table:column id="c_br_ufpr_c3sl_estacaojuventude_Estado_nome" property="nome" z="BF4GN2ukJDz2YCtd6ZSp3UQkRhU="/>
             <table:column id="c_br_ufpr_c3sl_estacaojuventude_Estado_sigla" property="sigla" z="mARXk7E1bxo0/aXfNpzrOtgR+tw="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Estado_municipios" property="municipios" z="KRlbMNw0wtox9PxTviofmu23HsY="/>
         </table:table>
     </page:list>
 </div>
diff --git a/src/main/webapp/WEB-INF/views/estados/show.jspx b/src/main/webapp/WEB-INF/views/estados/show.jspx
index ac2e689d7500507e8d85d1c27a8ce9dbac225a45..181e6a55ae9fc6c4c684ef213ba98c7713052a1d 100644
--- a/src/main/webapp/WEB-INF/views/estados/show.jspx
+++ b/src/main/webapp/WEB-INF/views/estados/show.jspx
@@ -2,9 +2,9 @@
 <div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" version="2.0">
     <jsp:directive.page contentType="text/html;charset=UTF-8"/>
     <jsp:output omit-xml-declaration="yes"/>
-    <page:show id="ps_br_ufpr_c3sl_participatorio_Estado" object="${estado}" path="/estados" z="user-managed"/>
     <page:show id="ps_br_ufpr_c3sl_estacaojuventude_Estado" object="${estado}" path="/estados" z="wvhCPN23coJfOj9LeV8fgaYqTA4=">
         <field:display field="nome" id="s_br_ufpr_c3sl_estacaojuventude_Estado_nome" object="${estado}" z="iuy0dZ8CjfmDdHRiJQ+hFQ7PSbc="/>
         <field:display field="sigla" id="s_br_ufpr_c3sl_estacaojuventude_Estado_sigla" object="${estado}" z="Ws/OpzA+/IL7I4enrnvYwLOcfvc="/>
+        <field:display field="municipios" id="s_br_ufpr_c3sl_estacaojuventude_Estado_municipios" object="${estado}" z="bCaa7btoKydzVN8C/YaLoNT8aeU="/>
     </page:show>
 </div>
diff --git a/src/main/webapp/WEB-INF/views/estados/update.jspx b/src/main/webapp/WEB-INF/views/estados/update.jspx
index 1b9d2ea18b99a2d1229128a48a2814e610433324..c53cc3483515e350ef5e33d9db4fd1fc28860263 100644
--- a/src/main/webapp/WEB-INF/views/estados/update.jspx
+++ b/src/main/webapp/WEB-INF/views/estados/update.jspx
@@ -2,9 +2,9 @@
 <div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
     <jsp:directive.page contentType="text/html;charset=UTF-8"/>
     <jsp:output omit-xml-declaration="yes"/>
-    <form:update id="fu_br_ufpr_c3sl_participatorio_Estado" modelAttribute="estado" path="/estados" versionField="Version" z="user-managed"/>
     <form:update id="fu_br_ufpr_c3sl_estacaojuventude_Estado" modelAttribute="estado" path="/estados" versionField="Version" z="t/GOLXjExwS95pvwUEwB6WsDcyk=">
         <field:input field="nome" id="c_br_ufpr_c3sl_estacaojuventude_Estado_nome" z="kIoq6F1PK1AezI2ozamOd4cblT4="/>
         <field:input field="sigla" id="c_br_ufpr_c3sl_estacaojuventude_Estado_sigla" z="QKgJsPxT2TSjqowUe/LWpgmta5k="/>
+        <field:select field="municipios" id="c_br_ufpr_c3sl_estacaojuventude_Estado_municipios" itemValue="id" items="${municipios}" multiple="true" path="/municipios" z="qSQbotIYGpKXYM4bQL5qBDG34l4="/>
     </form:update>
 </div>
diff --git a/src/main/webapp/WEB-INF/views/localizacoes/create.jspx b/src/main/webapp/WEB-INF/views/localizacoes/create.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..62c9e83cafd7b43f1a51fad2eef6ee01cc42aa4d
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/localizacoes/create.jspx
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:create id="fc_br_ufpr_c3sl_estacaojuventude_Localizacao" modelAttribute="localizacao" path="/localizacoes" render="${empty dependencies}" z="roB49ZfPLXumP8eGL4QtNZnO5mw=">
+        <field:select field="ocorrencia" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_ocorrencia" itemValue="id" items="${ocorrenciamunicipals}" path="/ocorrenciamunicipais" z="x3nXHdBxIzZwt7vPWcNsVQA+2zM="/>
+        <field:input field="local" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_local" z="F+5PMRrsFY8daKJAKHiD++Q/zM0="/>
+        <field:input field="endereco" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_endereco" z="GxkuN7uw8aGj5L19cLd6a2iaWJQ="/>
+        <field:input field="horarioFuncionamento" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_horarioFuncionamento" z="7kNkZ2jgnZCzlVNzjlDsAc+6fFI="/>
+        <field:input field="nomeReferencia" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_nomeReferencia" z="Xa47YY1HN/qBwALtrICTG729uCY="/>
+        <field:input field="telefone" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_telefone" z="ilHU4xzXIRkjlxIl1dQI1DEoICM="/>
+        <field:input field="email" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_email" validationMessageCode="field_invalid_email" z="k189k964O3HRRnp3TNb0GDfmZts="/>
+        <field:input field="quantidadeVagas" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_quantidadeVagas" validationMessageCode="field_invalid_integer" z="UmLVOAQqGSoB5tMvB5qExH6t+2U="/>
+    </form:create>
+    <form:dependency dependencies="${dependencies}" id="d_br_ufpr_c3sl_estacaojuventude_Localizacao" render="${not empty dependencies}" z="amxA8+e0EPwKgmIH7qv1LRMRRzA="/>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/localizacoes/list.jspx b/src/main/webapp/WEB-INF/views/localizacoes/list.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..71ef1ce6bf9bbf2f11cfe72e37ff1863d1111258
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/localizacoes/list.jspx
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:list id="pl_br_ufpr_c3sl_estacaojuventude_Localizacao" items="${localizacaos}" z="e3STKf8oW/0oqDr/KihOxpAlGBY=">
+        <table:table data="${localizacaos}" id="l_br_ufpr_c3sl_estacaojuventude_Localizacao" path="/localizacoes" z="LCLLP2BD/iSyYc+oJVBSMRvXM+Q=">
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_ocorrencia" property="ocorrencia" z="Zh52x+nH2S0PROzIt5iOOf1mGt0="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_local" property="local" z="xSJytVXDQ3YxHNNm+4W+rn8r5o4="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_endereco" property="endereco" z="yrJ1tAlCgO1+zcbuVBSF4tMH7jg="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_horarioFuncionamento" property="horarioFuncionamento" z="GPr41iVapzEF8dbrfiVVgRh0lNk="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_nomeReferencia" property="nomeReferencia" z="nOuCOY3uytJfD7CZJjtMHgmyu9A="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_quantidadeVagas" property="quantidadeVagas" z="t3caoPpd7tdfr3Aaq9iW/ghJbzU="/>
+        </table:table>
+    </page:list>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/localizacoes/show.jspx b/src/main/webapp/WEB-INF/views/localizacoes/show.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..7f2c72dcd1c55b7b5f7c813a76b737c441d8603d
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/localizacoes/show.jspx
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:show id="ps_br_ufpr_c3sl_estacaojuventude_Localizacao" object="${localizacao}" path="/localizacoes" z="SmCY/3Js4YkCcgz4z9ilwbAYh6E=">
+        <field:display field="ocorrencia" id="s_br_ufpr_c3sl_estacaojuventude_Localizacao_ocorrencia" object="${localizacao}" z="A74yY8LUiz3tcppeNeInm/r2cwc="/>
+        <field:display field="local" id="s_br_ufpr_c3sl_estacaojuventude_Localizacao_local" object="${localizacao}" z="smMRCWWU8v/3hAj79+Y06yscmlg="/>
+        <field:display field="endereco" id="s_br_ufpr_c3sl_estacaojuventude_Localizacao_endereco" object="${localizacao}" z="ZwpJFP3GctblqyMERjeZ76xz0+c="/>
+        <field:display field="horarioFuncionamento" id="s_br_ufpr_c3sl_estacaojuventude_Localizacao_horarioFuncionamento" object="${localizacao}" z="N/jgTmi2kirZpqRksIOqK3vwmps="/>
+        <field:display field="nomeReferencia" id="s_br_ufpr_c3sl_estacaojuventude_Localizacao_nomeReferencia" object="${localizacao}" z="GAoLQan1ZL0GDFgbdkgB+1QvU8g="/>
+        <field:display field="telefone" id="s_br_ufpr_c3sl_estacaojuventude_Localizacao_telefone" object="${localizacao}" z="chwqFuPX2dV5GMGUturi9QQHvnQ="/>
+        <field:display field="email" id="s_br_ufpr_c3sl_estacaojuventude_Localizacao_email" object="${localizacao}" z="lvSBNoJlQbfOTbpXxihX35KNEFg="/>
+        <field:display field="quantidadeVagas" id="s_br_ufpr_c3sl_estacaojuventude_Localizacao_quantidadeVagas" object="${localizacao}" z="VF4wruIAdFgRv9+FS3bK6pxuiew="/>
+    </page:show>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/localizacoes/update.jspx b/src/main/webapp/WEB-INF/views/localizacoes/update.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..8e1202d08cc6d3e4bca7e1fa1650fc1e8cbefc76
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/localizacoes/update.jspx
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:update id="fu_br_ufpr_c3sl_estacaojuventude_Localizacao" modelAttribute="localizacao" path="/localizacoes" versionField="Version" z="bZcSNtmk3o0e8coiCJIfWKXfAvE=">
+        <field:select field="ocorrencia" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_ocorrencia" itemValue="id" items="${ocorrenciamunicipals}" path="/ocorrenciamunicipais" z="x3nXHdBxIzZwt7vPWcNsVQA+2zM="/>
+        <field:input field="local" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_local" z="F+5PMRrsFY8daKJAKHiD++Q/zM0="/>
+        <field:input field="endereco" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_endereco" z="GxkuN7uw8aGj5L19cLd6a2iaWJQ="/>
+        <field:input field="horarioFuncionamento" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_horarioFuncionamento" z="7kNkZ2jgnZCzlVNzjlDsAc+6fFI="/>
+        <field:input field="nomeReferencia" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_nomeReferencia" z="Xa47YY1HN/qBwALtrICTG729uCY="/>
+        <field:input field="telefone" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_telefone" z="ilHU4xzXIRkjlxIl1dQI1DEoICM="/>
+        <field:input field="email" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_email" validationMessageCode="field_invalid_email" z="k189k964O3HRRnp3TNb0GDfmZts="/>
+        <field:input field="quantidadeVagas" id="c_br_ufpr_c3sl_estacaojuventude_Localizacao_quantidadeVagas" validationMessageCode="field_invalid_integer" z="UmLVOAQqGSoB5tMvB5qExH6t+2U="/>
+    </form:update>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/localizacoes/views.xml b/src/main/webapp/WEB-INF/views/localizacoes/views.xml
new file mode 100644
index 0000000000000000000000000000000000000000..05f271f34160692a54280cf10203a82efc38d8b6
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/localizacoes/views.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
+<tiles-definitions>
+    <definition extends="default" name="localizacoes/list">
+        <put-attribute name="body" value="/WEB-INF/views/localizacoes/list.jspx"/>
+    </definition>
+<definition extends="default" name="localizacoes/show">
+        <put-attribute name="body" value="/WEB-INF/views/localizacoes/show.jspx"/>
+    </definition>
+<definition extends="default" name="localizacoes/create">
+        <put-attribute name="body" value="/WEB-INF/views/localizacoes/create.jspx"/>
+    </definition>
+<definition extends="default" name="localizacoes/update">
+        <put-attribute name="body" value="/WEB-INF/views/localizacoes/update.jspx"/>
+    </definition>
+</tiles-definitions>
diff --git a/src/main/webapp/WEB-INF/views/menu.jspx b/src/main/webapp/WEB-INF/views/menu.jspx
index f2d9d2c906999afee380e16fafa5cebda9fcbe9b..89368d729aec77e9273483f2bec17466c9e4a130 100644
--- a/src/main/webapp/WEB-INF/views/menu.jspx
+++ b/src/main/webapp/WEB-INF/views/menu.jspx
@@ -10,6 +10,14 @@
             <menu:item id="i_programa_list" messageCode="global_menu_list_efetivo" url="/programas/listEfetivos" z="user-managed"/>
             <menu:item id="i_programa_list" messageCode="global_menu_list_rejeitado" url="/programas/listRejeitados" z="user-managed"/>
         </menu:category>
+        <menu:category id="c_ocorrenciamunicipal" z="NVk8x1ulTq/1N0/zyXMION5KAQA=">
+            <menu:item id="i_ocorrenciamunicipal_new" messageCode="global_menu_new" url="/ocorrenciamunicipais?form" z="user-managed"/>
+            <menu:item id="i_ocorrenciamunicipal_list" messageCode="global_menu_list" url="/ocorrenciamunicipais" z="user-managed"/>
+            <menu:category id="c_localizacao" z="nAUYRfY6H8ONqQJcdr1C2NWnvsw=">
+                <menu:item id="i_localizacao_new" messageCode="global_menu_new" url="/localizacoes?form" z="user-managed"/>
+                <menu:item id="i_localizacao_list" messageCode="global_menu_list" url="/localizacoes" z="user-managed"/>
+            </menu:category>
+        </menu:category>
         <sec:authorize ifAnyGranted="Administrador">
             <menu:category id="c_orgaoexecutor" z="fYXJnurCt66tAzE+lIIUnRgnRV8=">
                 <menu:item id="i_orgaoexecutor_new" messageCode="global_menu_new" url="/orgaoexecutores?form" z="user-managed"/>
@@ -23,10 +31,14 @@
                 <menu:item id="i_usuario_new" messageCode="global_menu_new" url="/usuarios?form" z="RG1gCsiZQjg1HLDzXbHKht6yDkw="/>
                 <menu:item id="i_usuario_list" messageCode="global_menu_list" url="/usuarios" z="user-managed"/>
             </menu:category>
-            <menu:category id="c_estado" render="false" z="user-managed">
+            <menu:category id="c_estado" z="user-managed">
                 <menu:item id="i_estado_new" messageCode="global_menu_new" url="/estados?form" z="user-managed"/>
                 <menu:item id="i_estado_list" messageCode="global_menu_list" url="/estados" z="user-managed"/>
             </menu:category>
+            <menu:category id="c_municipio" z="G1i1l+0Jj7CheJD0pEpQ0TlwDk8=">
+                <menu:item id="i_municipio_new" messageCode="global_menu_new" url="/municipios?form" z="GzuxH9zeNaf+dpdpvNIv/Y7h/KU="/>
+                <menu:item id="i_municipio_list" messageCode="global_menu_list" url="/municipios" z="user-managed"/>
+            </menu:category>
         </sec:authorize>
     </menu:menu>
 </div>
diff --git a/src/main/webapp/WEB-INF/views/municipios/create.jspx b/src/main/webapp/WEB-INF/views/municipios/create.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..3ff5ac2ebbd308b02ffe062db4203d9b3272a015
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/municipios/create.jspx
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:create id="fc_br_ufpr_c3sl_estacaojuventude_Municipio" modelAttribute="municipio" path="/municipios" render="${empty dependencies}" z="38ISssqudMTSD9vTMbyC3gTOksQ=">
+        <field:input field="nome" id="c_br_ufpr_c3sl_estacaojuventude_Municipio_nome" z="9CD68eDTj0MN11p89Mok7Gxph7s="/>
+        <field:select field="uf" id="c_br_ufpr_c3sl_estacaojuventude_Municipio_uf" itemValue="id" items="${estadoes}" path="/estados" z="wqt+9tlb6etcws03aPTvjNKd23Y="/>
+    </form:create>
+    <form:dependency dependencies="${dependencies}" id="d_br_ufpr_c3sl_estacaojuventude_Municipio" render="${not empty dependencies}" z="mAGartg0k3x1a19/nsEdqxdvEgE="/>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/municipios/list.jspx b/src/main/webapp/WEB-INF/views/municipios/list.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..82f7a4e14146a73f30a90bb65beb6638cbd48cd1
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/municipios/list.jspx
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:list id="pl_br_ufpr_c3sl_estacaojuventude_Municipio" items="${municipios}" z="2wVFBv6ce2XQIjmyowYmQqD1vzk=">
+        <table:table data="${municipios}" id="l_br_ufpr_c3sl_estacaojuventude_Municipio" path="/municipios" z="rhnEGLOhLdBOJ4EOinM66orIb30=">
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Municipio_nome" property="nome" z="D1DwqXeK4loAV5KxmlUPbn3sr90="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_Municipio_uf" property="uf" z="DOWcMP8UAU35st+Rx0Ufg71zNxo="/>
+        </table:table>
+    </page:list>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/municipios/show.jspx b/src/main/webapp/WEB-INF/views/municipios/show.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..2a974497b8a0ad5457b6548d537d225fb4658546
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/municipios/show.jspx
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:show id="ps_br_ufpr_c3sl_estacaojuventude_Municipio" object="${municipio}" path="/municipios" z="KPZi2bJxe5SQ0Z0PDtaBwu1pap8=">
+        <field:display field="nome" id="s_br_ufpr_c3sl_estacaojuventude_Municipio_nome" object="${municipio}" z="8BrOemQtrp6pmPvRZ+2ywnOA6aY="/>
+        <field:display field="uf" id="s_br_ufpr_c3sl_estacaojuventude_Municipio_uf" object="${municipio}" z="9e1IKhSgz/uosa63WbI/C2rPKD0="/>
+    </page:show>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/municipios/update.jspx b/src/main/webapp/WEB-INF/views/municipios/update.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..71a8c898a3df5d97fb22095cb776e86e0b34676c
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/municipios/update.jspx
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:update id="fu_br_ufpr_c3sl_estacaojuventude_Municipio" modelAttribute="municipio" path="/municipios" versionField="Version" z="YvEHRCvNeN/FYWFrZdXkE+hKbPo=">
+        <field:input field="nome" id="c_br_ufpr_c3sl_estacaojuventude_Municipio_nome" z="9CD68eDTj0MN11p89Mok7Gxph7s="/>
+        <field:select field="uf" id="c_br_ufpr_c3sl_estacaojuventude_Municipio_uf" itemValue="id" items="${estadoes}" path="/estados" z="wqt+9tlb6etcws03aPTvjNKd23Y="/>
+    </form:update>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/municipios/views.xml b/src/main/webapp/WEB-INF/views/municipios/views.xml
new file mode 100644
index 0000000000000000000000000000000000000000..18109b6078f62730d091213fd2a8224931e2cbfb
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/municipios/views.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
+<tiles-definitions>
+    <definition extends="default" name="municipios/list">
+        <put-attribute name="body" value="/WEB-INF/views/municipios/list.jspx"/>
+    </definition>
+<definition extends="default" name="municipios/show">
+        <put-attribute name="body" value="/WEB-INF/views/municipios/show.jspx"/>
+    </definition>
+<definition extends="default" name="municipios/create">
+        <put-attribute name="body" value="/WEB-INF/views/municipios/create.jspx"/>
+    </definition>
+<definition extends="default" name="municipios/update">
+        <put-attribute name="body" value="/WEB-INF/views/municipios/update.jspx"/>
+    </definition>
+</tiles-definitions>
diff --git a/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/create.jspx b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/create.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..82aef7b5c026a685da9266281e0aed579f2068f6
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/create.jspx
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:create id="fc_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal" modelAttribute="ocorrenciaMunicipal" path="/ocorrenciamunicipais" render="${empty dependencies}" z="fo6q8lg/xzZrtO1TWfNK0cjMjdk=">
+        <field:select field="programaVinculado" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_programaVinculado" itemValue="id" items="${programas}" path="/programas" z="6peHWMq5LFS5h3Dz8xNLNeBW9Rc="/>
+        <field:select field="municipio" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_municipio" itemValue="id" items="${municipios}" path="/municipios" z="NxsdqY2KIR81ibrmaLuEwZFQ0QM="/>
+        <field:select field="orgaosExecutores" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_orgaosExecutores" itemValue="id" items="${orgaoexecutores}" multiple="true" path="/orgaoexecutores" z="user-managed"/>
+        <field:input field="beneficiosLocais" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_beneficiosLocais" z="4+gr9Eh5QnqAtYMJBTazSWU4OHY="/>
+        <field:input field="comoAcessar" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_comoAcessar" z="37Av0vUvTAzeQQX4WrRT2KMcj7w="/>
+        <field:input field="inicioInscricoes" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_inicioInscricoes" z="G0XGhemETMWseRmD4VKjlzifEJ8="/>
+        <field:input field="fimInscricoes" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_fimInscricoes" z="fS41CZmEMANwCEqNQ+HlzbTnhE0="/>
+        <field:select field="localizacoes" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_localizacoes" itemValue="id" items="${localizacaos}" multiple="true" path="/localizacoes" render="false" z="n6sDTHaYn/tQQHNOD7tq+6cPhu8="/>
+        <field:input field="quantidadeVagas" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_quantidadeVagas" validationMessageCode="field_invalid_integer" z="VVOME2kMr4+rxAFNbv5sTC6HvAw="/>
+    </form:create>
+    <form:dependency dependencies="${dependencies}" id="d_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal" render="${not empty dependencies}" z="ame9911g+go04TVYVVTrRJK0UOs="/>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/list.jspx b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/list.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..1c0759e8b55b37afee06815af2122c9a783bb80d
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/list.jspx
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:list id="pl_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal" items="${ocorrenciamunicipals}" z="/8eqEnisjTYrkLUxsp1MkQSOd70=">
+        <table:table data="${ocorrenciamunicipals}" id="l_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal" path="/ocorrenciamunicipais" z="nx4hXF5YDAHxgnvLIUmDxMQLGYM=">
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_programaVinculado" property="programaVinculado" z="Tm+iykUft/VEdMGXSaVnnBzsJE0="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_municipio" property="municipio" z="cQGkxw226ouNjy7A6uvXxHYtxr4="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_orgaosExecutores" property="orgaosExecutores" z="vvHN30vTN2locaAdFWuvUjsGCL4="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_beneficiosLocais" property="beneficiosLocais" z="hKB6zObru6eu8Gzg4JBnb9dJD5o="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_comoAcessar" property="comoAcessar" z="m0b/EHguMPNIm1Zmv6odJ9EE8Uw="/>
+            <table:column id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_quantidadeVagas" property="quantidadeVagas" z="A5QKJq5ohSUAYDsCLxtTCsvNzPg="/>
+        </table:table>
+    </page:list>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/show.jspx b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/show.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..4d1e7025d83a33a2d87fef255298e405686c8243
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/show.jspx
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:show id="ps_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal" object="${ocorrenciamunicipal}" path="/ocorrenciamunicipais" z="WHPSs3ZdcAYSs9In0j1we/+ggfA=">
+        <field:display field="programaVinculado" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_programaVinculado" object="${ocorrenciamunicipal}" z="ClfjWWF7bqxVvh1iaAUUlR/bSzU="/>
+        <field:display field="municipio" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_municipio" object="${ocorrenciamunicipal}" z="3GnqSLiyHDjCiiuRGpGGczgguns="/>
+        <field:display field="orgaosExecutores" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_orgaosExecutores" object="${ocorrenciamunicipal}" z="1xYJwVmetGkSz0P1On1Besffdps="/>
+        <field:display field="beneficiosLocais" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_beneficiosLocais" object="${ocorrenciamunicipal}" z="ygvEccTRGhbXXLHbIO1Rj7zwFYE="/>
+        <field:display field="comoAcessar" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_comoAcessar" object="${ocorrenciamunicipal}" z="xLwQzw4LFz+zSUcRQfcSYTkflPw="/>
+        <field:display field="inicioInscricoes" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_inicioInscricoes" object="${ocorrenciamunicipal}" z="8EyeHOiPhQYjTXn3Xf43tPKtvMU="/>
+        <field:display field="fimInscricoes" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_fimInscricoes" object="${ocorrenciamunicipal}" z="PbI7ZEO58GGugm/xe65r6lSBhlg="/>
+        <field:display field="quantidadeVagas" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_quantidadeVagas" object="${ocorrenciamunicipal}" z="rKwiRIW4ZAunEkbuKIBgGgRJnBA="/>
+        <field:display field="localizacoes" id="s_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_localizacoes" object="${ocorrenciamunicipal}" z="QTI2oWOeoAxOgt/XOBCiMtT7ucY="/>
+    </page:show>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/update.jspx b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/update.jspx
new file mode 100644
index 0000000000000000000000000000000000000000..8bed7d48ab76a159fc5cd7ea9775d8a1ced7db65
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/update.jspx
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:update id="fu_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal" modelAttribute="ocorrenciaMunicipal" path="/ocorrenciamunicipais" versionField="Version" z="nMo5OaMVW8SlDiU52IsDoc4ZZZ8=">
+        <field:select field="programaVinculado" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_programaVinculado" itemValue="id" items="${programas}" path="/programas" z="6peHWMq5LFS5h3Dz8xNLNeBW9Rc="/>
+        <field:select field="municipio" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_municipio" itemValue="id" items="${municipios}" path="/municipios" z="NxsdqY2KIR81ibrmaLuEwZFQ0QM="/>
+        <field:select field="orgaosExecutores" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_orgaosExecutores" itemValue="id" items="${orgaoexecutores}" multiple="true" path="/orgaoexecutores" z="user-managed"/>
+        <field:input field="beneficiosLocais" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_beneficiosLocais" z="4+gr9Eh5QnqAtYMJBTazSWU4OHY="/>
+        <field:input field="comoAcessar" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_comoAcessar" z="37Av0vUvTAzeQQX4WrRT2KMcj7w="/>
+        <field:input field="inicioInscricoes" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_inicioInscricoes" z="G0XGhemETMWseRmD4VKjlzifEJ8="/>
+        <field:input field="fimInscricoes" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_fimInscricoes" z="fS41CZmEMANwCEqNQ+HlzbTnhE0="/>
+        <field:select field="localizacoes" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_localizacoes" itemValue="id" items="${localizacaos}" multiple="true" path="/localizacoes" render="false" z="n6sDTHaYn/tQQHNOD7tq+6cPhu8="/>
+        <field:input field="quantidadeVagas" id="c_br_ufpr_c3sl_estacaojuventude_OcorrenciaMunicipal_quantidadeVagas" validationMessageCode="field_invalid_integer" z="VVOME2kMr4+rxAFNbv5sTC6HvAw="/>
+    </form:update>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/views.xml b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/views.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c8e3e57c9910bff468b8daa3ad99f99df21827f1
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ocorrenciamunicipais/views.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
+<tiles-definitions>
+    <definition extends="default" name="ocorrenciamunicipais/list">
+        <put-attribute name="body" value="/WEB-INF/views/ocorrenciamunicipais/list.jspx"/>
+    </definition>
+<definition extends="default" name="ocorrenciamunicipais/show">
+        <put-attribute name="body" value="/WEB-INF/views/ocorrenciamunicipais/show.jspx"/>
+    </definition>
+<definition extends="default" name="ocorrenciamunicipais/create">
+        <put-attribute name="body" value="/WEB-INF/views/ocorrenciamunicipais/create.jspx"/>
+    </definition>
+<definition extends="default" name="ocorrenciamunicipais/update">
+        <put-attribute name="body" value="/WEB-INF/views/ocorrenciamunicipais/update.jspx"/>
+    </definition>
+</tiles-definitions>
diff --git a/src/main/webapp/WEB-INF/views/programas/create.jspx b/src/main/webapp/WEB-INF/views/programas/create.jspx
index 3ae7b79a21cda6daf62cee6cdbf4a5f0beb73702..c81150763e4f9e99f68b93276d4e1f7e42a63ec0 100644
--- a/src/main/webapp/WEB-INF/views/programas/create.jspx
+++ b/src/main/webapp/WEB-INF/views/programas/create.jspx
@@ -22,6 +22,7 @@
         <field:select field="tematicas" id="c_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" itemValue="id" items="${tematicas}" multiple="true" path="/tematicas" z="dNw66nQiqTH3NQvcrusAZ3M3oX0="/>
         <field:select field="orgaosExecutores" id="c_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" itemValue="id" items="${orgaoexecutores}" multiple="true" path="/orgaoexecutores" z="user-managed"/>
         <field:input field="parceiros" id="c_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" z="Jbi+j14QiuxyUynDmEoZrpR6n1Q="/>
+        <field:select field="ocorrencias" id="c_br_ufpr_c3sl_estacaojuventude_Programa_ocorrencias" itemValue="id" items="${ocorrenciamunicipais}" multiple="true" path="/ocorrenciamunicipais" render="false" z="user-managed"/>
         <field:select field="status" id="c_br_ufpr_c3sl_estacaojuventude_Programa_status" items="${tipostatuses}" path="tipostatuses" render="false" z="user-managed"/>
         <field:select field="usuario" id="c_br_ufpr_c3sl_estacaojuventude_Programa_usuario" itemValue="id" items="${usuarios}" path="/usuarios" render="false" z="user-managed"/>
     </form:create>
diff --git a/src/main/webapp/WEB-INF/views/programas/myshow.jspx b/src/main/webapp/WEB-INF/views/programas/myshow.jspx
index a46fc6065cd663d7bbcd4a21ac7c68dc0637b5f1..76412334cd6ee502de055e7439f53a8a76090bae 100644
--- a/src/main/webapp/WEB-INF/views/programas/myshow.jspx
+++ b/src/main/webapp/WEB-INF/views/programas/myshow.jspx
@@ -23,6 +23,7 @@
     	    <field:display field="tematicas" id="s_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" object="${programa}" z="MGW1ri2bdcseKFkrWylIlUuaaZ8="/>
 	        <field:display field="orgaosExecutores" id="s_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" object="${programa}" z="1gT8Ej5o6DpoZCoNVwb5k04qiEk="/>
 	        <field:display field="parceiros" id="s_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" object="${programa}" z="coSlUd/2gZZHVefaIRLXg0IR7SE="/>
+	        <field:display field="ocorrencias" id="s_br_ufpr_c3sl_estacaojuventude_Programa_ocorrencias" object="${programa}" z="ilsvE8WyebDaqtMvENxh6UAc8mc="/>
     	    <field:display field="status" id="s_br_ufpr_c3sl_estacaojuventude_Programa_status" object="${programa}" z="Ex1h1KKyzbozMQkH4LTE8dt9nIs="/>
 	        <field:display field="usuario" id="s_br_ufpr_c3sl_estacaojuventude_Programa_usuario" object="${programa}" z="jm24JcaO4Fl9jBPiK2EQ/5+MJ0s="/>
     	</page:show>
diff --git a/src/main/webapp/WEB-INF/views/programas/show.jspx b/src/main/webapp/WEB-INF/views/programas/show.jspx
index 868e62e37eb7dc8acf478dbffcfb6311a962daa0..076dd3dfb08714436d8d67cb6478a90e25808b8b 100644
--- a/src/main/webapp/WEB-INF/views/programas/show.jspx
+++ b/src/main/webapp/WEB-INF/views/programas/show.jspx
@@ -23,6 +23,7 @@
             <field:display field="tematicas" id="s_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" object="${programa}" z="MGW1ri2bdcseKFkrWylIlUuaaZ8="/>
             <field:display field="orgaosExecutores" id="s_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" object="${programa}" z="1gT8Ej5o6DpoZCoNVwb5k04qiEk="/>
             <field:display field="parceiros" id="s_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" object="${programa}" z="coSlUd/2gZZHVefaIRLXg0IR7SE="/>
+            <field:display field="ocorrencias" id="s_br_ufpr_c3sl_estacaojuventude_Programa_ocorrencias" object="${programa}" z="ilsvE8WyebDaqtMvENxh6UAc8mc="/>
             <field:display field="status" id="s_br_ufpr_c3sl_estacaojuventude_Programa_status" object="${programa}" z="Ex1h1KKyzbozMQkH4LTE8dt9nIs="/>
             <field:display field="usuario" id="s_br_ufpr_c3sl_estacaojuventude_Programa_usuario" object="${programa}" z="jm24JcaO4Fl9jBPiK2EQ/5+MJ0s="/>
         </page:show>
@@ -48,6 +49,7 @@
             <field:display field="tematicas" id="s_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" object="${programa}" z="MGW1ri2bdcseKFkrWylIlUuaaZ8="/>
             <field:display field="orgaosExecutores" id="s_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" object="${programa}" z="1gT8Ej5o6DpoZCoNVwb5k04qiEk="/>
             <field:display field="parceiros" id="s_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" object="${programa}" z="coSlUd/2gZZHVefaIRLXg0IR7SE="/>
+            <field:display field="ocorrencias" id="s_br_ufpr_c3sl_estacaojuventude_Programa_ocorrencias" object="${programa}" z="ilsvE8WyebDaqtMvENxh6UAc8mc="/>
             <field:display field="status" id="s_br_ufpr_c3sl_estacaojuventude_Programa_status" object="${programa}" z="Ex1h1KKyzbozMQkH4LTE8dt9nIs="/>
             <field:display field="usuario" id="s_br_ufpr_c3sl_estacaojuventude_Programa_usuario" object="${programa}" z="jm24JcaO4Fl9jBPiK2EQ/5+MJ0s="/>
         </page:show>
diff --git a/src/main/webapp/WEB-INF/views/programas/showcandidatos.jspx b/src/main/webapp/WEB-INF/views/programas/showcandidatos.jspx
index 696220993e7b6412d198bd51eb4a72fab4ce94cd..082bca965e2b912b5614e1288f70897ab2d40e6a 100644
--- a/src/main/webapp/WEB-INF/views/programas/showcandidatos.jspx
+++ b/src/main/webapp/WEB-INF/views/programas/showcandidatos.jspx
@@ -29,6 +29,7 @@
         	<field:display field="tematicas" id="s_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" object="${programa}" z="MGW1ri2bdcseKFkrWylIlUuaaZ8="/>
 	        <field:display field="orgaosExecutores" id="s_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" object="${programa}" z="1gT8Ej5o6DpoZCoNVwb5k04qiEk="/>
 	        <field:display field="parceiros" id="s_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" object="${programa}" z="coSlUd/2gZZHVefaIRLXg0IR7SE="/>
+        	<field:display field="ocorrencias" id="s_br_ufpr_c3sl_estacaojuventude_Programa_ocorrencias" object="${programa}" z="ilsvE8WyebDaqtMvENxh6UAc8mc="/>
         	<field:display field="status" id="s_br_ufpr_c3sl_estacaojuventude_Programa_status" object="${programa}" z="Ex1h1KKyzbozMQkH4LTE8dt9nIs="/>
         	<field:display field="usuario" id="s_br_ufpr_c3sl_estacaojuventude_Programa_usuario" object="${programa}" z="jm24JcaO4Fl9jBPiK2EQ/5+MJ0s="/>
     	</page:show>
@@ -55,6 +56,7 @@
         	<field:display field="tematicas" id="s_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" object="${programa}" z="MGW1ri2bdcseKFkrWylIlUuaaZ8="/>
 	        <field:display field="orgaosExecutores" id="s_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" object="${programa}" z="1gT8Ej5o6DpoZCoNVwb5k04qiEk="/>
 	        <field:display field="parceiros" id="s_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" object="${programa}" z="coSlUd/2gZZHVefaIRLXg0IR7SE="/>
+        	<field:display field="ocorrencias" id="s_br_ufpr_c3sl_estacaojuventude_Programa_ocorrencias" object="${programa}" z="ilsvE8WyebDaqtMvENxh6UAc8mc="/>
         	<field:display field="status" id="s_br_ufpr_c3sl_estacaojuventude_Programa_status" object="${programa}" z="Ex1h1KKyzbozMQkH4LTE8dt9nIs="/>
         	<field:display field="usuario" id="s_br_ufpr_c3sl_estacaojuventude_Programa_usuario" object="${programa}" z="jm24JcaO4Fl9jBPiK2EQ/5+MJ0s="/>
     	</page:show>
diff --git a/src/main/webapp/WEB-INF/views/programas/update.jspx b/src/main/webapp/WEB-INF/views/programas/update.jspx
index a06f5bba1f5d0158371eedee9d8d82f05db3c41f..9373106033710512c59251b24f3cd900de896767 100644
--- a/src/main/webapp/WEB-INF/views/programas/update.jspx
+++ b/src/main/webapp/WEB-INF/views/programas/update.jspx
@@ -1,28 +1,58 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:sec="http://www.springframework.org/security/tags" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
     <jsp:directive.page contentType="text/html;charset=UTF-8"/>
     <jsp:output omit-xml-declaration="yes"/>
-    <form:update id="fu_br_ufpr_c3sl_estacaojuventude_Programa" modelAttribute="programa" path="/programas" versionField="Version" z="BzUMrk0HIxfhgMsvGQoaUtv2sDc=">
-        <field:input field="nomeOficial" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nomeOficial" z="bc3pz/2g/oVwZE1Aey76ZJhx0bM="/>
-        <field:input field="nomeDivulgacao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nomeDivulgacao" z="fDxR3dnr61JMbaTs4rcE9iFHkpU="/>
-        <field:input field="sigla" id="c_br_ufpr_c3sl_estacaojuventude_Programa_sigla" z="kGLlUDsbNNGnqG06eMJbJB4OBXs="/>
-        <field:select field="nivel" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nivel" items="${nivelprogramas}" path="nivelprogramas" z="4pOFZ4tGHsIhD/80BTEdnPGN92g="/>
-        <field:select field="programaVinculado" id="c_br_ufpr_c3sl_estacaojuventude_Programa_programaVinculado" itemValue="id" items="${programas}" path="/programas" z="eOYwLQ5Izpu/YxZLnKEgD3nNJDc="/>
-        <field:input field="leiCriacao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_leiCriacao" z="AZrkYSbMNxVniZDEPO3UIZomuUc="/>
-        <field:input field="descricao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_descricao" z="j8K3uhuqABUcYWZtDUVA1uw0H/U="/>
-        <field:input field="objetivos" id="c_br_ufpr_c3sl_estacaojuventude_Programa_objetivos" z="/qg0ht0rwAM9BGySe//YuL0vAJE="/>
-        <field:input field="beneficios" id="c_br_ufpr_c3sl_estacaojuventude_Programa_beneficios" z="4K86Z102Fj1BJX3DXRy1cvG+9Uc="/>
-        <field:datetime dateTimePattern="${programa_datainicio_date_format}" field="dataInicio" id="c_br_ufpr_c3sl_estacaojuventude_Programa_dataInicio" z="nNVy1J68TFQeiW5rl/NKv94LNCE="/>
-        <field:select field="temporalidade" id="c_br_ufpr_c3sl_estacaojuventude_Programa_temporalidade" items="${tipotemporalidades}" path="tipotemporalidades" z="8t1yjG70Av2Hz4Mhz7K4xIkuvME="/>
-        <field:input field="publicoAlvo" id="c_br_ufpr_c3sl_estacaojuventude_Programa_publicoAlvo" z="nfjHOXYNbbbwrWZdf8B6WQNyvBU="/>
-        <field:input field="idadeMinima" id="c_br_ufpr_c3sl_estacaojuventude_Programa_idadeMinima" validationMessageCode="field_invalid_integer" z="mkv8Bm7AvW/UKajattFE7vU0B9U="/>
-        <field:input field="idadeMaxima" id="c_br_ufpr_c3sl_estacaojuventude_Programa_idadeMaxima" validationMessageCode="field_invalid_integer" z="WIjBwA925e6JSn8yKl2LnnzmG9A="/>
-        <field:input field="criteriosAcesso" id="c_br_ufpr_c3sl_estacaojuventude_Programa_criteriosAcesso" z="46IIumERi7DTwwtpARnCfqhSkws="/>
-        <field:input field="duracao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_duracao" z="a7AOY/Yrtw4PcGueyAvhXIGAQFU="/>
-        <field:select field="tematicas" id="c_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" itemValue="id" items="${tematicas}" multiple="true" path="/tematicas" z="dNw66nQiqTH3NQvcrusAZ3M3oX0="/>
-        <field:select field="orgaosExecutores" id="c_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" itemValue="id" items="${orgaoexecutores}" multiple="true" path="/orgaoexecutores" z="user-managed"/>
-        <field:input field="parceiros" id="c_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" z="Jbi+j14QiuxyUynDmEoZrpR6n1Q="/>
-        <field:select field="status" id="c_br_ufpr_c3sl_estacaojuventude_Programa_status" items="${tipostatuses}" path="tipostatuses" z="TWynnY2LlkTLv9vJJ6PYF11yQk0="/>
-        <field:select field="usuario" id="c_br_ufpr_c3sl_estacaojuventude_Programa_usuario" itemValue="id" items="${usuarios}" path="/usuarios" z="gyBHEGJXuWI8xAN+JR0Z6EVyhMY="/>
-    </form:update>
+    <sec:authorize ifAnyGranted="Administrador">
+    	<form:update id="fu_br_ufpr_c3sl_estacaojuventude_Programa" modelAttribute="programa" path="/programas" versionField="Version" z="BzUMrk0HIxfhgMsvGQoaUtv2sDc=">
+        	<field:input field="nomeOficial" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nomeOficial" z="bc3pz/2g/oVwZE1Aey76ZJhx0bM="/>
+        	<field:input field="nomeDivulgacao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nomeDivulgacao" z="fDxR3dnr61JMbaTs4rcE9iFHkpU="/>
+        	<field:input field="sigla" id="c_br_ufpr_c3sl_estacaojuventude_Programa_sigla" z="kGLlUDsbNNGnqG06eMJbJB4OBXs="/>
+        	<field:select field="nivel" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nivel" items="${nivelprogramas}" path="nivelprogramas" z="4pOFZ4tGHsIhD/80BTEdnPGN92g="/>
+        	<field:select field="programaVinculado" id="c_br_ufpr_c3sl_estacaojuventude_Programa_programaVinculado" itemValue="id" items="${programas}" path="/programas" z="eOYwLQ5Izpu/YxZLnKEgD3nNJDc="/>
+        	<field:input field="leiCriacao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_leiCriacao" z="AZrkYSbMNxVniZDEPO3UIZomuUc="/>
+        	<field:input field="descricao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_descricao" z="j8K3uhuqABUcYWZtDUVA1uw0H/U="/>
+        	<field:input field="objetivos" id="c_br_ufpr_c3sl_estacaojuventude_Programa_objetivos" z="/qg0ht0rwAM9BGySe//YuL0vAJE="/>
+        	<field:input field="beneficios" id="c_br_ufpr_c3sl_estacaojuventude_Programa_beneficios" z="4K86Z102Fj1BJX3DXRy1cvG+9Uc="/>
+        	<field:datetime dateTimePattern="${programa_datainicio_date_format}" field="dataInicio" id="c_br_ufpr_c3sl_estacaojuventude_Programa_dataInicio" z="nNVy1J68TFQeiW5rl/NKv94LNCE="/>
+        	<field:select field="temporalidade" id="c_br_ufpr_c3sl_estacaojuventude_Programa_temporalidade" items="${tipotemporalidades}" path="tipotemporalidades" z="8t1yjG70Av2Hz4Mhz7K4xIkuvME="/>
+        	<field:input field="publicoAlvo" id="c_br_ufpr_c3sl_estacaojuventude_Programa_publicoAlvo" z="nfjHOXYNbbbwrWZdf8B6WQNyvBU="/>
+        	<field:input field="idadeMinima" id="c_br_ufpr_c3sl_estacaojuventude_Programa_idadeMinima" validationMessageCode="field_invalid_integer" z="mkv8Bm7AvW/UKajattFE7vU0B9U="/>
+        	<field:input field="idadeMaxima" id="c_br_ufpr_c3sl_estacaojuventude_Programa_idadeMaxima" validationMessageCode="field_invalid_integer" z="WIjBwA925e6JSn8yKl2LnnzmG9A="/>
+        	<field:input field="criteriosAcesso" id="c_br_ufpr_c3sl_estacaojuventude_Programa_criteriosAcesso" z="46IIumERi7DTwwtpARnCfqhSkws="/>
+        	<field:input field="duracao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_duracao" z="a7AOY/Yrtw4PcGueyAvhXIGAQFU="/>
+        	<field:select field="tematicas" id="c_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" itemValue="id" items="${tematicas}" multiple="true" path="/tematicas" z="dNw66nQiqTH3NQvcrusAZ3M3oX0="/>
+        	<field:select field="orgaosExecutores" id="c_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" itemValue="id" items="${orgaoexecutores}" multiple="true" path="/orgaoexecutores" z="user-managed"/>
+        	<field:input field="parceiros" id="c_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" z="Jbi+j14QiuxyUynDmEoZrpR6n1Q="/>
+        	<field:select field="ocorrencias" id="c_br_ufpr_c3sl_estacaojuventude_Programa_ocorrencias" itemValue="id" items="${ocorrenciamunicipais}" multiple="true" path="/ocorrenciamunicipais" z="user-managed"/>
+        	<field:select field="status" id="c_br_ufpr_c3sl_estacaojuventude_Programa_status" items="${tipostatuses}" path="tipostatuses" z="TWynnY2LlkTLv9vJJ6PYF11yQk0="/>
+        	<field:select field="usuario" id="c_br_ufpr_c3sl_estacaojuventude_Programa_usuario" itemValue="id" items="${usuarios}" path="/usuarios" z="gyBHEGJXuWI8xAN+JR0Z6EVyhMY="/>
+    	</form:update>
+    </sec:authorize>
+    
+    <sec:authorize ifAnyGranted="Usuario">
+    	<form:update id="fu_br_ufpr_c3sl_estacaojuventude_Programa" modelAttribute="programa" path="/programas" versionField="Version" z="BzUMrk0HIxfhgMsvGQoaUtv2sDc=">
+        	<field:input field="nomeOficial" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nomeOficial" z="bc3pz/2g/oVwZE1Aey76ZJhx0bM="/>
+        	<field:input field="nomeDivulgacao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nomeDivulgacao" z="fDxR3dnr61JMbaTs4rcE9iFHkpU="/>
+        	<field:input field="sigla" id="c_br_ufpr_c3sl_estacaojuventude_Programa_sigla" z="kGLlUDsbNNGnqG06eMJbJB4OBXs="/>
+        	<field:select field="nivel" id="c_br_ufpr_c3sl_estacaojuventude_Programa_nivel" items="${nivelprogramas}" path="nivelprogramas" z="4pOFZ4tGHsIhD/80BTEdnPGN92g="/>
+        	<field:select field="programaVinculado" id="c_br_ufpr_c3sl_estacaojuventude_Programa_programaVinculado" itemValue="id" items="${programas}" path="/programas" z="eOYwLQ5Izpu/YxZLnKEgD3nNJDc="/>
+        	<field:input field="leiCriacao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_leiCriacao" z="AZrkYSbMNxVniZDEPO3UIZomuUc="/>
+        	<field:input field="descricao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_descricao" z="j8K3uhuqABUcYWZtDUVA1uw0H/U="/>
+        	<field:input field="objetivos" id="c_br_ufpr_c3sl_estacaojuventude_Programa_objetivos" z="/qg0ht0rwAM9BGySe//YuL0vAJE="/>
+        	<field:input field="beneficios" id="c_br_ufpr_c3sl_estacaojuventude_Programa_beneficios" z="4K86Z102Fj1BJX3DXRy1cvG+9Uc="/>
+        	<field:datetime dateTimePattern="${programa_datainicio_date_format}" field="dataInicio" id="c_br_ufpr_c3sl_estacaojuventude_Programa_dataInicio" z="nNVy1J68TFQeiW5rl/NKv94LNCE="/>
+        	<field:select field="temporalidade" id="c_br_ufpr_c3sl_estacaojuventude_Programa_temporalidade" items="${tipotemporalidades}" path="tipotemporalidades" z="8t1yjG70Av2Hz4Mhz7K4xIkuvME="/>
+        	<field:input field="publicoAlvo" id="c_br_ufpr_c3sl_estacaojuventude_Programa_publicoAlvo" z="nfjHOXYNbbbwrWZdf8B6WQNyvBU="/>
+        	<field:input field="idadeMinima" id="c_br_ufpr_c3sl_estacaojuventude_Programa_idadeMinima" validationMessageCode="field_invalid_integer" z="mkv8Bm7AvW/UKajattFE7vU0B9U="/>
+        	<field:input field="idadeMaxima" id="c_br_ufpr_c3sl_estacaojuventude_Programa_idadeMaxima" validationMessageCode="field_invalid_integer" z="WIjBwA925e6JSn8yKl2LnnzmG9A="/>
+        	<field:input field="criteriosAcesso" id="c_br_ufpr_c3sl_estacaojuventude_Programa_criteriosAcesso" z="46IIumERi7DTwwtpARnCfqhSkws="/>
+        	<field:input field="duracao" id="c_br_ufpr_c3sl_estacaojuventude_Programa_duracao" z="a7AOY/Yrtw4PcGueyAvhXIGAQFU="/>
+        	<field:select field="tematicas" id="c_br_ufpr_c3sl_estacaojuventude_Programa_tematicas" itemValue="id" items="${tematicas}" multiple="true" path="/tematicas" z="dNw66nQiqTH3NQvcrusAZ3M3oX0="/>
+        	<field:select field="orgaosExecutores" id="c_br_ufpr_c3sl_estacaojuventude_Programa_orgaosExecutores" itemValue="id" items="${orgaoexecutores}" multiple="true" path="/orgaoexecutores" z="user-managed"/>
+        	<field:input field="parceiros" id="c_br_ufpr_c3sl_estacaojuventude_Programa_parceiros" z="Jbi+j14QiuxyUynDmEoZrpR6n1Q="/>
+        	<field:select field="ocorrencias" id="c_br_ufpr_c3sl_estacaojuventude_Programa_ocorrencias" itemValue="id" items="${ocorrenciamunicipais}" multiple="true" path="/ocorrenciamunicipais" render="false" z="user-managed"/>
+        	<field:select field="status" id="c_br_ufpr_c3sl_estacaojuventude_Programa_status" items="${tipostatuses}" path="tipostatuses" render="false" z="TWynnY2LlkTLv9vJJ6PYF11yQk0="/>
+        	<field:select field="usuario" id="c_br_ufpr_c3sl_estacaojuventude_Programa_usuario" itemValue="id" items="${usuarios}" path="/usuarios" render="false" z="gyBHEGJXuWI8xAN+JR0Z6EVyhMY="/>
+    	</form:update>
+    </sec:authorize>
 </div>