SWT Wie legt man ein UI vom Programmcode her richtig an?

alloisxp

Mitglied
Hallo!

Ich baue gerade mit Java, Eclipse RCP (3.x) und SWT an einem UI herum.

Jetzt habe ich die Situation, dass quasi über ein Switch mehrere Varianten einer Shell aufgebaut werden müssen. (Je nachdem welcher Command Parameter übergeben wurde).

Habe leider mit UIs wenig Erfahrung. Wie baue ich daher soetwas richtig auf?

Angenommen ich würde jetzt Züge oder Autos in eine DB adden wollen kann es halt sein das ich komplett andere Input Felder, Buttons, Label etc. brauche... (auch von der Anzahl her etc.).
Per Context-Menü wähle ich aus welcher Command Parameter übergeben wird (z.B. zug, auto...)

Jetzt habe ich mir gedacht es wäre ja möglich für jeden CommandParameter quasi eine Methdoe ala:

populateShellForCra()
populateShellForTrain()
...

zu erstellen.

Dort jeweils dann den Dialog per Hand zu basteln, also so wie:

Code:
Label label = new Label(dialogShell, SWT.BORDER);
label.setText("Anzahl Wagons:");

oder

Code:
Label label = new Label(dialogShell, SWT.BORDER);
label.setText("Reifentyp:");

Scheint mir jetzt aber irgendwie ziemlich umständlich zu sein.

Gibt es einen übersichtlicheren Weg wie man derartige UIs mit SWT anlegt?

Viele Grüße
- alloisxp
 
Ich hab das früher immer so gemacht, das ich eine von Composite abgeleitete Klasse erstellt hat, die dann die entsprechende GUI beinhaltet. Mit dem WindowBuilder unter Eclipse geht das recht fix und ist dort der normale Weg - länger dauert dann nur, das ganze mit der Business-Logik zu verknüpfen (aber einen Controller zu schreiben dauert immer etwas länger).

Probiere den WindowBuilder mal aus...

BTW: Das es Eclipse RCP 3.x ist - hast du das entschieden, oder ist das eine Legacy-Anwendung?
Ich habe mich etwa vor einem Jahr mal an Eclipse e4 mit JavaFX versucht und - von ein paar Hürden abgesehen - es hat recht viel Spass gemacht. Langweilig/Nervig war der Aufbau des Frameworks, aber nachdem die Services definiert waren, ging es recht fix, neue UI als Plugins hinzuzufügen.
 
Viel Erfolg. Mir hat er sehr geholfen in die Thematik UI-Entwicklung reinzukommen - habe darauf basierend auch ein für ein ein-Mann-Projekt recht umfangreiches RCP-Tool aus dem Boden gestampft.

Versuche dich nur wenigstens grob an das MVC-Konzept zu halten, also trenne die UI-Schicht (V) von der Control-Schicht (C) - also z.B. die Raktion, die auf den Klick eines Button geschieht. Die Business-Logik (das dann das Modell (Daten) verändert wird), passiert natürlich in der Model-Schicht. Verdammtes Buzzword-Bingo... Trenne einfach die Aufgaben ordentlich 🙂
 

Neue Themen


Zurück
Oben