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

/cljavafx/

    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