public void programStart() { Event event; EventHandler eventHandler; while (true) { try { event = this.eventsBlockingQueue.take(); eventHandler = eventHandlers.get(event.getEventName()); eventHandler.execute(); } catch (InterruptedException e) { e.printStackTrace(); } } }
private void loadHandlers() { eventHandlers.put( EventName.START, new EventHandler() { @Override public void execute() { view.initialize(); // model.initialize(); } }); /** * Wywolywane, gdy uzytkownik nacisnie przycisk "Okno danych" na oknie z wykresem Sluzy do tego, * aby mozna bylo zmodyfikowac parametry wejsciowe bez przechodzenia do kolejnego etapu. */ eventHandlers.put( EventName.EDYCJA_PARAMETROW_WEJSCIOWYCH, new EventHandler() { @Override public void execute() { view.setVisibleDataIn(true); view.setVisibleDataWindow(false); } }); /** * Tutaj wyliczany jest zbior punktow do narysowania wykresu i pokazuje sie okno DataWindow do * modyfikowania Parametrow decyzyjnych. */ eventHandlers.put( EventName.GENERACJA_DECYZJI, new EventHandler() { @Override public void execute() { view.readDataIn(); view.disableGoButton(); model.setDostepnaGotowka(view.getDostepnaGotowka()); model.zwiekszEtap(view.getDostepnaGotowka(), view.getKwotaKredytuDoSplaty()); view.setVisibleDataWindow(true); view.setVisibleDataIn(false); view.setVisibleInitalScreen(false); view.setListaPunktow(model.getEtap().getZbiorPunktow()); view.activeGoButton(); } }); /** Przejscie do kolejnego etapu wspomagania decyzji w grze. */ eventHandlers.put( EventName.KOLEJNY_ETAP, new EventHandler() { @Override public void execute() { view.setVisibleDataIn(true); view.setVisibleDataWindow(false); aktualnyEtap++; view.setEtap(aktualnyEtap); if (aktualnyEtap == Dane.liczbaEtapow) { view.setEditableKredyt(false); view.setKredytDoWziezcia(0); } } }); eventHandlers.put( EventName.WARTOSCI_SUGEROWANE, new EventHandler() { @Override public void execute() { ZestawParametrowDecyzyjnych parametry = model.getWartosciSugerowane(view.getRyzyko(), view.getZysk()); view.setWartosciParametrowDecyzyjnych(parametry); } }); eventHandlers.put( EventName.PIERWSZY_ETAP, new EventHandler() { @Override public void execute() { view.disableInitialButton(); model.initialize(); view.setVisibleDataWindow(true); view.setListaPunktow(model.getEtap().getZbiorPunktow()); view.setVisibleInitalScreen(false); aktualnyEtap = 1; view.setEtap(aktualnyEtap); view.setGotowka(Dane.startGotowka); model.setDostepnaGotowka(Dane.startGotowka); view.setWartosciParametrowDecyzyjnych( model.getWartosciSugerowane(view.getRyzyko(), view.getZysk())); } }); eventHandlers.put( EventName.KLIKNIETY_WYKRES, new EventHandler() { @Override public void execute() { view.kliknietyWykres(); view.setWartosciParametrowDecyzyjnych( model.getWartosciSugerowane(view.getRyzyko(), view.getZysk())); } }); eventHandlers.put( EventName.KONIEC, new EventHandler() { @Override public void execute() { view.endProgram(); } }); }