コード例 #1
0
ファイル: Controller.java プロジェクト: wbkaczorowski/WDEC
  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();
      }
    }
  }
コード例 #2
0
ファイル: Controller.java プロジェクト: wbkaczorowski/WDEC
  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();
          }
        });
  }