Package view

Source Code of view.InsertStations

package view;

import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.UIManager;

import model.Station;
import controller.Controller;

/**
* La classe <b>InsertStations</b> hérite de la classe abstraite InsertDatas
* et permet d'ajouter une station
*
* @version 1.0
* @author Pierre Facq
* @author Alan Grente-Lequertier
* @author Alexandre Paris-Vergne
* @author Thomas Sileghem
*
* @see Station
*
*/
public class InsertStations extends InsertDatas {

  Station temp;

  /**
   * Initialise une InsertStations avec une station vide
   *
   * @param controller le controlleur principal du logiciel
   */
  public InsertStations(Controller controller) {
    super();
    this.temp = new Station();
    this.controller = controller;
  }
 
  /**
   * Ajoute les coordonnées de la nouvelle station
   *
   * @param longitude un double correspondant à la longitude de la station
   * @param latitude un double correspondant à la latitude de la station
   */
  public void setCoordinate(double longitude, double latitude)
  {
    temp.setLongitude(longitude);
    temp.setLatitude(latitude);
  }
 
  /**
   * Lance une pop-up permettant de créer une nouvelle station
   */
  public void createPopup() {

    //Champs de texte vides
    JTextField name = new JTextField();
    JTextField cityName = new JTextField();
   
    //Crée un message contenant des chaînes de caractères ainsi que les champs de texte
    Object[] message = new Object[] { "Nom de la station : ", name,
        "Ville : ", cityName};
   
    //Crée la pop-up contenant le message
    int r = JOptionPane.showConfirmDialog(null, message,
        "Ajouter une station", JOptionPane.OK_CANCEL_OPTION);
   
    //Si l'utilisateur a cliqué sur le bouton "OK"
    if (r == JOptionPane.OK_OPTION) {
      if(name.getText().trim().isEmpty() || cityName.getText().trim().isEmpty())
      {
        errorPopup("names");
        return;
      }
      temp.setName(name.getText());
      temp.setCityName(cityName.getText());
      temp.setNumber(controller.getMaxStationNumber()+1);
     
      //Permet de placer une station en cliquant sur la carte
      this.controller.setStationToPlace(this);
    }
  }

  /**
   * Lance la pop-up permettant de confirmer l'insertion des données
   */
  @Override
  public void confirmPopup() {
   
    //Message contenant des chaînes de caractères et les données de la station
    Object[] message = new Object[] {
        "Nom de la station : " + temp.getName(),
        "Ville : " + temp.getCityName(),
        "Longitude : "+temp.getLongitude(),
        "Latitude : "+temp.getLatitude() };
   
    //On change le nom du bouton "OK" par "Valider"
    UIManager.put("OptionPane.okButtonText", "Valider");
   
    //Lance la pop-up de confirmation
    int r = JOptionPane.showConfirmDialog(null, message,
        "Vérifiz vos informations", JOptionPane.OK_CANCEL_OPTION);
   
    //Si l'utilisateur a cliqué sur le bouton "Valider"
    if (r == JOptionPane.OK_OPTION) {
      //Insère la station
      controller.insertFilledStation(temp);
    }
  }
 
  /**
   * Lance une pop-up avec un message en cas d'erreur
   * @param error une chaîne de caractères identifiant l'erreur
   */
  private void errorPopup(String error) {
    switch (error)
    {
    case "names" :
      JOptionPane.showMessageDialog(null,"Erreur, il faut entrer un nom de station et de ville");
    break;
    }
  }

}
TOP

Related Classes of view.InsertStations

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.