Just bind the textfields to the selectedNode, then they are always up-to-date.
BTW a LDM helps if #getNodesStorage() is an expensive call:

    Form form = new Form(NODE_FORM_ID);
        addOrReplace(form);

final IModel<List<Node>> nodeStorage = new LoadableDetachableModel<List<Node>> {
        public List<Node> load() {
            return nodeManager.getNodesStorage();
        }
    };

    if (!nodeStorage.getObject().isEmpty()) {
            Node defaultSelected = nodeStorage.getObject().get(0);
            this.selectedNode = defaultSelected;
            this.lastSelectedNode =  defaultSelected;
    }

form.add(new TextField<String>(NODE_TITLE_ID, new PropertyModel(this, "selectedNode.title")).setOutputMarkupId(true)); form.add(new TextField<String>(NODE_TEXT_ID, new PropertyModel(this, "selectedNode.text")).setOutputMarkupId(true));

nodeList = new ListChoice<Node>(NODES_LIST_ID, new PropertyModel<Node>(this, "selectedNode"), nodeStorage);
    nodeList.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        private static final long serialVersionUID = 2604279030812705608L;

        protected void onUpdate(AjaxRequestTarget target) {
            // nothing to do here
            onSelectionChanged();
            updateForm(target);
        }
    });
    nodeList.setOutputMarkupId(true);
    nodeList.setChoiceRenderer(new IChoiceRenderer<Node>() {
        private static final long serialVersionUID = -4490231471856685398L;

        @Override
        public Object getDisplayValue(Node node) {
            return node.getTitle();
        }

        @Override
        public String getIdValue(Node node, int i) {
            return String.valueOf(node.getId());
        }
    });
    form.add(nodeList);


On 12/12/2012 01:29 PM, Mandrake wrote:
Hi to all. I`m new to Apache wicket and i need your help. I wrote small
application but i cannot resolve one problem. Here is my code:

  Form form = new Form(NODE_FORM_ID);
         addOrReplace(form);

         List<Node> nodeStorage = nodeManager.getNodesStorage();
         if(!CollectionUtils.isEmpty(nodeStorage)) {
             Node defaultSelected = nodeStorage.get(0);
             this.selectedNode = defaultSelected;
             this.lastSelectedNode =  defaultSelected;
         }
         nodeTitle = new TextField<String>(NODE_TITLE_ID, new
Model(selectedNode.getTitle()), String.class);
         nodeTitle.setOutputMarkupId(true);
         form.add(nodeTitle);

         nodeText = new TextArea<String>(NODE_TEXT_ID, new
Model(selectedNode.getText()));
         nodeText.setType(String.class);
         nodeText.setOutputMarkupId(true);
         form.add(nodeText);

         nodeList = new ListChoice<Node>(NODES_LIST_ID, new
PropertyModel<Node>(this,  "selectedNode"), nodeManager.getNodesStorage());
         nodeList.add(new AjaxFormComponentUpdatingBehavior("onchange") {
             private static final long serialVersionUID =
2604279030812705608L;

             protected void onUpdate(AjaxRequestTarget target) {
                 *//
                 // How to get actual value of "nodeTitle" and  "nodeText"
                 //*
                 onSelectionChanged();
                 updateForm(target);
             }
         });
         nodeList.setOutputMarkupId(true);
         nodeList.setChoiceRenderer(new IChoiceRenderer<Node>() {
             private static final long serialVersionUID =
-4490231471856685398L;

             @Override
             public Object getDisplayValue(Node node) {
                 return node.getTitle();
             }

             @Override
             public String getIdValue(Node node, int i) {
                 return String.valueOf(node.getId());
             }
         });
         form.add(nodeList);

As i think, I must put to ajax request "nodeTitle" and "nodeText". But i
don`t know how to do that. Please help me!

P.S. Thanks to all responded! I hope you!



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/ListChoice-Ajax-tp4654732.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to