/* 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. } } };