1 package org.musicontroller.gui; 2 3 import java.util.List; 4 5 import org.apache.log4j.Logger; 6 import org.apache.tapestry.IExternalPage; 7 import org.apache.tapestry.IRequestCycle; 8 import org.apache.tapestry.event.PageBeginRenderListener; 9 import org.apache.tapestry.event.PageEndRenderListener; 10 import org.apache.tapestry.event.PageEvent; 11 import org.apache.tapestry.html.BasePage; 12 import org.musicontroller.core.AIBag; 13 import org.musicontroller.core.AIRelation; 14 import org.musicontroller.core.Artist; 15 import org.musicontroller.dao.Dao; 16 import org.musicontroller.security.User; 17 import org.musicontroller.service.McService; 18 import org.varienaja.util.DateTools; 19 20 public abstract class ArtistInfo extends BasePage implements IExternalPage { 21 22 public abstract Dao getDao(); 23 public abstract Long getArtistId(); 24 public abstract void setArtistId(Long id); 25 26 public abstract User getUser(); 27 28 public Artist _artist; 29 30 public abstract McService getMcService(); 31 32 public ArtistInfo() { 33 super(); 34 addPageBeginRenderListener( 35 new PageBeginRenderListener() { 36 public void pageBeginRender(PageEvent e) { 37 _artist = null; 38 } 39 } 40 ); 41 42 this.addPageEndRenderListener( 43 new PageEndRenderListener() { 44 public void pageEndRender(PageEvent e) { 45 _artist = null; 46 } 47 } 48 ); 49 } 50 51 public void activateExternalPage(Object[] args, IRequestCycle cycle) { 52 Long artistid = (Long) args[0]; 53 setArtistId(artistid); 54 } 55 56 public Artist getArtist() { 57 if (_artist==null) { 58 _artist = getMcService().getArtistById(getArtistId()); 59 } 60 return _artist; 61 } 62 63 public String getInserted() { 64 return DateTools.formatTimestamp(getArtist().getInserted()); 65 } 66 67 public List<AIRelation> getAIRelations() { 68 AIBag bag = getDao().getArtistAppearances(getArtistId()); 69 return bag.getRelations(); 70 } 71 }