1 package cayenne.tutorial.tapestry.pages; 2 3 import java.util.List ; 4 5 import org.apache.tapestry.IRequestCycle; 6 import org.apache.tapestry.event.PageEvent; 7 import org.objectstyle.cayenne.access.DataContext; 8 import org.objectstyle.cayenne.query.Ordering; 9 import org.objectstyle.cayenne.query.SelectQuery; 10 11 import cayenne.tutorial.tapestry.domain.Artist; 12 import cayenne.tutorial.tapestry.domain.Painting; 13 14 19 public abstract class BrowseArtistsPage extends ApplicationPage { 20 21 public abstract void setArtist(Artist value); 24 public abstract Artist getArtist(); 25 26 public abstract void setPainting(Painting value); 27 public abstract Painting getPainting(); 28 29 public abstract void setArtistList(List value); 30 public abstract List getArtistList(); 31 32 public boolean getIsOnDisplay() { 33 return (getPainting().getToGallery() != null); 34 } 35 36 public void addPaintingAction(IRequestCycle cycle) { 37 AddPaintingPage nextPage = (AddPaintingPage) cycle.getPage("AddPaintingPage"); 38 39 nextPage.setArtist(getArtist()); 40 41 cycle.activate(nextPage); 42 } 43 44 public void submitPaintingToGalleryAction(IRequestCycle cycle) { 45 ChooseGalleryPage nextPage = 46 (ChooseGalleryPage) cycle.getPage("ChooseGalleryPage"); 47 48 nextPage.setPainting(getPainting()); 49 cycle.activate(nextPage); 50 } 51 52 public void pageBeginRender(PageEvent event) { 53 if (getArtistList() == null) { 55 DataContext ctxt = getVisitDataContext(); 56 57 SelectQuery query = new SelectQuery(Artist.class); 58 59 query.addOrdering(new Ordering(Artist.ARTIST_NAME_PROPERTY, Ordering.ASC)); 62 63 query.addPrefetch(Artist.PAINTING_ARRAY_PROPERTY); 67 query.addPrefetch( 68 Artist.PAINTING_ARRAY_PROPERTY + "." + Painting.TO_GALLERY_PROPERTY); 69 70 setArtistList(ctxt.performQuery(query)); 71 } 72 } 73 } 74 | Popular Tags |