Skip to content

Commit

Permalink
No commit message
Browse files Browse the repository at this point in the history
  • Loading branch information
nino.martinez.wael committed Jun 8, 2010
1 parent 599ec4f commit e71c877
Show file tree
Hide file tree
Showing 6 changed files with 118 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import org.slurry.DataInitialiser;
import org.slurry.data.dao.interfaces.EventDao;
import org.slurry.data.dao.jpa.EventDaoJPAImp;
import org.slurry.pages.EventDetachableModel;
import org.slurry.pages.EventListDetachableModel;

import com.google.inject.AbstractModule;
import com.google.inject.Inject;
Expand Down Expand Up @@ -44,6 +46,9 @@ protected void configure() {
// dao stuff
bind(EventDao.class).to(EventDaoJPAImp.class);
bindConstant().annotatedWith(JpaUnit.class).to("myFirstJpaUnit");

bind(EventDetachableModel.class);
bind(EventListDetachableModel.class);
}

@Singleton
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public void delete(T object)
@Transactional
public T load(Serializable id)
{
em.get().flush();
return (T) em.get().find(domainClass, id);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,22 @@ public EventDaoJPAImp() {
@SuppressWarnings("unchecked")
@Transactional
public List<Event> findAll() {
em.get().flush();
Query query = em.get().createQuery("select e from Event e");
return query.getResultList();
}

@Transactional
public Event find(Long id) {
em.get().flush();
Query query = em.get().createQuery(
"select e from Event e where e.id =" + id );
return ((Event) query.getSingleResult());
}

@Transactional
public int countAll() {
em.get().flush();
Query query = em.get().createQuery("select count (e) from Event e");
return ((Long) query.getSingleResult()).intValue();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package org.slurry.pages;

import org.apache.wicket.model.LoadableDetachableModel;
import org.slurry.data.dao.interfaces.EventDao;
import org.slurry.data.dataobjects.Event;

import com.google.inject.Inject;

public class EventDetachableModel extends LoadableDetachableModel<Event> {
private EventDao eventDao;

private Long id=null;

public EventDetachableModel() {

}

public EventDetachableModel(Long id) {
this.setId(id);
}

@Override
protected Event load() {
if(id!=null)
{
return getEventDao().find(getId());
}
else {
return null;
}
}

public void setId(Long id) {
this.id = id;
}

public Long getId() {
return id;
}

@Inject
public void setEventDao(EventDao eventDao) {
this.eventDao = eventDao;
}

public EventDao getEventDao() {
return eventDao;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package org.slurry.pages;

import java.util.List;

import org.apache.wicket.injection.web.InjectorHolder;
import org.apache.wicket.model.LoadableDetachableModel;
import org.slurry.data.dao.interfaces.EventDao;
import org.slurry.data.dataobjects.Event;

import com.google.inject.Inject;

public class EventListDetachableModel extends LoadableDetachableModel<List<Event>> {
@Inject
private EventDao eventDao;

public EventListDetachableModel() {
InjectorHolder.getInjector().inject(this);
}

@Override
protected List<Event> load() {
return eventDao.findAll();
}

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package org.slurry.pages;

import java.util.List;

import org.apache.wicket.MarkupContainer;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.injection.web.InjectorHolder;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
Expand All @@ -16,7 +13,6 @@
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.PropertyModel;
import org.slurry.data.dao.interfaces.EventDao;
import org.slurry.data.dataobjects.Event;
Expand All @@ -30,24 +26,26 @@
public class EventPage extends WebPage {
@Inject
private EventDao eventDao;

private EventDetachableModel selectedEventModel;

private MarkupContainer eventLabel;

private MarkupContainer locationLabel;


private EventListDetachableModel eventListDetachableModel;

public EventPage(final PageParameters pp) {
forTestPurposeOnlyNeverDoThis();

Form<Event> eventForm = new Form<Event>("eventForm",
new CompoundPropertyModel<Event>(new Event()));
eventForm.add(new TextField<String>("title").setRequired(true));
eventForm.add(new TextField<String>("location").setRequired(true));

final WebMarkupContainer wmc = new WebMarkupContainer("listContainer");

wmc.add(new ListView<Event>("list", new EventListDetachableModel()) {
wmc.add(new ListView<Event>("list", getEventListDetachableModel()) {

private static final long serialVersionUID = 1L;

Expand All @@ -56,19 +54,20 @@ protected void populateItem(ListItem<Event> item) {
Event event = item.getModelObject();
item.add(new Label("eventName", event.getTitle()));
item.add(new Label("eventLocation", event.getLocation()));
final Long id=event.getId();
item.add(new AjaxLink<Event>("selectLink"){
final Long id = event.getId();
item.add(new AjaxLink<Event>("selectLink") {

@Override
public void onClick(AjaxRequestTarget arg0) {
selectedEventModel.setId(id);
getSelectedEventModel().setId(id);
arg0.addComponent(eventLabel);
arg0.addComponent(locationLabel);

}});

}
});
}
});

wmc.setOutputMarkupId(true);
add(wmc);

Expand All @@ -87,56 +86,37 @@ protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
});

add(eventForm);

eventLabel = add(new Label("eventName", new PropertyModel<Event>(selectedEventModel, "title")));

eventLabel = add(new Label("eventName", new PropertyModel<Event>(
getSelectedEventModel(), "title")));
eventLabel.setOutputMarkupPlaceholderTag(true);
locationLabel = add(new Label("eventLocation", new PropertyModel<Event>(selectedEventModel, "location")));
locationLabel = add(new Label("eventLocation",
new PropertyModel<Event>(getSelectedEventModel(), "location")));
locationLabel.setOutputMarkupPlaceholderTag(true);

}

private void forTestPurposeOnlyNeverDoThis() {
selectedEventModel=new EventDetachableModel(eventDao.findAll().get(0).getId());
getSelectedEventModel().setId(eventDao.findAll().get(0).getId());

}
public class EventDetachableModel extends LoadableDetachableModel<Event> {
private EventDao eventDao;

private Long id;
public EventDetachableModel(Long id) {
this.setId(id);
InjectorHolder.getInjector().inject(this);
}
@Override
protected Event load() {
return getEventDao().find(getId());
}
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
@Inject
public void setEventDao(EventDao eventDao) {
this.eventDao = eventDao;
}
public EventDao getEventDao() {
return eventDao;
}

@Inject
public void setSelectedEventModel(EventDetachableModel selectedEventModel) {
this.selectedEventModel = selectedEventModel;
}
public class EventListDetachableModel extends LoadableDetachableModel<List<Event>> {
@Inject
private EventDao eventDao;

public EventListDetachableModel() {
InjectorHolder.getInjector().inject(this);
}
public EventDetachableModel getSelectedEventModel() {
return selectedEventModel;
}

@Override
protected List<Event> load() {
return eventDao.findAll();
}
@Inject
public void setEventListDetachableModel(
EventListDetachableModel eventListDetachableModel) {
this.eventListDetachableModel = eventListDetachableModel;
}

public EventListDetachableModel getEventListDetachableModel() {
return eventListDetachableModel;
}
}

0 comments on commit e71c877

Please sign in to comment.