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
48
49
50
51 public void pageDetached(PageEvent ev) {
52 _band = null;
53 }
54 }