Ich möchte gern eine Auswahl von Objekten dem Benutzer zur Verfügung stellen, die er durch eine ComboBox auswählen kann (oberer Bereich im Bild, Objects). Nach der Auswahl öffnet sich ein für das ausgewählte Objekt ein spezifisches Fenster mit GUI-Komponenten, um Objekteigenschaften einzustellen (unterer Bereich, Objectproperties).
Bspw. wählt der Benutzer ein Object aus, öffnet sich ein anderes Fenster in dem er die Eigenschaften festlegen kann kann. Diese Eigenschaften sollten zur Laufzeit gespeichert werden und bei gewollten nachträglichen Änderungen müssen die vorher bestimmten Werte wieder geladen werden, damit der Benutzer nicht irritiert wird.
Szenario:
Der Benutzer wählt als erstes ein ObjectA aus der Auswahlliste
Das Programm öffnet ein Objectpropertiesfenster für das ObjectA
Der Benutzer gibt den Wert für die Eigenschaft gleich 5 ein und bestätigt seine Eingabe
Der Benutzer wählt als zweites ein ObjectB aus der Auswahlliste
Das Programm öffnet ein Objectpropertiesfenster für das ObjectB
Der Benutzer gibt die Werte im Objectpropertiesfenster ein und bestätigt seine Eingabe
Der Benutzer wählt als drittes ein ObjectC aus der Auswahlliste
Das Programm öffnet ein Objectpropertiesfenster für das ObjectC
Der Benutzer gibt Werte ein und bestätigt seine Eingabe
Der Benutzer öffnet erneut die ComboBox von ObjectA, um seine Einstellungen zu ändern.
Das Programm öffnet das Filtereigenschaftsfenster mit den vorher definierten Eingaben
Der Benutzer ändert die Filtergröße von dem Wert 5 auf den Wert 2 und bestätigt seine Eingabe
Meine Fragen:
Frage I: Ist die ComboBox eine gute Lösung für die Auswahl der verschiedenen Objekte oder gibt es eine andere UI-Komponenet, die dafür besser geeignet sind? Ich denke, dass es kein Problem sein sollte, wenn ein Object aus der ComboBox ausgewählt ist, das dafür festgelegte Operatorpropertiefenster in seinen Bereich zu zeichen. Allerdings wie sieht es aus, wenn schon vorher Eingaben stattfanden? Wird das Fenster neu gezeichnet und anschließend nachgeschaut, ob Werte dafür zwischengespeichert sind, um diese später in das Fenster zu laden?
Frage II: Wie mache ich das mit dem Zwischenspeichern? Die Objects in eine Collection und bei Gebrauch von schon vorher definierten Objects immer in die GUI laden?
Das wären meine Fragen und Lösungsansätze. Ich würde gern ein paar Vorschlage von euch hören, was die übliche herangehensweise ist um ein solches Problem zu lösen. Code poste ich später nach.
Im Anhang findet ihr ein Beispiel der GUI:
Bspw. wählt der Benutzer ein Object aus, öffnet sich ein anderes Fenster in dem er die Eigenschaften festlegen kann kann. Diese Eigenschaften sollten zur Laufzeit gespeichert werden und bei gewollten nachträglichen Änderungen müssen die vorher bestimmten Werte wieder geladen werden, damit der Benutzer nicht irritiert wird.
Szenario:
Der Benutzer wählt als erstes ein ObjectA aus der Auswahlliste
Das Programm öffnet ein Objectpropertiesfenster für das ObjectA
Der Benutzer gibt den Wert für die Eigenschaft gleich 5 ein und bestätigt seine Eingabe
Der Benutzer wählt als zweites ein ObjectB aus der Auswahlliste
Das Programm öffnet ein Objectpropertiesfenster für das ObjectB
Der Benutzer gibt die Werte im Objectpropertiesfenster ein und bestätigt seine Eingabe
Der Benutzer wählt als drittes ein ObjectC aus der Auswahlliste
Das Programm öffnet ein Objectpropertiesfenster für das ObjectC
Der Benutzer gibt Werte ein und bestätigt seine Eingabe
Der Benutzer öffnet erneut die ComboBox von ObjectA, um seine Einstellungen zu ändern.
Das Programm öffnet das Filtereigenschaftsfenster mit den vorher definierten Eingaben
Der Benutzer ändert die Filtergröße von dem Wert 5 auf den Wert 2 und bestätigt seine Eingabe
Meine Fragen:
Frage I: Ist die ComboBox eine gute Lösung für die Auswahl der verschiedenen Objekte oder gibt es eine andere UI-Komponenet, die dafür besser geeignet sind? Ich denke, dass es kein Problem sein sollte, wenn ein Object aus der ComboBox ausgewählt ist, das dafür festgelegte Operatorpropertiefenster in seinen Bereich zu zeichen. Allerdings wie sieht es aus, wenn schon vorher Eingaben stattfanden? Wird das Fenster neu gezeichnet und anschließend nachgeschaut, ob Werte dafür zwischengespeichert sind, um diese später in das Fenster zu laden?
Frage II: Wie mache ich das mit dem Zwischenspeichern? Die Objects in eine Collection und bei Gebrauch von schon vorher definierten Objects immer in die GUI laden?
Das wären meine Fragen und Lösungsansätze. Ich würde gern ein paar Vorschlage von euch hören, was die übliche herangehensweise ist um ein solches Problem zu lösen. Code poste ich später nach.
Im Anhang findet ihr ein Beispiel der GUI: