Package br.com.moonjava.flight.controller.base

Source Code of br.com.moonjava.flight.controller.base.CriarVooController$FocusPrecoHandler

/*
* Copyright 2012 MoonJava LTDA.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package br.com.moonjava.flight.controller.base;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.util.List;
import java.util.ResourceBundle;

import javax.swing.JButton;
import javax.swing.JPanel;

import org.joda.time.DateTime;

import br.com.moonjava.flight.model.base.Aeronave;
import br.com.moonjava.flight.model.base.AeronaveModel;
import br.com.moonjava.flight.model.base.Voo;
import br.com.moonjava.flight.model.base.VooModel;
import br.com.moonjava.flight.util.FlightFocusLostListener;
import br.com.moonjava.flight.util.FormatDateTime;
import br.com.moonjava.flight.util.RequestParamWrapper;
import br.com.moonjava.flight.util.VerifierString;
import br.com.moonjava.flight.view.voo.CriarVooUI;

/**
* @version 1.0 Aug 29, 2012
* @contact tiago.aguiar@moonjava.com.br
*
*/
public class CriarVooController extends CriarVooUI {

  private DateTime _partida;
  private DateTime _chegada;

  public CriarVooController(JPanel conteudo,
                            ResourceBundle bundle,
                            JButton atualizar,
                            JButton deletar,
                            JButton status) {
    super(conteudo, bundle, atualizar, deletar, status);

    addFocusPrecoListener(new FocusPrecoHandler());
    addFocusDataPartidaListener(new FocusDataPartidaHandler());
    addFocusDataChegadaListener(new FocusDataChegadaHandler());
    addCadastrarListener(new CadastrarHandler());
  }

  @Override
  public List<Aeronave> getList() {
    RequestParamWrapper request = new RequestParamWrapper();
    return new AeronaveModel().consultar(request);
  }

  private class FocusDataPartidaHandler extends FlightFocusLostListener {
    @Override
    public void focusLost(FocusEvent e) {
      // Valida a data de acordo com o país
      try {
        RequestParamWrapper request = getParameters();
        String country = getCountry();
        String partida = request.stringParam("partida");
        String dataPartida = null;

        if (country.equals("US")) {
          String timePartida = request.stringParam("timePartida");
          dataPartida = String.format("%s %s", partida, timePartida);
        } else {
          dataPartida = partida;
        }
        if (VerifierString.isDateValid(dataPartida, bundle)) {
          addImagePartidaValid();
          _partida = FormatDateTime.parseToDateTime(dataPartida, country);
        } else {
          addImagePartidaInvalid();
        }
      } catch (Exception e2) {
        addImagePartidaInvalid();
      }
    }
  }

  private class FocusDataChegadaHandler extends FlightFocusLostListener {
    @Override
    public void focusLost(FocusEvent e) {
      // Valida a data de acordo com o país
      try {
        RequestParamWrapper request = getParameters();
        String country = getCountry();
        String chegada = request.stringParam("chegada");
        String dataChegada = null;

        if (country.equals("US")) {
          String timeChegada = request.stringParam("timeChegada");
          dataChegada = String.format("%s %s", chegada, timeChegada);
        } else {
          dataChegada = chegada;
        }
        if (VerifierString.isDateValid(dataChegada, bundle)) {
          _chegada = FormatDateTime.parseToDateTime(dataChegada, country);
          if (_chegada.isAfter(_partida)) {
            addImageChegadaValid();
          } else {
            addImageChegadaInvalid();
          }
        } else {
          addImageChegadaInvalid();
        }
      } catch (Exception e2) {
        addImageChegadaInvalid();
      }
    }
  }

  private class FocusPrecoHandler extends FlightFocusLostListener {
    @Override
    public void focusLost(FocusEvent e) {
      try {
        RequestParamWrapper request = getParameters();
        String preco = request.stringParam("preco");
        double _preco = Double.parseDouble(preco);
        if (_preco <= 0) {
          throw new NumberFormatException();
        } else {
          messagePrecoOk();
        }
      } catch (NumberFormatException e2) {
        messagePrecoParseExecption();
      }
    }
  }

  private class CadastrarHandler implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
      RequestParamWrapper request = getParameters();
      String country = getCountry();
      String partida = request.stringParam("partida");
      String chegada = request.stringParam("chegada");
      String dataPartida = null;
      String dataChegada = null;

      // Teste para atribuir o padrĂ£o AM e PM
      if (country.equals("US")) {
        String timePartida = request.stringParam("timePartida");
        String timeChegada = request.stringParam("timeChegada");

        dataPartida = String.format("%s %s", partida, timePartida);
        dataChegada = String.format("%s %s", chegada, timeChegada);
      } else {
        dataPartida = partida;
        dataChegada = chegada;
      }

      try {
        DateTime _partida = FormatDateTime.parseToDateTime(dataPartida, country);
        DateTime _chegada = FormatDateTime.parseToDateTime(dataChegada, country);

        if (request.stringParam("origem").isEmpty() || request.stringParam("destino").isEmpty()) {
          throw new Exception();
        }

        if (!VerifierString.isDateValid(dataPartida, bundle)) {
          addImagePartidaInvalid();
          throw new Exception();
        }

        if (VerifierString.isDateValid(dataChegada, bundle)) {
          _chegada = FormatDateTime.parseToDateTime(dataChegada, country);
          if (!_chegada.isAfter(_partida)) {
            addImageChegadaInvalid();
            throw new Exception();
          }
        } else {
          addImageChegadaInvalid();
          throw new Exception();
        }

        double _preco = 0;
        try {
          String preco = request.stringParam("preco");
          _preco = Double.parseDouble(preco);
          if (_preco <= 0) {
            throw new Exception();
          }
        } catch (Exception e2) {
          messagePrecoParseExecption();
          throw new Exception();
        }
        request.set("preco", _preco);
        request.set("partida", _partida);
        request.set("chegada", _chegada);

        Voo pojo = new VooCreate(request).createInstance();
        boolean executed = new VooModel().criar(pojo);

        if (executed) {
          messageOK();
        } else {
          messageFailed();
        }
      } catch (Exception e2) {
        addMessageFailed();
      }
    }
  }

}
TOP

Related Classes of br.com.moonjava.flight.controller.base.CriarVooController$FocusPrecoHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.