View Javadoc

1   package org.musicontroller.gui;
2   
3   import org.apache.tapestry.IRequestCycle;
4   import org.apache.tapestry.html.BasePage;
5   import org.musicontroller.DJ;
6   import org.musicontroller.UserProperties;
7   import org.musicontroller.security.User;
8   import org.musicontroller.streaming.StreamMaster;
9   
10  /**
11   * This page allows the user to specify MusiController settings.
12   * @author deksels
13   * @version $Id: MyAccount.java,v 1.1 2010/03/16 18:55:42 varienaja Exp $
14   */
15  public abstract class MyAccount extends BasePage {
16  		
17  	public abstract User getUser();
18  	
19  	/**
20  	 * Answers the question "Does the candidate selector requested
21  	 * songs in order of receipt?" with "yes" or "no".
22  	 * @return "yes" or "no". Returns "no" if no user is logged on or
23  	 * 		   if there is no DJ.
24  	 */
25  	public String getRequestsPlayOrder() {
26  		User user = getUser(); 
27  		if(user==null) {
28  			return "no";
29  		}
30  		DJ dj = StreamMaster.getDJByUser(user.getId());
31  		if(dj==null) {
32  			return "no";
33  		}
34  		if(dj.getCandidateSelector().requestsPlayedInOrder()) {
35  			return "yes";
36  		} else {
37  			return "no";
38  		}
39  	}
40  	
41  	/**
42  	 * Instructs the candidate selector to play requested songs in
43  	 * order of receipt. Writes this setting to the users' property file.
44  	 * @param cycle The Tapestry MVC cycle.
45  	 */
46  	public void playRequestsInOrder(IRequestCycle cycle) {
47  		User user = getUser(); 
48  		if(user==null) {
49  			return;
50  		}
51  		DJ dj = StreamMaster.getDJByUser(user.getId());
52  		if(dj==null) {
53  			return;
54  		}
55  		dj.getCandidateSelector().playRequestsInOrder();
56  		UserProperties.setUserProperty(getUser(),UserProperties.CandidateselectorPlayorder.class.getName(),UserProperties.CandidateselectorPlayorder.INREQUESTORDER.toString());
57  	}
58  	
59  	/**
60  	 * Instructs the candidate selector to play the requested songs in
61  	 * (advanced) random order. Writes this setting to the users' property file. 
62  	 * @param cycle The Tapestry MVC cycle.
63  	 */
64  	public void playRequestsAtRandom(IRequestCycle cycle) {
65  		User user = getUser(); 
66  		if(user==null) {
67  			return;
68  		}
69  		DJ dj = StreamMaster.getDJByUser(user.getId());
70  		if(dj==null) {
71  			return;
72  		}
73  		dj.getCandidateSelector().playRequestsAtRandom();
74  		UserProperties.setUserProperty(getUser(),UserProperties.CandidateselectorPlayorder.class.getName(), UserProperties.CandidateselectorPlayorder.ATRANDOM.toString());
75  	}	
76  }