Suche
JavaScript und NetBeans

NetBeans via JavaScript erweitern – mit der Blueprint-Infrastruktur von ProjektMotor

Geertjan Wielenga

JavaScript-Entwickler, die mit der NetBeans IDE arbeiten und diese erweitern wollen, müssen Java beherrschen – was manchmal ein Problem ist. Geertjan Wielenga, Produktmanager der NetBeans IDE, erläutert, wie sich mit der Blueprint-Infrastruktur des Control-Space-Projekts der Entwicklerfirma ProjektMotor dieses Problem überwinden lässt.

Beginnen wir mit einem Beispiel: Man möchte die NetBeans IDE erweitern, um Code Completion für Oracle JET Komponenten nutzen zu können, etwa für ein Gauge. Das ist schon für Java-Entwickler keine leichte Aufgabe, aber man stelle sich erst die Schwierigkeiten vor, die JavaScript-Entwicklern gestellt sind. Ohne Java-Kenntnisse ist es schlicht unmöglich, die verschiedenen NetBeans APIs zu implementieren.

blueprint-ojet-1

Damit nicht genug. Dass mir ein simples Code Template nicht genügt,  ich vielmehr ein dialoggesteuertes Set von GUI-Komponenten (wie die weiter unten) benötige, macht es mir ebenfalls nicht einfacher, die NetBeans IDE zu erweitern.

blueprint-ojet-2

Vor diesem Hintergrund dürfte klar werden, was für eine Bereicherung das „Control-Space“ getaufte Vorhaben darstellt, an dem ProjektMotor aus Leibzig gerade arbeitet. Das Projekt stellt eine Blueprint-Infrastruktur zur Verfügung, mit der JavaScript-Entwickler sowohl die Code Completion als auch die oben abgebildeten GUI-Komponenten in JavaScript definieren können, wie hier zu sehen:

blueprint-ojet-3

Die Abbildung zeigt ein Control-Space Blueprint, das die Code Completion in einer HTML-Datei kompiliert, um eine weitere HTML-Datei namens gauge.html zu laden. Diese wiederum soll, nachdem der Dialog abgelaufen ist, in die HTML-Datei an der Position des Cursors eingefügt werden. Außerdem wurde Support für die Erzeugung der korrespondierenden JavaScript-Seite ergänzt. Im Grunde handelt es sich um eine JavaScript DSL auf dem Rücken der zugehörigen NetBeans APIs, die natürlich alle in Java geschrieben sind.

Zusätzlich zu den Code-Completion-Extensions lassen sich mit JavaScript in ähnlicher Weise neue Nodes innerhalb eines Blueprint Explorer-Fensters definieren. Ein Klick genügt, um dieses dann für verschiedenste Dinge zu nutzen, z.B. um Fenster oder Editoren zu öffnen oder um ein Boilerplate HTML aufzusetzen. Alles komplett in JavaScript.

blueprint-ojet-4

Ein weiteres Beispiel sind Blueprints, mit denen sich Menüs aus der Hauptmenüleiste der NetBeans IDE entfernen lassen. So können JavaScript-Entwickler ihre Entwicklungsumgebung gewissermaßen im Vorbeigehen anpassen:

blueprint-ojet-5

In einer dritten Variante wird ein Blueprint für das Testen eines anderen Blueprints verwendet. Auch hier kommt JavaScript zum Einsatz.

Was kommt als nächstes? Der Vorstellung sind keine Grenzen gesetzt; denkbar wären Blueprints zur Festlegung von Hints und Error Markings im JavaScript-Editor – ausgedrückt in JavaScript. Denkbar wäre außerdem, dass Entwickler in die Lage versetzt werden, ihre Eclipse-Arbeitsumgebung in NetBeans via JavaScript zu definieren. D.h. prinzipiell ist alles, was man mit einem via Java erweiterten NetBeans anstellen könnte, nun auch in JavaScript durchführbar – immer vorausgesetzt, die maßgeblichen Abstraktionen wurden vorher erzeugt.

Jetzt stelle man sich noch einen Blueprint-Marktplatz dazu vor, auf dem JavaScript-Entwickler ihre Blueprints teilen oder verkaufen können. Man bedenke die Möglichkeiten! Die NetBeans IDE lässt sich so im Prinzip beliebig kostümieren, je nachdem wie sie vom Blueprint definiert wird.

Hört sich doch ganz interessant an, oder?

Geschrieben von
Geertjan Wielenga
Geertjan Wielenga
Geertjan Wielenga ist Product Manager der NetBeans IDE und lebt in Amsterdam. Er ist enthusiastischer Java-Nutzer, Evangelist, Trainer, Sprecher und Autor über Java, NetBeans und verwandte Themen.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.