
Esse é um projeto feito em Java cuja funcionalidade consiste em gerar sons a partir de um texto qualquer. Ele utiliza o padrão de projeto MVC, utilizando a framework MVC-in-Java. O principal objetivo desse projeto não é a aplicação em si, mas sim em desenvolver uma aplicação que siga boas práticas, com o uso de um código limpo e com alta legibilidade. Foram usados diversas técnicas e refatorações a fim de cumprir com esse objetivo.
- Informar um arquivo de texto (formato
.txt)
- Será aberto o player. Escolha a opção
play e a aplicação irá executar o som gerado através do arquivo de texto
| Tecla |
Função |
Space |
Play / pause |
H |
Stop |
Ctrl + N |
Abre a janela para troca de texto, pedindo para o usuário digitar um texto |
Ctrl + O |
Abre a janela para troca de texto, pedindo para o usuário escolher um arquivo .txt |
Ctrl + W |
Fecha a janela atual e volta para a tela inicial |
Alt + F4 |
Fecha a aplicação |
- O texto informado não pode ter underscores (
_), visto que é um símbolo reservado da aplicação

Detalhes sobre cada versão estão documentadas na seção releases.

| Nome |
Tipo |
Descrição |
| Controller |
Classe abstrata |
Contém o frame principal da aplicação. Todas os controllers devem extender este |
| Model |
Interface |
Possuem comportamento de um Observator. Todos as classes models implementarão essa interface |
| View |
Interface |
Possuem comportamento de um Observer. Todos as classes views implementarão essa interface |
| Nome |
Tipo |
Descrição |
| HomeController |
Classe |
Responsável pelo comportamento da view Home |
| KeyboardController |
Classe |
Responsável pelo comportamento do teclado |
| TextPlayerController |
Classe |
Responsável pelo comportamento da view TextPlayer |
| Nome |
Tipo |
Descrição |
| FileInputDialog |
Classe |
Responsável por obter |
| input de arquivo através de uma janela |
|
|
| FileInputType |
Enumeração |
Contém os tipos de input de arquivo disponíveis |
| InputDialog |
Classe abstrata |
Responsável por obter um input através de uma janela |
| TextInputDialog |
Classe |
Responsável por obter input de texo através de uma janela |
| Nome |
Tipo |
Descrição |
| JFugueMusicalNote |
Classe |
Responsável por representar uma nota musical da API JFugue |
| Nome |
Tipo |
Descrição |
| JFugueMusicPlayer |
Classe |
Responsável por representar o player de música da API JFugue |
| MusicPlayer |
Interface |
Responsável por representar players de música |
| Nome |
Tipo |
Descrição |
| JFugueMusicParser |
Classe |
Responsável pelo parse de um arquivo para posterior uso deste arquivo pelo JFugue |
| Parser |
Classe |
Responsável pelo parse de um arquivo. Utiliza injeção de dependência com relação a interface ParseType |
| ParseType |
Interface |
Todas as classes que a implementarem poderão ser utilizadas pela classe Parser para a realização do parse |
Contém as classes utilitárias da aplicação, sendo totalmente independentes das classes da aplicação.
| Nome |
Tipo |
Descrição |
| HomeView |
Classe |
Responsável pela tela inicial da aplicação |
| TextPlayerView |
Classe |
Responsável pela tela do player de música da aplicação |
Dentro da pasta src encontra-se todo o conteúdo referente à aplicação.
| Nome |
Tipo |
Descrição |
| bin |
Diretório |
Contém os arquivos binários da aplicação |
| dist |
Diretório |
Contém os arquivos executáveis do projeto |
| docs |
Diretório |
Informações relativas a documentação / Diagrama UML |
| lib |
Diretório |
Contém as bibliotecas que a aplicação depende |
| src |
Diretório |
Contém os arquivos fonte da aplicação |
| test |
Diretório |
Contém os testes da aplicação |
| .classpath |
Arquivo |
Arquivo gerado por IDE |
| .project |
Arquivo |
Arquivo gerado por IDE |
| Name |
Type |
Function |
| assets |
Diretório |
Contém todos os arquivos de conteúdo da aplicação |
| controllers |
Diretório |
Contém todas as classes de controllers da aplicação |
| core |
Diretório |
Contém as classes e interfaces essenciais para o funcionamento da estrutura MVC |
| models |
Diretório |
Contém todas as classes de models da aplicação |
| resources |
Diretório |
Contém os arquivos de configuração da aplicação, como os dicionários (resource bundles) |
| views |
Diretório |
Contém todas as classes responsáveis pela parte visual do programa |
| Main.java |
Arquivo |
Arquivo responsável pelo início da aplicação |




- Freeman, Eric, Elisabeth Robson, Kathy Sierra, and Bert Bates. 2004. Head First design patterns. Sebastopol, CA: O'Reilly.
- Beck, Kant. Implementation Patterns, Addison-Wesley, 2008.
- Meyer, Bertrand. Object-Oriented Software Construction (Book/CD-ROM), Prentice Hall, 2000.