View Javadoc

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  }