cljavafx

1.0.2 • Public • Published

cljavafx

Este projetinho é minha tentativa de integrar JavaFX e Clojure de uma forma que seja realmente prática. O objetivo a atingir é um fluxo de trabalho que seja melhor que a alternativa que eu uso hoje, a saber, JavaFX + Scala.

O obstáculo

FXML usa campos anotados com @FXML pra injetar os componentes no controlador. Em Clojure isso é impossível, porque:

  1. Podemos criar campos com deftype ou defrecord, mas não é possível criar um construtor sem argumentos nesse caso, e o FXML Loader não trabalha sem um construtor de zero argumentos.

  2. Com gen-class podemos criar o construtor que quisermos, mas sem campos.

Minha alternativa no momento: usar gen-class e, ao usar o loader, obter a instância do controlador criada pelo mesmo. Chamar um método nessa instância para passar ao controlador o loader ou o namespace de componentes do loader. E aí chamar os componentes com base nesse namespace.

O método no controlador pode pegar os dados e armazená-los no state usando um atom e um map.

https://stackoverflow.com/questions/25828561/javafx-how-to-get-fxml-controller

https://stackoverflow.com/questions/26962788/fxmlloader-how-to-access-the-components-by-fxid

Readme

Keywords

none

Package Sidebar

Install

npm i cljavafx

Weekly Downloads

0

Version

1.0.2

License

ISC

Unpacked Size

19.8 MB

Total Files

10

Last publish

Collaborators

  • caugmar