Hi Pedro,

Here it is.

So, I basically move the question up or down the array.

   public void moveQuestionUp(QuestionBase question) {
       int idx = questions.indexOf(question);
       if (idx > 0) {
           questions.remove(question);
           questions.add(idx - 1, question);
       }
   }

I think that the listview is being redrawn in HTML but the matrix of
data underlying it (that I retrieve here in the main page)

List<List<QuestionBase>> rows =
QuestionProcessor.getQuestionMatrix(templateWebModel.getEntity().getQuestions(),true);

does not get refreshed. I think I need to find a way to reload the
data for the listview, from within my panel on a page.

Cheers,
Pieter




On Sun, Nov 15, 2009 at 12:14 AM, Pedro Santos <pedros...@gmail.com> wrote:
> Can you send the moveQuestionUp implementation?
>
> On Sat, Nov 14, 2009 at 9:03 PM, pieter claassen <pieter.claas...@gmail.com>
> wrote:
>>
>> I am trying to follow wicket in action advice P263 but
>>
>> I have a ListView in a ListView with a panel added to my inner
>> listview. On that panel, I have  an AjaxLink and I want to move items
>> in the order of the listview around. But to display them, I need to
>> refresh my "matrix". Nothing seems to work. Any tips or references.
>>
>> QuestionEditPanel.html
>> =================
>>        <wicket:extend>
>>            <div id="document">
>>                <span wicket:id="parent">
>>                    <div wicket:id="rows">
>>                        <span wicket:id="row">
>>                            <span wicket:id="question" />
>>                        </span>
>>                    </div>
>>                </span>
>>            </div>
>>        </wicket:extend>
>>
>> QuestionEditPanel.java
>> ==================
>>
>>        final WebMarkupContainer parent=new WebMarkupContainer("parent");
>>        add(parent);
>>        parent.setOutputMarkupId(true);
>>        List<List<QuestionBase>> rows =
>>
>> QuestionProcessor.getQuestionMatrix(templateWebModel.getEntity().getQuestions(),true);
>>        ListView rowslistview = new ListView("rows", rows) {
>>
>>           �...@override
>>            protected void populateItem(ListItem item) {
>>                List<QuestionBase> row = (List<QuestionBase>)
>> item.getModelObject();
>>                ListView rowlistview = new ListView("row", row) {
>>
>>                   �...@override
>>                    protected void populateItem(ListItem item) {
>>                        final QuestionBase question = (QuestionBase)
>> item.getModelObject();
>>                        item.setModel(new CompoundPropertyModel(question));
>>                        EditableQuestionPanel questionpanel=new
>> EditableQuestionPanel("question", new
>> QuestionBaseWebModel(question),templateWebModel,parent);
>>                        item.add(questionpanel);
>> ....
>>
>>
>> and then on my EditableQuestionPanel.java I have :
>>
>> AjaxLink up = new AjaxLink("up") {
>>
>>           �...@override
>>            public void onClick(AjaxRequestTarget target) {
>>                target.addComponent(parent);
>>                Template template = templatemodel.getEntity();
>>                template.moveQuestionUp(question);
>>                tf.store(template);
>>            }
>>        };
>> --
>> Pieter Claassen
>> musmato.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>
>
>
> --
> Pedro Henrique Oliveira dos Santos
>

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

Reply via email to