TOPIC: [nobug] Änderung an GuiPersistance oder Bug?
1 year 4 weeks ago #1223
Moin,

wurde an der GuiPersistance etwas geändert?

Die GUI kann vom User per Button gespeichert werden:

final BenutzerDAO bd = new BenutzerDAO();
final Benutzer b = bd.findUser(Authentication.getUser().name());

b.setPersistReporte(GuiPersistence.save(this.gridLayout, this.gridLayout.getClass().getName()));
bd.save(b);
bd.flush();


Und im InitUi der View, wird die GUI entsprechend geladen:
// find active user
final Benutzer benutzer = new BenutzerDAO().findUser(Authentication.getUser().name());
// get persistance string from user
final String viewData = benutzer.getPersistView();
 // load GUI with persistance string
GuiPersistence.load(this, this.getClass().getName(), viewData);

Das klappt auch alles gut bis auf das Laden der GUI selbst, seit neustem bekomme ich immer folgenden Fehler wenn die GUI aus dem String geladen werden soll.

Nov 17, 2017 8:37:30 AM com.xdev.ui.persistence.GuiPersister$Implementation lambda$1
INFORMATION: [GuiPersister.restoreState] Unused state: com.xdev.ui.XdevGridLayout

Ich würde mich über eine kurze Info freuen, da die Persistierung auf keiner View mehr klappt.

Danke und Gruß
Adriano
The administrator has disabled public write access.
1 year 4 weeks ago #1230
Hallo,
für XdevGridLayouts werden keine Infos persistert, also kein Status besitzt im normalfall je einen Eintrag für "com.xdev.ui.XdevGridLayout".
Ein Sonderfall ist, wenn das Rootelement wie hier in dem Beispiel ein GridLayout ist, denn das Rootelement wird immer erwähnt.

Im Beispiel wird der Status für all Kindkomponenten eines GridLayouts gespeichert, es dürfte in etwa so aussehen:
	{"states":{"com.xdev.ui.XdevGridLayout":{"name":"com.xdev.ui.XdevGridLayout","entries":{    [...]    }}}}

Geladen soll aber ein Status für eine View werden, es wird also so etwas ähnliches erwartet:
	{"states":{"com.company.example.ui.<MEINVIEWNAME>":{"name":"com.company.example.ui.<MEINVIEWNAME>","entries":{    [...]    }}}}
Der Persister erwartet beim Laden einfach nichts mit einem "State" für "com.xdev.ui.XdevGridLayout" und kann damit dann eben nichts anfangen.

RapidClipse Team
Last Edit: 1 year 4 weeks ago by RapidClipse Team.
The administrator has disabled public write access.
1 year 3 weeks ago #1236
Moin,

danke für die Erklärung. Ich war nur verwundert da es zuvor funktionierte.

Danke und Gruß
Adriano
The administrator has disabled public write access.