WorkScreen Modality

Allgemeine Fragen zur Entwicklung von und mit JVx.

WorkScreen Modality

Postby Gerhard » Wed Apr 23, 2014 11:17 am

Hallo!

Ich habe in meiner Applikation unter anderem 2 WorkScreens, die in einer "Master-Detail" Beziehung stehen. Sprich, man kann im Master-WorkScreen via Button-Klick den Detail-WorkScreen mit Details zum ausgewählten Master-Datensatz öffnen.
Geöffnet wird der Detail-WorkScreen via
Code: Select all
getApplication().openWorkScreen("DetailWorkScreenKlasse", Modality.WorkScreen, parameter);

So lange der Detail-WorkScreen geöffnet ist, sollte der Master-WorkScreen gesperrt sein.
Wenn man Modality auf Modal setze, wird aber der Detail-WorkScreen applikationsweit modal, was in diesem Fall nicht passt, da andere Bereiche der Applikation nicht gesperrt werden sollen.
Gibt es hierfür eine Unterstützung von JVX oder ist dieses Verhalten selbst zu implementieren?
Gerhard
 
Posts: 15
Joined: Tue Apr 22, 2014 5:14 pm

Re: WorkScreen Modality

Postby Support@SIB » Wed Apr 23, 2014 11:41 am

Die Modalität ist immer Applikationsweit. Wenn ein modales Fenster offen ist, kann kein anderes Element in der Applikation geklickt werden.

Sie wollen Desktop-Modal erreichen?

In JVx gibt es dafür keine Option, sprich das müssten Sie selbst umsetzen. Es ist allerdings nicht in allen Technologien ohne weiteres möglich. Mit swing ist die Modalität bereits vorgesehen und das Feature wäre relativ leicht umsetzbar. Mit Vaadin ist das sehr viel Aufwand, da Vaadin das selbst nicht vorsieht. Im Web sind modale Fenster üblicherweise über den ganzen Browser Modal. Bei Mobile ist keine spezielle Implementierung nötig.


Es ist aber immer zu hinterfragen ob Menüs und Toolbars "aktiviert" bleiben sollen solange ein modales Fenster offen ist. Unter umständen werden dadurch neue Fenster geöffnet und es kommt zu Problemen für Benutzer die dem Entwickler mehr Aufwand einbringen als nötig wäre.

Wie ist Ihr Anwendungsfall für die "Master-Detail" Beziehung zwischen den Fenstern?
User avatar
Support@SIB
 
Posts: 200
Joined: Mon Sep 28, 2009 1:56 pm

Re: WorkScreen Modality

Postby Support@SIB » Wed Apr 23, 2014 12:36 pm

Eventuell kann man mit folgendem Vorgehen eine Art "Modalität pro Bearbeitungsmaske" erreichen.

Man gibt die Master Ansicht und die Detail Ansicht jeweils in ein eigenes Panel (z.B. panMaster und panDetail)

Beim Öffnen des WorkScreens wird ganz normal das Master Panel geadded.

Code: Select all
add(panMaster, UIBorderLaout.CENTER);

Wenn ein Detail angezeigt werden soll, dann wird das Master Panel removed, und das Detail Panel geadded.

Code: Select all
remove(panMaster);
add(panDetail, UIBorderLayout.CENTER);

Bei Ok, oder Abbrechen wird wieder umgekehrt das Master Panel geadded und das Detail Panel removed.
User avatar
Support@SIB
 
Posts: 200
Joined: Mon Sep 28, 2009 1:56 pm

Re: WorkScreen Modality

Postby Gerhard » Tue Apr 29, 2014 1:28 pm

Ja, es handelt sich um eine Swing-Applikation.

Die Idee mit dem Panel entfernen und hinzufügen verfolge ich momentan bei der Detaildaten-Anzeige meines Trees, als Ersatz für ein CardPanel. Hier möchte ich abhängig von der Auswahl im Tree ein anderes Panel anzeigen.
Leider haut das noch nicht ganz korrekt hin, muss mir das aber noch genauer ansehen.
Gerhard
 
Posts: 15
Joined: Tue Apr 22, 2014 5:14 pm


Return to Entwicklung