# JAVAFX - CSS - automatische Property- und Methoden-Vorlagen in Eclipse



## I.E. (26. Apr 2017)

Hallo! 

 

Auf dem Bild sieht man, wie der Programmier eine CSS-Datei ausstattet, dabei werden ihm automatisch mögliche Optionen gezeigt, die in Frage kommen. Das verwendetete Programm ist NetBeans, ich programmiere allerdings mit Eclipse Neon, und ich habe bislang keine Möglichkeit gefunden, solche Vorlagen-Listen für CSS zu verwenden. Dabei wäre es echt praktisch, vom Programm direkt mögliche Varianten für Properties etc. zu bekommen, um in diesen ein wenig herumzustöbern.

Kann man sowas auch in Eclipse einrichten? 

Danke im Voraus!


----------



## thet1983 (26. Apr 2017)

e(fx)clipse installiert?


----------



## I.E. (26. Apr 2017)

Eben nicht, genau das legen mir aber die Ergebnisse meiner Google-Suche ans Herz. 

Ich glaube, der Thread ist überflüssig.


----------



## I.E. (26. Apr 2017)

Laut meinem Verständnis wird für die Installation dieses Plugins eine Internet-Verbindung verlangt. Geht es auch ohne?


----------



## thet1983 (26. Apr 2017)

verwende den marketplace 
unter Help -> Eclipse Marketplace

nur online


----------



## I.E. (26. Apr 2017)

http://efxclipse.bestsolution.at/install.html

Und was ist mit dieser Seite? Soweit ich es verstehe, hat *Eclipse 4.6.0 SDK* bereits dieses Plugin.


----------



## thet1983 (26. Apr 2017)

bei uns sagt man: wos da baua net kennt des frisst a ned.... 

ich habs vom marketplace und da ist es auch drinnen...


----------



## I.E. (26. Apr 2017)

Den Hinweis mit marketplace habe ich auch schon davor bekommen, ich glaube, jemand auf stackoverflow.com hat ihn irgendwann an jemand anders gegeben. Es ist bloß so, dass ich keinen Internet-Anschluss habe bei dem entsprechenden Rechner. Deswegen halte ich eben Ausschaue nach einer Download-Version oder nach einem All-In-One-Paket.


----------



## dzim (26. Apr 2017)

Dann dein Link. Da sollte eine aktuelle Version sein. Der Kollege Tom Schindel besitzt die Firma bestsolution.at und ist der ursprüngliche Autor von e(fx)clipse. Ich verwende es auch für ein Projekt.


----------



## I.E. (29. Apr 2017)

Geht immer noch nicht. 

Ich habe diese Version von Eclipse installiert, ich muss dort allerdings immer wieder für jedes neues Projekt die Library neu einstellen, und CSS Content Assist funktioniert immer noch nicht. 

Vielleicht gibt es ja nur einen ganz bestimmten CSS-Editor in dieser Eclipse-Version, der Content Assist anbietet. Ich habe viele der angebotenen Editoren ausprobiert, und wurde bislang nicht fündig.


----------



## mrBrown (29. Apr 2017)

I.E. hat gesagt.:


> Ich habe diese Version von Eclipse installiert


Welche Version von Eclipse? Die all-in-one von der seite oder das von dir genannte Eclipse 4.6.0 SDK?


Ansonsten - wenn die IDE nicht unterstützt, was man baucht, die IDE wechseln, das aus deinem Screenshot ist IntelliJ IDEA, nicht Netbeans


----------



## I.E. (29. Apr 2017)

Nach meinem Verständnis ist All-In-One-Eclipse von der Seite oben eben Eclipse 4.6.0 . Und ich habe durch die Beschreibung eben damit gerechnet, dass e(fx)clipse gleich mit dabei ist. Anscheinend doch nicht.


----------



## dzim (5. Mai 2017)

Es ist Eclipse und enthält e(fx)clipse. Du kannst dann damit alles machen, was du gewöhnlicherweise auch mit Eclipse machen kannst: Eclipse-Projekte (auch JavaFX-spezifische), Maven, Gradle, OSGi-Bundles (als e4-Projekte oder in anderen Variationen). Und wenn du z.B. ein Maven-Projekt machst (was ich mit JavaFX im Moment noch am ehesten mache) fügst du über File > New > JavaFX > FXGraph/FXML eine neue UI-Komponente hinzu, dadurch wird XText in den Classpath aufgenommen (besser gesagt: in die Build-Natures) und somit sollte dann, wenn du danach eine CSS anlegst, die Content-Assist funktionieren. Tut sie dass nicht, kannst du auch über Rechtklick auf der CSS-Datei und Open With festlegen, dass dort der JavaFX-CSS-Editor verwendet werden soll (das wird hier dein Problem sein...).


----------



## I.E. (27. Mai 2017)

Hallo, 

ich habe jetzt Content Assist in dem CSS-Editor. Erstens muss man beim Projekt über Project/Properties/JAVA Build Path oder so in dem Dreh eine zusätzliche Bibliothek beim Tab Libraries ins Boot holen - JAVAFX SDK. Die hatte ich nämlich nie aktiviert bislang. Und dann muss das Feld für diese Bibliothek beim Tab Order and Exports markiert und per Up-Button ganz nach oben befördert werden. 

Diese Aktionen müssen jeweils per Apply abgesegnet werden. Wenn ich jetzt ein CSS-File erstelle (new - File - beim Name am Ende .css schreiben, Eclipse wird noch fragen, ob man das Projekt zu einem Xtend-Projekt machen will, man muss es bejahen), wird ihm automatisch der JAVAFX-CSS-E(fx)clipse-Editor (oder so in dem Dreh) zugewiesen. Und wenn ich dort schreibe, werden mir nun in Frage kommende Templates angeboten. Content Assist, auf gut Deutsch. 

Allerdings funktioniert es nicht mit, wenn ich CSS-Angaben in den JAVA-Klassen mache, quasi die Inline-CSS-Vorgaben, etwa per togglebutton.setStyle("CSS-Angaben");. Gibt es dafür eine Lösung? Bietet Eclipse Content Assist auch für Inline CSS an? 


Cheers


----------



## mrBrown (27. Mai 2017)

I.E. hat gesagt.:


> Eclipse wird noch fragen, ob man das Projekt zu einem Xtend-Projekt machen will, man muss es bejahen


Das klingt falsch - du willst doch ganz sicher nicht Xtend schreiben.
Wenn das wirklich nötig ist, hat Eclipse ja eine noch schlechtere Benutzerführung als ich bisher dachte...


----------



## dzim (27. Mai 2017)

Also zum einen muss es XText sein (denn auf XText beruhen IMHO der CSS- und der FXGraph-Editor) und bei mir musste ich nie etwas bejahen - es wurde einfach hinzugefügt (siehe oben der Verweis auf eine Build-Nature). 

@mrBrown Also so schlimm ist Eclipse nicht. Und da ich gerade einen sanften Umzug auf IntelliJ mache: Auch dort ist nicht alles Gold was glänzt - ein paar Sachen vermisse ich schon (z.B. sind ein paar der Tastenkürzel zwar nicht schlimm, aber schon etwas seltsam: Refactor, Auto-Format, ... - und der pom.xml-Editor hat zwar ne gute Content-Assist, aber mir fehlt manchmal die GUI, die Eclipse geboten hat). Aber das sind eher Details und IMHO sind beides gute IDEs. Nur eben konzeptionell recht unterschiedlich.

@I.E. Es stimmt. Der CSS-Support von e(fx)clipse (Eclipse selbst hat dahingehend nichts) endet leider an den Grenzen des CSS-Editors. Egal ob FXGraph/FXML oder Code - dort hilft er dir nicht. Immerhin gibt es einen netten Helfer für Getter/Setter/Property für POJOs, die auf Properties beruhen.


----------



## I.E. (1. Jun 2017)

Erstens - da steht tatsächlich XText! 

Zweitens - wenn man einfach ein JAVAFX-Projekt erstellt und dann gleich auf Finish drückt und nicht auf Next, wo man noch die Biblitotheken verwaltet kann, hat man gleich von Anfang an alles was man braucht. Also zb Content Assist in CSS-Files.


----------



## dzim (1. Jun 2017)

Naja, am Ende ist die Config dafür in den .*-Files zu finden:
Hier mal meine Konfig aus einem Maven-Projekt:
.classpath

```
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/classes" path="src/main/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="target/classes"/>
</classpath>
```

Und hier .project:

```
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>ORSO-2018 FX</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
        <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
    </natures>
</projectDescription>
```

Und du hast recht: xText, wie man sieht...
Das wichtige steht hier im .project: Sowohl die <nature> als auch der <builder> muss vorhanden sein.


----------

