Wolf-Dieter Roth Selbstständig

yEd ist der Visio-Ersatz für Linux und MacOS. Im letzten Heft haben wir den Grafikerzeuger betrachtet, der das Programmieren von Diagrammen in Java erlaubt. yFiles kann auch für Interaktivität sorgen und den User im Umgang mit dem Chart leiten.

yEd ist der Visio-Ersatz für Linux und macOS. Im letzten Heft haben wir den Grafikerzeuger betrachtet, der das Programmieren von Diagrammen in Java erlaubt. yFiles kann auch für Interaktivität sorgen und den User im Umgang mit dem Chart leiten.

Zur Erinnerung: yFiles ist eine Java-Bibliothek für Diagrammprogrammierer. Sie erspart uns, mit GDI herumzuspielen und Diagrammklassen zu erzeugen. yFiles bildet Diagramme mit GraphComponent am Bildschirm ab.

Im letzten Heft habe ich die Infrastruktur mit einer Klasse namens SUSExample erzeugt (Listing 1).

public class SUSExample {
  private GraphComponent graphComponent;

  public SUSExample(String title) {
    JFrame frame = new JFrame(title);
    . . .
    graphComponent = new GraphComponent();
    frame.add(graphComponent, BorderLayout.CENTER);
    . . .
  }

main ruft mit EventQueue.invokeLater initialize() auf. Die Funktion baut dann das eigentliche Diagramm aus Einzelobjekten zusammen. Wer Graphendatenstrukturen kennt, versteht das API schnell.

Interaktiver Helfer

Am Ende des letzten Texts war unser Diagramm am Bildschirm zu sehen. Passiert ist bis dato noch nicht viel. Wir hatten bisher keine Interaktionslogik angemeldet. Wir ergänzen nun initialize() um einen Aufruf der Funktion setInputMode, die ein IInputMode-Objekt annimmt:

private void initialize() {
    . . .
    graphComponent.setInputMode(new GraphEditorInputMode());
}

yFiles schreibt die Klasse GraphEditorInputMode als Standardverhalten vor. Wenn wir sie in eine GraphComponent einfügen, entsteht ein Diagramm mit Interaktivität. Wir starten unser Programm und klicken eins der Diagrammelemente an. yFiles zeigt die von yEd bekannten Vergrößerungselemente an. Die einzelnen Teile lassen sich via Drag and Drop über den Bildschirm verschieben. Dabei deaktivieren wir unser im letzten Heft angelegtes Layout, das nicht mehr aktiviert wird, wenn wir ein Element am Bildschirm verschieben. Anschließend finden wir einige nützliche yEd-Funktionen wieder: Via F2 lässt sich der Text, der in einem Element angezeigt wird, verändern.

Den Eingabespielraum des Benutzers einschränken

Legen Sie eine GraphEditorInputMode-Klasse an. Auf diese Weise darf der Benutzer mit dem Diagramm machen, was er möchte. Ein Doppelklick in den leeren Hintergrund erzeugt einen neuen Node. Er verhält sich entsprechend der von initialize angelegten Elemente.

GraphComponent ist ein Canvas Control und hat deshalb einige Ereignisbearbeiter im Gepäck. Wir können mit Mausereignissen Interaktionen zusammenbauen, wenn wir Ereignismethoden anmelden und die ankommenden Klicks auswerten. yFiles lebt davon, uns Arbeit abzunehmen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 12.18 - "Event Storming"

Alle Infos zum Heft
579863998Diagramme mit yFiles for Java interaktiv bearbeiten
X
- Gib Deinen Standort ein -
- or -