/* Movie Billboard program for use in TDT4240
*/
import java.lang.InterruptedException;
/**
* Main class: fetches data and updates the displays
*/
class MovieInfoSource
{
private Movie lastMovie;
private MovieStream source;
private Billboard simple;
private Billboard large; // Added for 1a.
private Billboard nova; // Added for 1b.
private Window question; // Added for 1c.
/**
* Constructor, initialises a moviestream, a simple billboard and then hands
* control over to showMovieInfo method
*
* @param fileName Name of the file that contains movie information
*/
public MovieInfoSource(String fileName)
{
source = new FakeMovieStream(fileName);
question = new Window("Choose billboards", 1, 1);
if(question.askYesNo("Do you want to enable SimpleBillboard?")) {
simple = new SimpleBillboard(true);
} else {
simple = new SimpleBillboard(false);
}
if(question.askYesNo("Do you want to enable LargeBillboard?")) {
large = new LargeBillboard(true);
} else {
large = new LargeBillboard(false);
}
if(question.askYesNo("Do you want to enable NovaBillboard?")) {
nova = new NovaBillboard(true);
} else {
nova = new NovaBillboard(false);
}
// TODO: Shouldnt be created if they are not gonna be displayed.
// simple = new SimpleBillboard();
// large = new LargeBillboard(); // Added for 1a.
// nova = new NovaBillboard(true); // Added for 1b.
showMovieInfo();
}
public void chooseBillboards() {
question = new Window("Choose billboards", 400, 100);
}
/**
* Method contains an infinite loop that gets a new Movie object and then instructs a
* window to show this information
*/
public void showMovieInfo()
{
boolean done = false;
while( !done )
{
lastMovie = source.getMovie();
if(simple.getIsEnabled())
simple.showNextMovie(lastMovie);
if(large.getIsEnabled())
large.showNextMovie(lastMovie); // Added for 1a.
if(nova.getIsEnabled())
nova.showNextMovie(lastMovie); // Added for 1b.
}
}
};