View Javadoc

1   package org.musicontroller.gui;
2   
3   import java.util.List;
4   
5   import org.apache.tapestry.IExternalPage;
6   import org.apache.tapestry.IRequestCycle;
7   import org.apache.tapestry.event.PageDetachListener;
8   import org.apache.tapestry.event.PageEvent;
9   import org.apache.tapestry.html.BasePage;
10  import org.musicontroller.core.Band;
11  import org.musicontroller.core.Playlist;
12  import org.musicontroller.service.McService;
13  
14  public abstract class BandInfo extends BasePage implements IExternalPage, PageDetachListener {
15  	public abstract long getBandId();
16  	public abstract void setBandId(long id);
17  
18  	public abstract McService getMcService();
19  	
20  	public Playlist getSonglist() {
21  		return getMcService().getSongsByBand(getBand());
22  	}
23  	
24  	private Band _band;
25  	
26  	public Band getBand() {
27  		if(_band==null) {
28  			_band = getMcService().getBandById(getBandId());
29  		}
30  		return _band;
31  	}
32  	
33  	public String getName() {
34  		return getBand().getName();
35  	}
36  	
37  	public List<Playlist> getPlaylists() {
38  		return getMcService().getBandPlaylists(getBand());
39  	}
40  	
41  	public void activateExternalPage(Object[] args, IRequestCycle cycle) {
42  		long bandid = (Long) args[0];
43  		setBandId(bandid);
44  	}
45  
46  	/**
47  	 * Remove the value of the _band page variable after the
48  	 * page was rendered.
49  	 * @param ev The Page event triggering this call.
50  	 */
51  	public void pageDetached(PageEvent ev) {
52  		_band = null;
53  	}
54  }