Java Getriebe

Java und NetBeans

Aus Alt mach Neu – ProjectConverter

Wir arbeiten bei uns in der „WZL Gear Toolbox“ mit der „Project API“ von NetBeans um verschiedene Simulationsansätze und -Programme einfacher verwalten zu können. Von Zeit zu Zeit kommt es dabei vor, dass sich die Programme oder die Konzepte der Simulationen ändern und wir neue Projekttypen definieren müssen und alte verwerfen. Je nach Alter der Programme haben sich beim Enduser allerdings mit der Zeit einige Projekte angesammelt, die er eigentlich gerne weiter nutzen würde. In vielen Fällen sind die einzugebenden Daten im alten wie im neuen Projekt gleich oder ähnlich. Ein Zahnrad zum Beispiel wird hat immer das Eingabedatum „Zähnezahl“.

Ändert sich die „Projekt-ID“ 1 eines Projektes nicht, so kann man sich ganz gut mit einem ProjectOpenedHook helfen, der alle notwendigen Änderungen an den Dateien vornimmt, bevor NetBeans das Projekt in der „Projects“ Liste anzeigt. Ändert sich die ID allerdings, tauchen die alten Projekte nicht im „Projekt öffnen“-Dialog der Anwendung auf. Bisher haben wir dies durch eine eigene „Import old project“-Action gelöst, die über eigene „ToolboxProjectConverter“ Implementierungen die notwendigen Änderungen durchgeführt hat. Seit NetBeans 8.1 ist dieser Umweg nicht mehr notwendig, denn im Modul „Base Project UI API“ gibt es jetzt einen ProjectConvertor.
Read More

Notes:

  1. Also der „type“, der in der „project.xml“ steht

Plattformwechsel auf NetBeans 8.1

Das NetBeans Team hat für die Version 8.1 der NetBeans Plattform ein paar „gemeine“ Änderungen an den Modulen und deren Abhängigkeiten gemacht. Zum einen sind dies Änderungen um die verschiedenen JRE-Profile aus Java8 besser berücksichtigen zu können und zum anderen sind es (denke ich) erste Vorbereitungen für die neue Modularität von Java 9.
Read More

Projektbezogene Context-Action

In NetBeans RCP Anwendungen in denen mit Projekten gearbeitet wird, ist die „Project API“ und „Project UI API“ unverzichtbar. Sie bieten die komplette Funktionalität, die man von Projekten in der NetBeans IDE kennt. Erweiterbare Nodes, Konfigurationsverwaltung, Abhängigkeiten und vieles mehr. Eine Fähigkeit dieser großartigen API durfte ich heute neu entdecken.

NetBeans kennt so genannte ContextActions. Dies sind Actions, die zum Beispiel in der Toolbar angezeigt werden und sich selber aktivieren, sobald im Lookup des aktivierten Node eine bestimmte Klasseninstanz vorhanden ist. Welche Klasse als „Trigger“ verwendet wird kann für jede Action einzeln eingestellt werden. Prima Sache. So kann man ein Toolbar Icon immer nur dann aktivieren, wenn die eigene TopComponent aktiv ist oder der Node des eigenen Datenobjekts.

Arbeitet man jetzt jedoch mit Projekten und möchte eine Action immer dann aktivieren, wenn ein bestimmtes Projekt oder ein bestimmter Projekttyp aktiv ist, funktioniert dieser Ansatz leider nicht. Read More