Well, my problem is more of an Ajax one (I think).
The database is changing.
I have a setter in my original Panel that is executed when the Modal is
pressed OK.
It stopped in the breakpoint.
I looked in the DB and saw the changes.
When pressing F5, I got the updated list.

So the problem is: how can I tell my Model (detachable) that there was
change in the database?
I also add the Panel (original) to the Ajax Target.

On Mon, Jun 23, 2008 at 4:08 PM, Martin Makundi <
[EMAIL PROTECTED]> wrote:

> Ok. I do not have experience with Modal windows in wicket, but do you
> actually repaint the original page to even reflect the changes?
>
> If you repaint it, and your model loads the data from DB, and the data
> still does not show the changes (try to use breakpoints and debugger
> to confirm this), you might have a problem with committing the changes
> to your DB.
>
> **
> Martin
>
> 2008/6/23 Eyal Golan <[EMAIL PROTECTED]>:
> > OK, I'll try to explain.
> > 1. I have a page that has a list of links.
> > 2. The list is taken from the database the sageDal.getPreference(..)
> method
> > that I showed.
> > 3. This list can be configured by the user.
> > 4. I made a Modal window that shows the user all available links (also
> taken
> > from the DB).
> > 5. When he selects the links he wants, he presses OK.
> > 6. Then I update the DB. The sageDal.setPreference(...) method.
> >
> > As for passing Objects.
> > I pass the model to the LinksPanel.
> > LinksPanel ha a ListView that uses a different AbstarctReadOnlyModel.
> >
> > So my problem is that when I set the DB with new values, I need to inform
> > the Model (in the original panel) somehow that the DB was changed.
> >
> > Eyal
> >
> > On Mon, Jun 23, 2008 at 3:26 PM, Martin Makundi <
> > [EMAIL PROTECTED]> wrote:
> >
> >> I did not quite follow nor grasp what you are trying to do...
> >>
> >> my only question is, are you using the same object instance on two
> >> different pages? That does not work (serialization breaks the
> >> connection).
> >>
> >> **
> >> Martin
> >>
> >> 2008/6/23 egolan74 <[EMAIL PROTECTED]>:
> >> >
> >> > Thanks Martin,
> >> > That really helped. Though I did something else and now I have a new
> >> > problem.
> >> > It's an Ajax problem now.
> >> >
> >> > Here's what I did:
> >> > In the constructor:
> >> >                idsModel = new LoadableDetachableModel() {
> >> >                        private static final long serialVersionUID =
> 1L;
> >> >
> >> >                        @Override
> >> >                        protected Object load() {
> >> >                                List<String> ids = new
> >> ArrayList<String>();
> >> >                                List<Property> properties =
> >> >
> >>  sageDal.getPreference(userId, SETTINGS_GROUP,
> >> >
> >>  HomePageSectionPanel.this.sectionId);
> >> >                                for (Property property : properties) {
> >> >                                        ids.add(property.getValue());
> >> >                                }
> >> >                                return ids;
> >> >                        }
> >> >
> >> >                };
> >> >
> >> >                linksPanel = new LinksPanel("links", idsModel);
> >> >
> >> > I am adding the ListView in LinksPanel:
> >> >        private void init(final List<LinkContainer> links) {
> >> >                add(new LinksListView("listview", new
> >> AbstractReadOnlyModel() {
> >> >                        private static final long serialVersionUID =
> 1L;
> >> >
> >> >                        @Override
> >> >                        public Object getObject() {
> >> >                                return links;
> >> >                        }
> >> >
> >> >                }));
> >> >        }
> >> > (I have a method that changes the String ids to the LinkContainer).
> >> >
> >> > My problem is when setting new list.
> >> > Here is my code:
> >> >        public void setLinksIds(List<String> linksIds) {
> >> >                sageDal.setPreference(userId, SETTINGS_GROUP,
> sectionId,
> >> > linksIds.toArray(new String[0]));
> >> >        }
> >> >
> >> > It works and I actually see the change in the database. When
> refreshing
> >> (or
> >> > checking in the DB) I see changes.
> >> >
> >> > BUT, it doesn't change automatically.
> >> > I use a ModalWindow and here's where I add my panel to the modal:
> >> >                setWindowClosedCallback(new
> >> ModalWindow.WindowClosedCallback() {
> >> >                        private static final long serialVersionUID =
> 1L;
> >> >
> >> >                        public void onClose(AjaxRequestTarget target) {
> >> >
>  target.addComponent(homePageSectionPanel);
> >> >                        }
> >> >                });
> >> >
> >> > I'm sure I need to add something else somewhere.
> >> > But what? and where ?
> >> >
> >> > Thanks,
> >> >
> >> > Eyal
> >> >
> >> > Martin Makundi wrote:
> >> >>
> >> >> Hi!
> >> >>
> >> >> Here is a good example of a list model:
> >> >>
> >> >> public abstract class AbstractListChoiceModel<S> extends
> >> >> AbstractReadOnlyModel<List<? extends S>> {
> >> >>   @Override
> >> >>   public final List<S> getObject() {
> >> >>     return getChoices();
> >> >>   }
> >> >>
> >> >>   public abstract List<S> getChoices();
> >> >> }
> >> >>
> >> >> Now change your code as follows:
> >> >>
> >> >> linksPanel = new LinksPanel("links", new
> >> AbstractListChoiceModel<String>()
> >> >> {
> >> >>  @Override
> >> >>  public List<String> getChoices() {
> >> >>    // Where did you get your choices in the first place?
> >> >>  }
> >> >> } );
> >> >>
> >> >>
> >> >
> >> >
> >> > -----
> >> > Eyal Golan
> >> > [EMAIL PROTECTED]
> >> >
> >> > Visit:  http://jvdrums.sourceforge.net/
> http://jvdrums.sourceforge.net/
> >> > LinkedIn:  http://www.linkedin.com/in/egolan74
> >> > href=http://www.linkedin.com/in/egolan74
> >> > --
> >> > View this message in context:
> >> http://www.nabble.com/Confused-tp18064846p18066913.html
> >> > Sent from the Wicket - User mailing list archive at Nabble.com.
> >> >
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> > For additional commands, e-mail: [EMAIL PROTECTED]
> >> >
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> >
> > --
> > Eyal Golan
> > [EMAIL PROTECTED]
> >
> > Visit: http://jvdrums.sourceforge.net/
> > LinkedIn: http://www.linkedin.com/in/egolan74
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Eyal Golan
[EMAIL PROTECTED]

Visit: http://jvdrums.sourceforge.net/
LinkedIn: http://www.linkedin.com/in/egolan74

Reply via email to