PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Schritt-für-Schritt"-Assistent mit SWT



Technaton
09-05-2005, 22:16
Hallo,

mir obliegt es seit letzter Woche, einen plattformunabhängigen Einrichtungsassistenten nach dem Muster der Installshield-Schritt-für-Schritt-Assistenten anzufertigen. Also, dachte ich mir, benutze ich doch SWT. :)

Allerdings fehlt mir der Ansatzpunkt dafür. Ich hatte mir überlegt, eine Factory zu basteln, die ein "halbfertiges" Fenster zurückgibt (also sprich die Weiter-/Abbrechen-Buttons, Titel, kurze Beschreibung, usw -- das, was also immer gleich bleibt), da hätte ich dann nur noch das wichtigste reinsetzen müssen (Progressbar, oder Pfadauswahl, was auch immer).

Meine Annahme lautet: Der Container für Elemente (Button, usw) heißt "Shell". Meine Factory gibt also eine Shell mit schon ein paar Sachen drin zurück.

Aaaaber ;) In den Tutorials habe ich folgenden Mainloop kennengelernt:

while(!shell.isDisposed()) {
if(!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();

Sprich also, wenn meine Shell weg ist, was sie nach meinem Ansatz ja zwangsläufig ist, wenn ein Benutzer auf "Weiter" klickt, dann ist auch die Anwendung zu Ende, und das soll ja nicht so sein.

Also wie regel ich das? :confused: Ist mein erstes mal in Sachen GUI...

Danke im Voraus!
Gruß,
Techl

peschmae
09-05-2005, 22:32
Wenn du mehrere Shells hättest hätte dies auch die negative Folge dass immer ein neues Fenster erstellt würde - dem fehlt eventuell der Fokus, etc.

Besser ists eine Shell zu verwenden und alle untenliegenden Widgets einfach in ein Parent-Container-Widget (Composite-Klasse) zu packen und dann je nach dem das durch ein anderes zu ersetzen.

MfG Peschmä

Technaton
09-05-2005, 22:57
Hm, und wie bzw. wo bringe ich diese Ereignisse/Abfragen (Wenn der Benutzer auf Weiter geklickt hat, neuer Container...) im Programmtext unter?

gaansch
10-05-2005, 00:46
Also ich würd die Aktionen als Listener anmelden. Dann kann man die Steuerlogik auslagern.

Technaton
10-05-2005, 09:15
Dankeschön ihr zwei!

Ich geh dann mal ans Planen :)

gaansch
10-05-2005, 13:24
Soll das ganze ein tool werden, was generell universell einsetzbar ist, oder für den speziallfall neu kompiliert wird?

Technaton
10-05-2005, 17:53
Das einzig universelle daran sind die Texte, die lade ich aus einer ASCII-Datei. Das Schema bleibt immer gleich, genauso wie die Elemente.

gaansch
10-05-2005, 18:18
ich würds mit ner Konfiguration über xml machen. Dann kannst du in der xml datei schön einstellen, welcher Text wann wo erscheint und hast ein vernünftiges schema. Vorteil ist, dass es zum lesen von xml ne reihe von fertigen sachen gibt. für ne ascii datei müsste man wieder nen parser schreiben, der einem die config daraus lädt.

Technaton
10-05-2005, 19:29
Das ist alles schon erledigt :) Mir gings einzig und allein um das Eventhandling, und das habe ich heute noch recht hübsch gelöst bekommen :)