Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 17, 2019 23:38

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: sbt-fxml
BeitragVerfasst: Fr Mär 29, 2013 13:45 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1915
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Hi!

ich habe mal wieder ein Projekt aus dem Ärmel gezaubert - dieses Mal jedoch mit einem wichtigen Unterschied: Es ist bereits fast fertig :) Es hat sogar etwas mit OpenGL zu tun :p

sbt-fxml ist der Name und es ist ein Plugin für das Build-Tool SBT. Es ist in einem Mercurial-Repository auf Bitbucket gehosted und die Binaries liegen im offiziellen Repository von SBT.

Was tut es?
Es generiert Sourcecode für FXML Dateien für JavaFX. Das ist vom Prinzip her so ähnlich wie Delphi und die .dfm Dateien, die die Definition für die Forms beinhalten (IIRC). FXML tritt dabei an die Stelle dieser .dfm Dateien und mein Plugin erzeugt den passenden Code. Dadurch kann man die Komponenten aus der FXML ohne Umwege (und vor allem ohne, dass man langweiligen Code dafür schreiben müsste) im Quellcode verwenden.

Pics or it didn't happen!
Das ist zwar jetzt kein Bild, aber tut's hoffentlich genau so:
Code:
  1. // Auto generated by sbt-fxml, changes will be overwritten
  2.  
  3. package com.example
  4.  
  5. import javafx.fxml.FXML
  6. import javafx.scene.control.Button
  7.  
  8. object Controller {
  9.   @FXML
  10.   var meep: Button = ???
  11. }

Das entstand aus diesem FXML:
Code:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <?import java.lang.*?>
  4. <?import java.util.*?>
  5. <?import javafx.scene.control.*?>
  6. <?import javafx.scene.layout.*?>
  7. <?import javafx.scene.paint.*?>
  8.  
  9. <AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.example.Controller">
  10.   <children>
  11.     <Button fx:id="meep" layoutX="89.0" layoutY="33.0" text="Button" />
  12.   </children>
  13. </AnchorPane>

Und das FXML entstand mit dem GUI-Builder SceneBuilder.

Das heißt: Man kann sich das komplette GUI-Code schreiben nun sparen in Java / Scala :)

Features
  • Compile-Time Checks für FXML files
  • Wunderschöner generierter Code, sieht fast aus wie von Hand geschrieben (wäre da nicht der Kommentar am Dateianfang)
  • Liest den Package-Namen und den Klassennamen der Controller-Klasse direkt aus der FXML-Datei
  • Vermeidet unnötige imports
  • Kann auch mit Default-Packages
  • Erzeugt automatisch die Verzeichnisstruktur für das erkannte Package
  • Nimmt die jfxrt.jar, um den Komponenten ihre Klasse zu zu ordnen, sodass es automatisch mit allen vergangenen und zukünftigen Releases von JavaFX zusammenarbeitet
  • Erzeugt die Klassen nur dann neu, wenn es Änderungen im FXML gab
  • Unterstützt SBTs continuous compile und generiert dadurch automatisch neu, sobald sich ein FXML ändert

Publicity
Ich habe das Plugin auf Twitter angekündigt - dort aber noch mit seinem alten Namen "sbt-fx". Nach der Ankündigung habe ich relativ bald gemerkt, dass es bereits ein SBT-Plugin gibt, was auf den Namen "sbt-javafx" hört und habe meines deswegen umbenannt. Leider etwas zu spät, denn meine Ankündigung wurde binnen weniger Minuten an 5655 Leute ge-retweet-et.

Lizenz
Das ganze Projekt ist Open Source und steht unter der Eclipse Public License v1.0. Die ist grob vergleichbar mit der Apache License 2 und damit ein klein wenig liberaler als die LGPL.

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: sbt-fxml
BeitragVerfasst: Mi Apr 03, 2013 23:39 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1915
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Ich wurde mittlerweile um einen Gastpost auf guigarage.com gebeten und auch schon von mehreren Seiten gefragt (u.A. von jemandem von Oracle), ob es denn einen Blogpost zu meinem Plugin geben wird. Und jaa..... den wird es geben :)

P.S.: Feedback ist was tolles

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: sbt-fxml
BeitragVerfasst: So Apr 07, 2013 21:40 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1915
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Ahoi,

ich habe mittlerweile angefangen Tests zu schreiben, nachdem das Plugin mittlerweile einen gewissen Grad an Features erreicht hat.

Außerdem wurde mein Plugin in den JavaFX Links Of The Week vom Controls Lead Developer Jonathan Giles erwähnt ^.~

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.042s | 19 Queries | GZIP : On ]