Re: Swing Komponenten durch den Anwender editiert



Ok, wie immer sollte ich mehr Hintergrund bei
den Fragen mitgeben.

Wir pflegen/erweitern eine bestehende Swing Rich Client
Applikation. Der Client hält an einigen Stellen recht
umfangreiche Daten. Um Dateninkonsistenz im Client
zu verhindern wird das Öffnen einiger Fenster verboten,
wenn schon offene Fenster die gleichen Daten verwenden
oder referenzieren. Also ein sehr konservativer Ansatz,
zu konservativ für die Anwender. Sie möchten natürlich
frei navigieren können und nur gelegentlich aufgefordert
werden, die editierten Daten zu speichern.

Heute sehr schön zu sehen in Frameworks wie Eclipse.
Aber meine Anwendung stammt noch aus AWT Zeiten
und es gab leider andere Prioritäten zu erledigen.

Es geht also darum etwas ähnliches wie zu implementieren,
wie es Eclipse mit Resource Changes macht. Ein
globaler Notification Manager, den Windows benachrichtigen
können und worauf andere Windows reagieren.

Z.B. beim Öffnen eines neuen Windows darauf aufmerksam
machen, dass zuerst in schon offenen Windows editierte
Daten gespeichert werden müssen oder das neue Window
auf Daten nur lesenden Zugriff bekommt.

Bisher unterstützen die Windows weder Memento, noch Undo.
Im ersten Schritt möchte ich Ihnen beibringen, wenigsten einen
dirty Zustand durch editieren mitzuteilen.

Und nun zum Kommentar von Uwe. Jedes erste Editieren des
Anwenders im Window soll den Event auslösen.

Für alle JComponents habe ich zum Glück eine Zwischenschicht,
so dass niemals direkt die Sun Klassen instanziiert werden. In
dieser Zwischenschicht möchte ich dies möglichst abhandeln.

Momentan plane ich folgendermaßen vorzugehen.

Die top level Klassen JFrame/JDialog implementieren ein
Interface IDirty (set/get auf boolean). Sie haben sich als
Emitter und Listener bei einem globalen Notification Manager
angemeldet.

Die Komponenten im Window überwachen und finden
Werteänderungen heraus, die direkt durch den Anwender
verursacht wurden (s. meinen anderen Beitrag). Es
wird die Parent Container Hierarchie iteriert, bis ein
IDirty gefunden und gesetzt werden kann. Das Window
schickt die globale Notification und benachrichtigt
andere (und sich selbst). Die Notification ist vetoable
und kann von Listenern zurückgewiesen werden.
Eine Message Box oder andere Aktionen können
daraus resultieren.

Ich bin gerade erst am Anfang des Designs und
versuche mich an Eclipse zu orientieren.

Gruß
Wolfgang R.


















.



Relevant Pages

  • StarTeam plug-in for Eclipse is awfully slow
    ... for our current JAVA project we use Eclipse 2.1.2 and a stand-alone StarTeam ... client for Windows. ... developer workstations are Pentium4 2.4 GHz with 1 MB RAM and Windows XP ...
    (comp.lang.java.softwaretools)
  • RE: Printing from Win9x clients stops
    ... Open Server Management. ... then right-click the name of the computer running Windows Small Business ... >From the client computer: ... The Select Network Component Type ...
    (microsoft.public.windows.server.sbs)
  • RE: Fax service on W2003Sbs - client dont send fax
    ... follow the steps to Update the Windows Small Business Server ClientApps ... Please paste the full content of the file to the Newsgroup. ... Microsoft CSS Online Newsgroup Support ... >the same day I do a system restore to monday;-) and client can send fax. ...
    (microsoft.public.windows.server.sbs)
  • Re: after installing KB011829 OWA is not working anymore
    ... Based on my research, after you install hotfix KB911829, I suggest we ... Profile WMI Provider to each client computer that is running Windows Vista ... If you are running the Premium Edition of Windows Small Business Server ...
    (microsoft.public.exchange.connectivity)
  • Re: [opensuse] best file distribution technology for my case?
    ... It must be accessible from Windows linearly, ... It must be accessible from Linux randomly, with no client side ... in HTTP header and charset conversion is done automatically; ... users may not be to happy if it the server collapses under the load. ...
    (SuSE)