Home › Forum › Nuclos Entwicklung › Plugins › Eigene Dialoge erzeugen
- Dieses Thema hat 2 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 12 Jahren, 1 Monat von
Ramin Goettlich.
-
AutorBeiträge
-
6 Oktober 2010 um 19:17 Uhr #2606
Carsten Hof
TeilnehmerHallo,
wir möchten Anforderungen umsetzen, welche das Erstellen eigener GUI-Masken und Menüs erfordern. Als Beispiel sei hier folgendes genannt:
1. Der Benutzer wählt im Menü „XY-Daten importieren“. (Hierzu brauchen wir ein Menuitem, natürlich könnte man die Operation auch auf einem Layout einer Entität platzieren, das passt jedoch nicht sehr gut.)
2. Der Benutzer wählt per FileChooser eine Excel-Datei aus.
3. Die Excel-Datei wird importiert, der Inhalt in der DB gespeichert.
4. Daraufhin sieht der Benutzer einen Dialog. In diesem Dialog werden links die XY-Daten aus der Excel-Datei angezeigt, rechts andere Daten aus der Datenbank.
5. Der Benutzer führt bestimmte Operationen auf den Daten durch (hier brauchen wir alle Freiheiten der GUI-Programmierung).
6. Nachdem der Benutzer ok drückt, werden nochmals Daten in die Datenbank geschrieben.In Bezug auf die Inhalte der Dialoge war in anderen Threads vom Überschreiben von CollectControllern die Rede. Würde dies bedeuten, dass wir den Client Code verändern würden und somit nicht mehr Update-kompatibel wären? Oder lässt sich ein derart veränderter Controller irgendwo registrieren?
Haben Sie Vergleichbares schon durchgeführt, können Sie eine Vorgehensweise für das Einbinden solcher individueller Masken empfehlen? Oder gibt es womöglich Beispiele?
Viele Grüße,
GP-
Dieses Thema wurde geändert vor 5 Jahren, 2 Monaten von
caf.
14 Oktober 2011 um 14:17 Uhr #4236Jonas Groß
TeilnehmerHallo,
auch unsere Firma möchte eigene Dialoge bei gewissen Geschäftsregeln öffnen. In den Bibliotheksregeln kann man swing & awt angeben und auch kompilieren lassen. Allerdings kommt es zu keiner Anzeige.
Wie kann man z.B. einen FileDialog, JTree, JSlider, etc. anzeigen?MfG
Jonas
19 Oktober 2011 um 10:39 Uhr #4254Ramin Goettlich
TeilnehmerHallo Jonas,
das geht in der heutigen Version von Nuclos noch nicht. Geschäftsregeln laufen serverseitig und können nicht mit dem Anwender kommunizieren. Theoretisch wäre das zwar denkbar, aber in der Praxis würde das eine Vielzahl von Fragen aufwerfen, insbesondere: Was macht man dann mit der Transaktion?
Eine Geschäftsregel läuft immer innerhalb einer Transaktion (gemeinsam mit dem auslösenden Ereignis, z.B. dem Speichern des Datensatzes). Dies ist wichtig, damit man in einer Geschäftsregel die Möglichkeit hat, bei Prüfungen (z.B. nicht erfolgreiche Validierung, weil der Benutzer falsche Eingaben gemacht hat), zurückzurollen, ohne zu speichern.
Eine Kommunikation mit dem Anwender würde nun also ebenfalls innerhalb der Transaktion stattfinden, womit wir die Kontrolle über die Dauer von Transaktionen verlieren würden. Transaktionen sollten immer so kurz wie möglich dauern, was nicht mehr gegeben ist, wenn ein Anwender mit einbezogen wird (man stelle sich vor, der Anwender geht Mittagessen während der Dialog auf eine Antwort wartet). Dies würde zu Timeouts der Transaktion führen, würde Inhalte auf der Datenbank sperren, und die Skalierbarkeit von Nuclos gefährden.
Bis wir hier einen sinnvollen Ansatz gefunden haben, müssen Sie eventuelle Rückfragen an den User, die während einer Geschäftsregel erforderlich werden, vorverlagern, d.h. sie z.B. in Form von Flags auf der Maske abbilden, die der User vor dem Speichern anklickt, um der Geschäftsregel auf diese Weise zusätzliche Informationen mitzugeben.
Natürlich liesse sich immer auch der CollectController überschreiben, um das Verhalten des Speichernbuttons so zu modifizieren, dass eine Rückfrage erfolgt, bevor die Übertragung der Daten an den Server beginnt.
Grüsse,
nuclosian -
Dieses Thema wurde geändert vor 5 Jahren, 2 Monaten von
-
AutorBeiträge