Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

springmodelgenerator

Gerador de código Delphi para criação automática de entidades de modelo e ViewModels baseadas em tabelas de banco de dados, utilizando o framework Spring4D.

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Spring Model Generator

Gerador de código Delphi para criação automática de entidades de modelo e ViewModels baseadas em tabelas de banco de dados, utilizando o framework Spring4D.

📋 Descrição

O Spring Model Generator é uma aplicação desktop desenvolvida em Delphi que automatiza a geração de classes de modelo (Entities) e ViewModels para projetos que utilizam o framework Spring4D. A ferramenta conecta-se a um banco de dados, analisa as tabelas e gera automaticamente o código Pascal seguindo os padrões do Spring Framework.

✨ Funcionalidades

  • Conexão com Banco de Dados: Suporte para Firebird/InterBase e outros bancos via ODBC
  • Geração de Entidades de Modelo: Cria classes Delphi com atributos do Spring Persistence
  • Geração de ViewModels: Cria ViewModels com suporte a notificação de mudanças de propriedades
  • Interface Gráfica Intuitiva: Seleção visual de tabelas com busca e filtros
  • Configuração Persistente: Salva configurações de conexão e preferências
  • Suporte a Tipos Nullable: Opção para usar tipos nullable do Spring
  • Nomenclatura Customizável: Prefixo de unidade configurável

🛠️ Requisitos

  • Delphi: Versão compatível com Spring4D
  • Spring4D Framework: Biblioteca Spring.Persistence.Mapping.CodeGenerator
  • VirtualTrees: Componente para exibição de árvore de tabelas
  • JsonDataObjects: Para persistência de configurações
  • Banco de Dados: Firebird/InterBase ou qualquer banco com driver ODBC

📁 Estrutura do Projeto

pascal
springmodelgenerator/
????????? CodeGenerator.dpr          # Projeto principal
????????? CodeGenerator.dproj        # Arquivo de projeto
????????? MainView.pas               # Interface principal da aplica????o
????????? MainView.dfm               # Formul??rio da interface
????????? MainRunner.pas             # L??gica de execu????o e gerenciamento
????????? ModelGenerator.pas         # Gerador de c??digo para entidades e ViewModels
????????? JsonDataObjects.pas        # Biblioteca para manipula????o de JSON
????????? Clean.bat                  # Script de limpeza

🚀 Como Usar

1. Configuração Inicial

  1. Abra o projeto CodeGenerator.dpr no Delphi
  2. Compile e execute a aplicação

2. Conectar ao Banco de Dados

  1. Preencha a Connection String (ou use o botão para configurar via ODBC)
  2. Informe o Nome do Banco de Dados
  3. Informe o Schema (se aplicável)
  4. Clique em Conectar

3. Selecionar Tabelas

  1. Após a conexão, as tabelas serão listadas na árvore
  2. Use a busca para filtrar tabelas
  3. Marque as tabelas que deseja gerar código
  4. Use "Check All" ou "Uncheck All" para selecionar/desselecionar todas

4. Configurar Geração

  1. Defina o Diretório de Saída onde os arquivos serão gerados
  2. Configure o Prefix da Unidade (ex: Eagle.ERP.Vendas)
  3. Marque Use Nullable Types se desejar usar tipos nullable do Spring

5. Gerar Código

  1. Clique em Gerar Unidades
  2. Para cada tabela selecionada, informe o Nome da Entidade
  3. Os arquivos .pas serão gerados no diretório de saída

📝 Tipos de Código Gerado

Entidade de Modelo (Model Entity)

Gera classes com:

  • Atributos [Entity] e [Table] do Spring Persistence
  • Campos privados com getters e setters
  • Propriedades públicas
  • Registro automático no container do Spring
  • Suporte a tipos nullable (opcional)

ViewModel

Gera classes com:

  • Herança de TPropertyChangedBase (DSharp)
  • Injeção de dependência com [Inject]
  • Propriedades que delegam para a entidade de modelo
  • Notificação automática de mudanças de propriedades
  • Getters e setters implementados

⚙️ Configurações

As configurações são salvas automaticamente em:

pascal
%USERPROFILE%\Marshmallow\runner.json

Configurações salvas:

  • Connection String
  • Database Name
  • Default Schema Name
  • Output Directory
  • Unit Prefix
  • Use Nullable Types

🔧 Dependências

  • Spring4D: Framework de persistência e injeção de dependência
  • VirtualTrees: Componente para exibição de árvores
  • JsonDataObjects: Manipulação de JSON
  • DSharp: Framework MVVM (para PropertyChangedBase)

📄 Licença

Este projeto é fornecido como está, sem garantias.

🤝 Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.

📞 Suporte

Para questões ou problemas, abra uma issue no repositório do projeto.