Hi,

I'm trying to display a DefaultNestedTree (id="dataTreeView") within a 
Bootstrap Modal<Service>

Instances of Service contain an ID that I use for retrieving a recursive data 
structure from database.
The recursive structure is realized by instances of "RecursiveData" .
See line 15 and method onModelChanged(). 
RecursiveData contains self referencing properties "parent" and "children"

00 import com.example.Service
00
01 public class DataViewDialog extends Modal<Service>
02 {
03     private static final long serialVersionUID = 7766394608644043929L;
04 
05     @SpringBean
06     private RecursiveDataBean dataBean;
07     
08     private RecursiveDataTreeProvider treeProvider;
09 
10     public DataViewDialog(String id, IModel<Service> model)
11     {
12         super(id, model);
13         
14         Service service = model.getObject();
15         List<RecursiveData> data = 
dataBean.getRootDataByServiceId(service.getServiceId());
16         
17         BootstrapForm<Void> form = new BootstrapForm<>("form");
18         add(form);
19 
20         treeProvider = new RecursiveDataTreeProvider(data);
21         
22         DefaultNestedTree<RecursiveData> tree =
23                 new DefaultNestedTree<RecursiveData>("dataTreeView"
24                         , treeProvider)
25                 {
26                     private static final long serialVersionUID = 
-7659715973883984412L;
27 
28                     @Override
29                     protected Component newContentComponent(String id1
30                             , IModel<RecursiveData> node)
31                     {
32                         return super.newContentComponent(id1, node);
33                     }
34                 };
35                 
36         form.add(tree);
37 
38         BootstrapAjaxButton close = new BootstrapAjaxButton("close"
39                 , Model.of("schließen"), Buttons.Type.Primary)
40         {
41             private static final long serialVersionUID = 
7877084020329862442L;
42 
43             @Override
44             protected void onSubmit(AjaxRequestTarget target, Form<?> form)
45             {
46                 super.onSubmit(target, form);
47                 appendCloseDialogJavaScript(target);
48             }
49         };
50         form.add(close);
51     }
52 
53     @Override
54     protected void onModelChanged()
55     {
56         super.onModelChanged();
57         String serviceId = getModel().getObject().getServiceId();
58         List<RecursiveData> newDataList = 
dataBean.getRootDataByServiceId(serviceId);
59         treeProvider.setRecursiveData(newDataList);
60     }
61 }

I know from debugging that my implementation of ITreeProvider<RecursiveData> is 
working well,
also after execution of "onModelChanged()".

But when the tree is rendered, this error occurs:

org.apache.wicket.WicketRuntimeException: Property could not be resolved for 
class: class  com.example.Service  expression: dataTreeView
     at 
org.apache.wicket.core.util.lang.PropertyResolver.getGetAndSet(PropertyResolver.java:393)
     at 
org.apache.wicket.core.util.lang.PropertyResolver.getObjectWithGetAndSet(PropertyResolver.java:355)
     at 
org.apache.wicket.core.util.lang.PropertyResolver.getObjectWithGetAndSet(PropertyResolver.java:261)
     at 
org.apache.wicket.core.util.lang.PropertyResolver.getValue(PropertyResolver.java:111)
     at 
org.apache.wicket.model.AbstractPropertyModel.getObject(AbstractPropertyModel.java:86)
     at 
org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree.getModelObject(AbstractTree.java:161)
     at 
org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree.getState(AbstractTree.java:240)
     at 
org.apache.wicket.extensions.markup.html.repeater.tree.nested.Subtree.isVisible(Subtree.java:136)

Why does Wicket try to resolve a property that doesn't exist within "Service" ?

I've tried a version without a BootstrapForm within the Modal, where 
"dataTreeView" is attached to the Modal directly. Same problem.

Mit freundlichen Grüßen
Ulrich Knaack

Landesamt für Geoinformation und Landesvermessung Niedersachsen (LGLN)
- Landesvermessung und Geobasisinformation - Landesbetrieb -
Fachgebiet 224 - Geodateninfrastruktur
Podbielskistraße 331, 30659 Hannover
Tel.:    +49 511 64609-287
Fax:     +49 511 64609-161
mailto:[email protected]
www.lgln.niedersachsen.de


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to