mirror of
https://github.com/LucasVbr/OutilCuisson.git
synced 2026-05-13 17:11:53 +00:00
Charger/Sauvegarder les cuissons
Besoin de refactor le code Co-Authored-By: Alexandre3417 <81689383+Alexandre3417@users.noreply.github.com> Co-Authored-By: NonoL3Robot <75622909+NonoL3Robot@users.noreply.github.com>
This commit is contained in:
@@ -24,13 +24,6 @@ import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
|
||||
import com.google.android.material.navigation.NavigationView;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class AfficherFragment extends Fragment {
|
||||
@@ -38,7 +31,7 @@ public class AfficherFragment extends Fragment {
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
public ListView listeCuissons;
|
||||
public ListView listView;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
@@ -46,14 +39,7 @@ public class AfficherFragment extends Fragment {
|
||||
public static ArrayAdapter<String> adapterCuissons;
|
||||
|
||||
|
||||
/**
|
||||
* Liste des cuissons enregistrées dans l'application
|
||||
*/
|
||||
public static ArrayList<String> cuissonAffichees;
|
||||
|
||||
|
||||
public AfficherFragment() {
|
||||
}
|
||||
public AfficherFragment() {}
|
||||
|
||||
public static AfficherFragment newInstance() {
|
||||
return new AfficherFragment();
|
||||
@@ -70,25 +56,35 @@ public class AfficherFragment extends Fragment {
|
||||
Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.afficher_fragment, container,
|
||||
false);
|
||||
cuissonAffichees = new ArrayList<>();
|
||||
listeCuissons = view.findViewById(R.id.listeCuisson);
|
||||
listView = view.findViewById(R.id.listeCuisson);
|
||||
adapterCuissons = new ArrayAdapter<>(getActivity(),
|
||||
R.layout.ligne_liste, R.id.item_cuisson, cuissonAffichees);
|
||||
listeCuissons.setAdapter(adapterCuissons);
|
||||
registerForContextMenu(listeCuissons);
|
||||
R.layout.ligne_liste, R.id.item_cuisson, new ArrayList<>());
|
||||
listView.setAdapter(adapterCuissons);
|
||||
registerForContextMenu(listView);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajouter une cuisson
|
||||
*
|
||||
* @param cuisson La cuisson à ajouter
|
||||
*/
|
||||
public void addCuisson(Cuisson cuisson) {
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
afficherCuisson();
|
||||
}
|
||||
|
||||
public void afficherCuisson() {
|
||||
adapterCuissons.clear();
|
||||
|
||||
/* Ajoute l'objet cuisson */
|
||||
ArrayList<Cuisson> listeCuisson = ((MainActivity)getActivity()).getListeCuisson();
|
||||
|
||||
/* On affiche toutes les cuissons de la liste dans la view */
|
||||
for (Cuisson cuisson : listeCuisson) {
|
||||
adapterCuissons.add(cuisson.toString());
|
||||
}
|
||||
|
||||
/* Met à jour la liste */
|
||||
adapterCuissons.notifyDataSetChanged();
|
||||
listeCuissons.requestLayout();
|
||||
listView.requestLayout();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -112,30 +108,30 @@ public class AfficherFragment extends Fragment {
|
||||
AdapterView.AdapterContextMenuInfo information
|
||||
= (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
|
||||
|
||||
int index = information.position;
|
||||
|
||||
switch (item.getItemId()) {
|
||||
case R.id.thermosContext:
|
||||
afficherThermos(cuissonAffichees.get(information.position));
|
||||
afficherThermos(index);
|
||||
break;
|
||||
case R.id.modifierContext:
|
||||
// modifierCuisson();
|
||||
((MainActivity) getActivity()).editerCuisson(index);
|
||||
break;
|
||||
case R.id.supprContext:
|
||||
cuissonAffichees.remove(information.position);
|
||||
adapterCuissons.notifyDataSetChanged();
|
||||
listeCuissons.requestLayout();
|
||||
break;
|
||||
|
||||
case R.id.cancelContext:
|
||||
supprimerCuisson(index);
|
||||
break;
|
||||
}
|
||||
return super.onContextItemSelected(item);
|
||||
}
|
||||
|
||||
public void afficherThermos(String cuisson) {
|
||||
public void afficherThermos(int index) {
|
||||
/* Recupère l'objet cuisson */
|
||||
Cuisson cuisson = ((MainActivity) getActivity()).getListeCuisson().get(index);
|
||||
|
||||
String content = getString(R.string.alert_content_thermos,
|
||||
Cuisson.extrairePlat(cuisson),
|
||||
Cuisson.extraireTemperature(cuisson),
|
||||
Cuisson.thermostat(Cuisson.extraireTemperature(cuisson)));
|
||||
cuisson.getPlat(),
|
||||
cuisson.getDegree(),
|
||||
cuisson.getThermostat());
|
||||
new AlertDialog.Builder(getContext()).setTitle(R.string.alert_title_thermos)
|
||||
.setMessage(content)
|
||||
.setNeutralButton(
|
||||
@@ -144,13 +140,12 @@ public class AfficherFragment extends Fragment {
|
||||
.show();
|
||||
}
|
||||
|
||||
public void modifierCuisson() {
|
||||
// ((MainActivity)getActivity()).changeFragment(1);
|
||||
Fragment fragment = new AjouterFragment();
|
||||
FragmentManager fragmentManager = fragment.getChildFragmentManager();
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.ajouter_fragment, fragment, fragment.toString());
|
||||
fragmentTransaction.addToBackStack(fragment.toString());
|
||||
fragmentTransaction.commit();
|
||||
/**
|
||||
* Supprime l'objet correspondant cuisson
|
||||
* @param index
|
||||
*/
|
||||
public void supprimerCuisson(int index) {
|
||||
((MainActivity) getActivity()).getListeCuisson().remove(index);
|
||||
afficherCuisson();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,9 +20,6 @@ import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.example.outilcuisson.OutilCuisson;
|
||||
import com.example.outilcuisson.Cuisson;
|
||||
|
||||
public class AjouterFragment extends Fragment {
|
||||
|
||||
EditText inputPlat;
|
||||
@@ -31,24 +28,15 @@ public class AjouterFragment extends Fragment {
|
||||
Button btnEffacer;
|
||||
Button btnValider;
|
||||
|
||||
public AjouterFragment() {
|
||||
}
|
||||
public AjouterFragment() {}
|
||||
|
||||
public static AjouterFragment newInstance() {
|
||||
return new AjouterFragment();
|
||||
}
|
||||
|
||||
public interface EcouteurAjout {
|
||||
void recevoirCuisson(Cuisson cuisson);
|
||||
}
|
||||
|
||||
private EcouteurAjout activiteQuiMEcoute;
|
||||
|
||||
@Override
|
||||
public void onAttach(@NonNull Context context) {
|
||||
super.onAttach(context);
|
||||
|
||||
activiteQuiMEcoute = (EcouteurAjout) context;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,8 +48,8 @@ public class AjouterFragment extends Fragment {
|
||||
public View onCreateView(LayoutInflater inflater,
|
||||
ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.ajouter_fragment, container,
|
||||
false);
|
||||
|
||||
View view = inflater.inflate(R.layout.ajouter_fragment, container,false);
|
||||
|
||||
/* Liste des éléments intéractifs */
|
||||
inputPlat = view.findViewById(R.id.input_plat);
|
||||
@@ -70,16 +58,43 @@ public class AjouterFragment extends Fragment {
|
||||
btnEffacer = view.findViewById(R.id.btn_effacer);
|
||||
btnValider = view.findViewById(R.id.btn_valider);
|
||||
|
||||
/* Initialise le TimePicker en format 24h avec par défaut la valeur
|
||||
0h40 */
|
||||
/* Initialise le TimePicker en format 24h et met les champs par défaut */
|
||||
inputDuree.setIs24HourView(true);
|
||||
inputDuree.setHour(0);
|
||||
inputDuree.setMinute(40);
|
||||
champsDefaut();
|
||||
|
||||
/*
|
||||
* Action de création de la nouvelle cuisson
|
||||
*/
|
||||
btnValider.setOnClickListener(view1 -> {
|
||||
/* Actions des buttons */
|
||||
btnValider.setOnClickListener(this::actionBtnValider);
|
||||
btnEffacer.setOnClickListener(this::actionBtnEffacer);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
/* Si on est en mode edition, on préremplis le champs */
|
||||
if ( ((MainActivity)getActivity()).modeEdition) {
|
||||
Cuisson cuisson = ((MainActivity)getActivity()).cuissonAEditer;
|
||||
|
||||
System.out.println(cuisson);
|
||||
|
||||
/* On remplis les champs */
|
||||
inputPlat.setText(cuisson.getPlat());
|
||||
inputDuree.setHour(cuisson.getHeure());
|
||||
inputDuree.setMinute(cuisson.getMinute());
|
||||
inputTemperature.setText(Integer.toString(cuisson.getDegree()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
((MainActivity)getActivity()).modeEdition = false;
|
||||
champsDefaut();
|
||||
}
|
||||
|
||||
private void actionBtnValider(View view) {
|
||||
/* Récupère toutes les valeurs des champs */
|
||||
String txtPlat = inputPlat.getText().toString();
|
||||
String txtTemperature = inputTemperature.getText().toString();
|
||||
@@ -87,54 +102,62 @@ public class AjouterFragment extends Fragment {
|
||||
int mDuree = inputDuree.getMinute();
|
||||
|
||||
/* Convertis la température en entier */
|
||||
int temperature = txtTemperature.isEmpty() ? -1 : Integer.parseInt(
|
||||
txtTemperature);
|
||||
int temperature = txtTemperature.isEmpty() ? -1 : Integer.parseInt(txtTemperature);
|
||||
|
||||
/* Cas ou les valeurs ne sont pas valides */
|
||||
if (!OutilCuisson.platValide(txtPlat)
|
||||
|| !OutilCuisson.heureCuissonValide(hDuree)
|
||||
|| !OutilCuisson.minuteCuissonValide(mDuree)
|
||||
|| !OutilCuisson.temperatureValide(temperature)) {
|
||||
|
||||
System.out.println("Erreur");
|
||||
|
||||
}
|
||||
|
||||
/* Cas ou les valeurs sont valides : on ajoute une nouvelle
|
||||
cuisson dans la liste a afficher */
|
||||
if (((MainActivity)getActivity()).modeEdition) {
|
||||
Cuisson cuisson = ((MainActivity)getActivity()).cuissonAEditer;
|
||||
try {
|
||||
Cuisson cuisson = new Cuisson(txtPlat, hDuree, mDuree,
|
||||
temperature);
|
||||
activiteQuiMEcoute.recevoirCuisson(cuisson);
|
||||
viderChamps();
|
||||
String content = getString(R.string.toast_ajout_ok,
|
||||
cuisson.getPlat());
|
||||
Toast.makeText(getContext(), content, Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
} catch (Exception e) {
|
||||
new AlertDialog.Builder(getContext()).setTitle(
|
||||
R.string.alert_title_error)
|
||||
.setMessage(
|
||||
R.string.alert_content_error)
|
||||
.setNeutralButton(
|
||||
R.string.alert_neutral_button,
|
||||
null)
|
||||
cuisson.editCuisson(txtPlat, hDuree, mDuree, temperature);
|
||||
|
||||
((MainActivity)getActivity()).changeFragment(0);
|
||||
} catch (IllegalArgumentException e) {
|
||||
/* Crée un boite de dialogue qui informe que les valeurs sont incorrectes */
|
||||
new AlertDialog
|
||||
.Builder(getContext())
|
||||
.setTitle(R.string.alert_title_error)
|
||||
.setMessage(R.string.alert_content_error)
|
||||
.setNeutralButton(R.string.alert_neutral_button,null)
|
||||
.show();
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
/* On essaye de créer une nouvelle cuisson */
|
||||
try {
|
||||
Cuisson cuisson = new Cuisson(txtPlat, hDuree, mDuree, temperature);
|
||||
|
||||
/*
|
||||
* Efface le contenu des champs de textes et met le TimePicker à 0h40
|
||||
*/
|
||||
btnEffacer.setOnClickListener(view2 -> {
|
||||
viderChamps();
|
||||
});
|
||||
/* On ajoute la cuisson a la liste des cuisson */
|
||||
((MainActivity) getActivity()).addCuisson(cuisson);
|
||||
|
||||
return view;
|
||||
champsDefaut();
|
||||
|
||||
/* Message d'ajout */
|
||||
String content = getString(R.string.toast_ajout_ok,
|
||||
cuisson.getPlat());
|
||||
Toast.makeText(getContext(), content, Toast.LENGTH_SHORT).show();
|
||||
} catch (IllegalArgumentException e) {
|
||||
|
||||
/* Crée un boite de dialogue qui informe que les valeurs sont incorrectes */
|
||||
new AlertDialog
|
||||
.Builder(getContext())
|
||||
.setTitle(R.string.alert_title_error)
|
||||
.setMessage(R.string.alert_content_error)
|
||||
.setNeutralButton(R.string.alert_neutral_button,null)
|
||||
.show();
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void viderChamps() {
|
||||
/**
|
||||
* Efface le contenu des champs de textes et met le TimePicker à 0h40
|
||||
* @param view non utilisé
|
||||
*/
|
||||
private void actionBtnEffacer(View view) {
|
||||
((MainActivity)getActivity()).modeEdition = false;
|
||||
champsDefaut();
|
||||
}
|
||||
|
||||
private void champsDefaut() {
|
||||
inputPlat.setText("");
|
||||
inputDuree.setHour(0);
|
||||
inputDuree.setMinute(40);
|
||||
|
||||
@@ -24,18 +24,25 @@ public class Cuisson implements Serializable {
|
||||
/**
|
||||
* Nombre maximum de caractères pour le nom du plat
|
||||
*/
|
||||
private static final int LG_MAX_PLAT = 18;
|
||||
private static final int LG_MAX_PLAT = 20;
|
||||
|
||||
/**
|
||||
* Le nom du plat
|
||||
*/
|
||||
private String plat;
|
||||
|
||||
/**
|
||||
* La durée en heure de la cuisson du plat
|
||||
*/
|
||||
private int heure;
|
||||
private int minute;
|
||||
private int degree;
|
||||
|
||||
public Cuisson(String plat, int heure, int minute, int degree) throws
|
||||
Exception {
|
||||
if (!platValide(plat) || !heureCuissonValide(heure)
|
||||
|| !minuteCuissonValide(minute) || !temperatureValide(degree)) {
|
||||
throw new Exception(CHAINE_DEFAUT);
|
||||
public Cuisson(String plat, int heure, int minute, int degree) {
|
||||
if (!platValide(plat)
|
||||
|| !horaireValide(heure, minute)
|
||||
|| !temperatureValide(degree)) {
|
||||
throw new IllegalArgumentException(CHAINE_DEFAUT);
|
||||
}
|
||||
this.plat = plat;
|
||||
this.heure = heure;
|
||||
@@ -56,6 +63,12 @@ public class Cuisson implements Serializable {
|
||||
&& !nomPlat.contains("|");
|
||||
}
|
||||
|
||||
public static boolean horaireValide(int heure, int minute) {
|
||||
return !(heure == 0 && minute == 0)
|
||||
&& heureCuissonValide(heure)
|
||||
&& minuteCuissonValide(minute);
|
||||
}
|
||||
|
||||
/**
|
||||
* Détermine si le nombre d'heures d'une durée de cuisson est valide
|
||||
* (comprise entre 0 et 9)
|
||||
@@ -63,7 +76,7 @@ public class Cuisson implements Serializable {
|
||||
* @param heureCuisson heure à tester
|
||||
* @return un booléen égal à vrai ssi l'heure de la durée est valide
|
||||
*/
|
||||
public static boolean heureCuissonValide(int heureCuisson) {
|
||||
private static boolean heureCuissonValide(int heureCuisson) {
|
||||
return 0 <= heureCuisson && heureCuisson <= HEURE_MAX;
|
||||
}
|
||||
|
||||
@@ -75,7 +88,7 @@ public class Cuisson implements Serializable {
|
||||
* @return un booléen égal à vrai ssi le nombre de minutes de la durée
|
||||
* est valide
|
||||
*/
|
||||
public static boolean minuteCuissonValide(int minuteCuisson) {
|
||||
private static boolean minuteCuissonValide(int minuteCuisson) {
|
||||
return 0 <= minuteCuisson && minuteCuisson <= 59;
|
||||
}
|
||||
|
||||
@@ -90,6 +103,9 @@ public class Cuisson implements Serializable {
|
||||
return 0 < temperature && temperature <= TEMPERATURE_MAX;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
*/
|
||||
public String getPlat() {
|
||||
return plat;
|
||||
}
|
||||
@@ -106,11 +122,20 @@ public class Cuisson implements Serializable {
|
||||
return degree;
|
||||
}
|
||||
|
||||
public void editCuisson(String plat, int heure, int minute, int degree) {
|
||||
if (!platValide(plat) || !horaireValide(heure, minute) || !temperatureValide(degree))
|
||||
throw new IllegalArgumentException();
|
||||
|
||||
this.plat = plat;
|
||||
this.heure = heure;
|
||||
this.minute = minute;
|
||||
this.degree = degree;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder aRenvoyer = new StringBuilder();
|
||||
|
||||
|
||||
// on insère le nom du plat
|
||||
aRenvoyer.append(plat);
|
||||
aRenvoyer.append(chaineEspace(LG_MAX_PLAT - plat.length()));
|
||||
@@ -161,8 +186,7 @@ public class Cuisson implements Serializable {
|
||||
*/
|
||||
public static int extraireTemperature(String source) {
|
||||
int temperature; // température extraite
|
||||
String
|
||||
chaineTemperature; // température extraite en tant que chaîne
|
||||
String chaineTemperature; // température extraite en tant que chaîne
|
||||
|
||||
|
||||
try {
|
||||
@@ -184,20 +208,17 @@ public class Cuisson implements Serializable {
|
||||
* Renvoie le thermostat correspondant à la temperature argument
|
||||
* (celle-ci doit être inférieure à TEMPERATURE_MAX)
|
||||
*
|
||||
* @param temperature température à convertir
|
||||
* @return l'entier égal au thermostat ou -1 si la température est invalide
|
||||
*/
|
||||
public static int thermostat(int temperature) {
|
||||
int aRenvoyer; // valeur du thermostat à renvoyer
|
||||
if (temperature <= 0 || temperature > TEMPERATURE_MAX) {
|
||||
aRenvoyer = -1;
|
||||
} else {
|
||||
aRenvoyer = temperature / 30;
|
||||
if (temperature % 30 > 15) {
|
||||
aRenvoyer++;
|
||||
public int getThermostat() {
|
||||
int thermostat = -1;
|
||||
|
||||
if (temperatureValide(degree)) {
|
||||
thermostat = degree / 30;
|
||||
if (degree % 30 > 15) thermostat++;
|
||||
}
|
||||
}
|
||||
return aRenvoyer;
|
||||
|
||||
return thermostat;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -209,9 +230,7 @@ public class Cuisson implements Serializable {
|
||||
*/
|
||||
private static String chaineEspace(int nbEspace) {
|
||||
StringBuilder aRenvoyer = new StringBuilder();
|
||||
for (int i = 1; i <= nbEspace; i++) {
|
||||
aRenvoyer.append(" ");
|
||||
}
|
||||
for (int i = 1; i <= nbEspace; i++) aRenvoyer.append(" ");
|
||||
return aRenvoyer.toString();
|
||||
}
|
||||
}
|
||||
@@ -1,60 +1,43 @@
|
||||
package com.example.outilcuisson;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
import com.google.android.material.tabs.TabLayoutMediator;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class MainActivity extends AppCompatActivity implements AjouterFragment.EcouteurAjout {
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
/**
|
||||
* Le nom du fichier de sauvegarde
|
||||
*/
|
||||
private static final String NOM_FICHIER = "cuisson.txt";
|
||||
|
||||
/**
|
||||
* Tag utilisé dans les messages de log. Les messages de log sont
|
||||
* affichés en cas
|
||||
* de problème lors de l'accès au fichier
|
||||
*/
|
||||
private static final String TAG = "Cuisson";
|
||||
private ArrayList<Cuisson> listeCuisson;
|
||||
|
||||
private ViewPager2 gestionnairePagination;
|
||||
|
||||
public boolean modeEdition = false;
|
||||
public Cuisson cuissonAEditer;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -73,68 +56,83 @@ public class MainActivity extends AppCompatActivity implements AjouterFragment.E
|
||||
new TabLayoutMediator(gestionnaireOnglet, gestionnairePagination,
|
||||
(tab, position) -> tab.setText(
|
||||
titreOnglet[position])).attach();
|
||||
|
||||
/* Crée la liste des cuissons */
|
||||
listeCuisson = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
readFromFile();
|
||||
System.out.println("onResume : " + AfficherFragment.cuissonAffichees);
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
chargerFichier();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
System.out.println(
|
||||
"Avant write : " + AfficherFragment.cuissonAffichees);
|
||||
writeToFile();
|
||||
System.out.println(
|
||||
"Après write : " + AfficherFragment.cuissonAffichees);
|
||||
super.onDestroy();
|
||||
protected void onPause() {
|
||||
sauvegarderFichier();
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
private void writeToFile() {
|
||||
/**
|
||||
* Ajoute une cuisson a la liste des cuissons
|
||||
*
|
||||
* @param cuisson Objet cuisson a ajouter dans la liste
|
||||
*/
|
||||
public void addCuisson(Cuisson cuisson) {
|
||||
if (estDansCuisson(cuisson)) throw new IllegalArgumentException("Il existe deja un plat avec ce nom");
|
||||
|
||||
listeCuisson.add(cuisson);
|
||||
|
||||
/* Test affichage du contennu de la liste des cuisson */
|
||||
System.out.println(Arrays.asList(listeCuisson));
|
||||
}
|
||||
|
||||
public ArrayList<Cuisson> getListeCuisson() {
|
||||
return listeCuisson;
|
||||
}
|
||||
|
||||
private boolean estDansCuisson(Cuisson aTester) {
|
||||
for (Cuisson cuisson : listeCuisson) {
|
||||
if (cuisson.getPlat().equals(aTester.getPlat())) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void editerCuisson(int index) {
|
||||
changeFragment(1);
|
||||
modeEdition = true;
|
||||
cuissonAEditer = listeCuisson.get(index);
|
||||
}
|
||||
|
||||
|
||||
private void chargerFichier() {
|
||||
try {
|
||||
File path = getFilesDir();
|
||||
File file = new File(path, NOM_FICHIER);
|
||||
|
||||
if (!path.exists()) {
|
||||
path.mkdirs();
|
||||
}
|
||||
|
||||
FileOutputStream fos = new FileOutputStream(file);
|
||||
ObjectOutputStream oos = new ObjectOutputStream(fos);
|
||||
|
||||
oos.writeObject(AfficherFragment.cuissonAffichees);
|
||||
|
||||
oos.close();
|
||||
fos.close();
|
||||
System.out.println("Ecriture réalisée");
|
||||
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "File write failed: " + e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
private void readFromFile() {
|
||||
try {
|
||||
File path = getFilesDir();
|
||||
File file = new File(path, NOM_FICHIER);
|
||||
|
||||
FileInputStream fis = new FileInputStream(file);
|
||||
FileInputStream fis = openFileInput(NOM_FICHIER);
|
||||
ObjectInputStream ois = new ObjectInputStream(fis);
|
||||
|
||||
AfficherFragment.cuissonAffichees
|
||||
= (ArrayList<String>) ois.readObject();
|
||||
listeCuisson = (ArrayList<Cuisson>) ois.readObject();
|
||||
|
||||
ois.close();
|
||||
fis.close();
|
||||
System.out.println("Lecture réalisée");
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
Log.e(TAG, "File not found: " + e.toString());
|
||||
} catch (IOException | ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void sauvegarderFichier() {
|
||||
try {
|
||||
FileOutputStream fos = openFileOutput(NOM_FICHIER, MODE_PRIVATE);
|
||||
ObjectOutputStream oos = new ObjectOutputStream(fos);
|
||||
|
||||
oos.writeObject(listeCuisson);
|
||||
|
||||
oos.close();
|
||||
fos.close();
|
||||
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Can not read file: " + e.toString());
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@@ -163,39 +161,24 @@ public class MainActivity extends AppCompatActivity implements AjouterFragment.E
|
||||
}
|
||||
|
||||
public void afficherAide() {
|
||||
new AlertDialog.Builder(this).setTitle(R.string.alert_title_aide)
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle(R.string.alert_title_aide)
|
||||
.setMessage(R.string.alert_content_help)
|
||||
.setNeutralButton(
|
||||
R.string.alert_neutral_button, null)
|
||||
.setNeutralButton(R.string.alert_neutral_button, null)
|
||||
.show();
|
||||
}
|
||||
|
||||
public void reinitData() {
|
||||
new AlertDialog.Builder(this).setTitle(R.string.alert_title_reinit)
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle(R.string.alert_title_reinit)
|
||||
.setMessage(R.string.alert_content_reinit)
|
||||
.setNeutralButton(
|
||||
R.string.alert_neutral_button, null)
|
||||
.setPositiveButton(R.string.btn_valider,
|
||||
(dialogInterface, i) -> {
|
||||
AfficherFragment.adapterCuissons
|
||||
.clear();
|
||||
AfficherFragment.adapterCuissons
|
||||
.notifyDataSetChanged();
|
||||
})
|
||||
.setNeutralButton(R.string.alert_neutral_button, null)
|
||||
.setPositiveButton(R.string.btn_valider, (dialogInterface, i) -> {
|
||||
AfficherFragment.adapterCuissons.clear();
|
||||
AfficherFragment.adapterCuissons.notifyDataSetChanged();})
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void recevoirCuisson(Cuisson cuisson) {
|
||||
AfficherFragment fragmentAModifier
|
||||
= (AfficherFragment) getSupportFragmentManager().findFragmentByTag(
|
||||
"f0");
|
||||
|
||||
if (fragmentAModifier != null) {
|
||||
fragmentAModifier.addCuisson(cuisson);
|
||||
}
|
||||
}
|
||||
|
||||
public void changeFragment(int pos) {
|
||||
gestionnairePagination.setCurrentItem(pos);
|
||||
}
|
||||
|
||||
@@ -1,242 +1,242 @@
|
||||
/* **************************************************************************** *
|
||||
* IUT de Rodez - Département Informatique *
|
||||
* Semestre 4 - Applications mobiles *
|
||||
* *
|
||||
* SUJET CONTROLE MARS 2019 *
|
||||
* ANNEXES *
|
||||
* *
|
||||
* **************************************************************************** */
|
||||
|
||||
|
||||
/*
|
||||
* Classe avec des méthodes outils pour gérer une chaîne de caractères contenant
|
||||
* les caractéristiques d'une cuisson au four
|
||||
* OutilCuisson.java 12/21
|
||||
*/
|
||||
|
||||
/* A priori de fichier ne doit pas être modifié. Vous restez libre de le modifier si
|
||||
besoin
|
||||
*/
|
||||
package com.example.outilcuisson;
|
||||
|
||||
|
||||
/**
|
||||
* Cette classe est une classe utilitaire qui contient des méthodes outils pour gérer
|
||||
* une chaîne de caractères contenant le descriptif d'une cuisson au four.
|
||||
* Les caractéristiques d'une cuisson sont :
|
||||
* - le nom du plat (une chaîne non vide)
|
||||
* - les heures de la durée de la cuisson (un entier entre 0 et 9)
|
||||
* - les minutes de la durée de la cuisson (un entier entre O et 50)
|
||||
* - une température (un entier strictement positif et inférieur à TEMPERATURE_MAX)
|
||||
*
|
||||
* @author INFO2 Semestre 4
|
||||
*/
|
||||
public class OutilCuisson {
|
||||
|
||||
/**
|
||||
* Valeur de la chaîne qui représente une cuisson si l'une des caractéristiques
|
||||
* de la cuisson est invalide
|
||||
*/
|
||||
private static final String CHAINE_DEFAUT = "Information incohérente";
|
||||
|
||||
/**
|
||||
* Température maximale pour la cuisson
|
||||
*/
|
||||
public static final int TEMPERATURE_MAX = 300;
|
||||
|
||||
|
||||
/**
|
||||
* Valeur maximale pour le nombre d'heures d'une cuisson
|
||||
*/
|
||||
public static final int HEURE_MAX = 9;
|
||||
|
||||
/**
|
||||
* Nombre maximum de caractères pour le nom du plat
|
||||
*/
|
||||
private static final int LG_MAX_PLAT = 18;
|
||||
|
||||
|
||||
/**
|
||||
* Détermine si un nom de plat est valide (non vide, au plus 20 caractères et ne
|
||||
* contient pas le caractère '|')
|
||||
*
|
||||
* @param nomPlat chaîne à testesr
|
||||
* @return un booléen égal à vrai ssi la chaîne à tester est valide
|
||||
*/
|
||||
public static boolean platValide(String nomPlat) {
|
||||
return nomPlat.length() > 0 && nomPlat.length() <= LG_MAX_PLAT
|
||||
&& !nomPlat.contains("|");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Détermine si le nombre d'heures d'une durée de cuisson est valide
|
||||
* (comprise entre 0 et 9)
|
||||
*
|
||||
* @param heureCuisson heure à tester
|
||||
* @return un booléen égal à vrai ssi l'heure de la durée est valide
|
||||
*/
|
||||
public static boolean heureCuissonValide(int heureCuisson) {
|
||||
return 0 <= heureCuisson && heureCuisson <= HEURE_MAX;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Détermine si le nombre de minutes d'une durée de cuisson est valide
|
||||
* (comprise entre 0 et 59)
|
||||
*
|
||||
* @param minuteCuisson minute à tester
|
||||
* @return un booléen égal à vrai ssi le nombre de minutes de la durée est valide
|
||||
*/
|
||||
public static boolean minuteCuissonValide(int minuteCuisson) {
|
||||
return 0 <= minuteCuisson && minuteCuisson <= 59;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Détermine si une température de cuisson est valide
|
||||
* (strictement positive et inférieure ou égale à TEMPERATURE_MAX)
|
||||
*
|
||||
* @param temperature temperature à tester
|
||||
* @return un booléen égal à vrai ssi la température est valide
|
||||
*/
|
||||
public static boolean temperatureValide(int temperature) {
|
||||
return 0 < temperature && temperature <= TEMPERATURE_MAX;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Concatène les arguments dans une chaîne de caractères. Celle-ci aura le format
|
||||
* suivant :
|
||||
* nom du plat | temps de cuisson en heures et minutes | température
|
||||
* Si l'un des arguments est invalide, c'est la constante CHAINE_DEFAUT qui
|
||||
* est renvoyée
|
||||
*
|
||||
* @param nomPlat nom du plat. Doit être non vide, avec au plus
|
||||
* LG_MAX_PLAT caractères, ne doit pas contenir |
|
||||
* @param heureCuisson nombre d'heures de la durée de la cuisson
|
||||
* doit être compris entre 0 et 9
|
||||
* @param minuteCuisson nombre de minutes de la durée de la cuisson
|
||||
* doit être compris entre 0 et 59
|
||||
* @param temperature température de la cuisson. Doit être comprise entre
|
||||
* 1 et TEMPERATURE_MAX
|
||||
* @return une chaîne contenant le descriptif de la cuisson si les paramètres
|
||||
* sont valides. Sinon la chaîne CHAINE_DEFAUT
|
||||
*/
|
||||
public static String transformeEnChaine(String nomPlat, int heureCuisson,
|
||||
int minuteCuisson, int temperature) {
|
||||
StringBuilder aRenvoyer = new StringBuilder();
|
||||
|
||||
if (platValide(nomPlat) && heureCuissonValide(heureCuisson)
|
||||
&& minuteCuissonValide(minuteCuisson) && temperatureValide(temperature)) {
|
||||
|
||||
// on insère le nom du plat
|
||||
aRenvoyer.append(nomPlat);
|
||||
aRenvoyer.append(chaineEspace(LG_MAX_PLAT - nomPlat.length()));
|
||||
aRenvoyer.append(" | ");
|
||||
|
||||
// on insère la durée
|
||||
aRenvoyer.append(String.valueOf(heureCuisson));
|
||||
aRenvoyer.append(" h ");
|
||||
if (minuteCuisson < 10) {
|
||||
aRenvoyer.append("0");
|
||||
}
|
||||
aRenvoyer.append(String.valueOf(minuteCuisson));
|
||||
aRenvoyer.append(" | ");
|
||||
|
||||
// on insère la température
|
||||
aRenvoyer.append(String.format("%3d", temperature));
|
||||
} else {
|
||||
|
||||
// l'un des arguments est invalide
|
||||
aRenvoyer.append(CHAINE_DEFAUT);
|
||||
}
|
||||
return aRenvoyer.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Extrait d'une chaîne le nom du plat. On suppose que la chaîne est correctement
|
||||
* formatée dans le format de la description d'une cuisson gérée par cette classe
|
||||
* (les 20 premiers caractères de la chaîne sont extraits)
|
||||
*
|
||||
* @param source chaîne source de l'extraction
|
||||
* @return une chaîne contenant le nom du plat ou CHAINE_DEFAUT si la chaîne
|
||||
* argument est trop courte
|
||||
*/
|
||||
public static String extrairePlat(String source) {
|
||||
if (source.length() < LG_MAX_PLAT) {
|
||||
return CHAINE_DEFAUT;
|
||||
} else {
|
||||
return source.substring(0, LG_MAX_PLAT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Extrait d'une chaîne la température de cuisson. On suppose que la chaîne
|
||||
* est correctement formatée dans le format de la description d'une cuisson
|
||||
* gérée par cette classe (la température est présente sur les 3 derniers
|
||||
* caractères de la chaîne)
|
||||
*
|
||||
* @param source chaîne source de l'extraction
|
||||
* @return un entier égal à la température extraite ou bien -1 si un
|
||||
* problème inattendu a été rencontré avec le format de la chaîne
|
||||
*/
|
||||
public static int extraireTemperature(String source) {
|
||||
int temperature; // température extraite
|
||||
String chaineTemperature; // température extraite en tant que chaîne
|
||||
|
||||
|
||||
try {
|
||||
chaineTemperature = source.substring(source.length() - 3, source.length());
|
||||
temperature = Integer.parseInt(chaineTemperature);
|
||||
} catch (NumberFormatException | IndexOutOfBoundsException erreur) {
|
||||
|
||||
/*
|
||||
* erreur lors de l'extraction des 3 derniers caractère
|
||||
* ou lors de la transformation en entier
|
||||
*/
|
||||
temperature = -1;
|
||||
}
|
||||
return temperature;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renvoie le thermostat correspondant à la temperature arguemnt
|
||||
* (celle-ci doit être inférieure à TEMPERATURE_MAX)
|
||||
*
|
||||
* @param temperature température à convertir
|
||||
* @return l'entier égal au thermostat ou -1 si la température est invalide
|
||||
*/
|
||||
public static int thermostat(int temperature) {
|
||||
int aRenvoyer; // valeur du thermostat à renvoyer
|
||||
if (temperature <= 0 || temperature > TEMPERATURE_MAX) {
|
||||
aRenvoyer = -1;
|
||||
} else {
|
||||
aRenvoyer = temperature / 30;
|
||||
if (temperature % 30 > 15) {
|
||||
aRenvoyer++;
|
||||
}
|
||||
}
|
||||
return aRenvoyer;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renvoie une chaîne constituée d'espaces. Le nombre d'espaces est indiqué
|
||||
* par le paramètre.
|
||||
*
|
||||
* @param nbEspace nombre d'espaces à placer dans la chaîne
|
||||
* @return une chaîne constituée du caractère espace
|
||||
*/
|
||||
private static String chaineEspace(int nbEspace) {
|
||||
StringBuilder aRenvoyer = new StringBuilder();
|
||||
for (int i = 1; i <= nbEspace; i++) {
|
||||
aRenvoyer.append(" ");
|
||||
}
|
||||
return aRenvoyer.toString();
|
||||
}
|
||||
|
||||
}
|
||||
///* **************************************************************************** *
|
||||
// * IUT de Rodez - Département Informatique *
|
||||
// * Semestre 4 - Applications mobiles *
|
||||
// * *
|
||||
// * SUJET CONTROLE MARS 2019 *
|
||||
// * ANNEXES *
|
||||
// * *
|
||||
// * **************************************************************************** */
|
||||
//
|
||||
//
|
||||
///*
|
||||
// * Classe avec des méthodes outils pour gérer une chaîne de caractères contenant
|
||||
// * les caractéristiques d'une cuisson au four
|
||||
// * OutilCuisson.java 12/21
|
||||
// */
|
||||
//
|
||||
///* A priori de fichier ne doit pas être modifié. Vous restez libre de le modifier si
|
||||
// besoin
|
||||
// */
|
||||
//package com.example.outilcuisson;
|
||||
//
|
||||
//
|
||||
///**
|
||||
// * Cette classe est une classe utilitaire qui contient des méthodes outils pour gérer
|
||||
// * une chaîne de caractères contenant le descriptif d'une cuisson au four.
|
||||
// * Les caractéristiques d'une cuisson sont :
|
||||
// * - le nom du plat (une chaîne non vide)
|
||||
// * - les heures de la durée de la cuisson (un entier entre 0 et 9)
|
||||
// * - les minutes de la durée de la cuisson (un entier entre O et 50)
|
||||
// * - une température (un entier strictement positif et inférieur à TEMPERATURE_MAX)
|
||||
// *
|
||||
// * @author INFO2 Semestre 4
|
||||
// */
|
||||
//public class OutilCuisson {
|
||||
//
|
||||
// /**
|
||||
// * Valeur de la chaîne qui représente une cuisson si l'une des caractéristiques
|
||||
// * de la cuisson est invalide
|
||||
// */
|
||||
// private static final String CHAINE_DEFAUT = "Information incohérente";
|
||||
//
|
||||
// /**
|
||||
// * Température maximale pour la cuisson
|
||||
// */
|
||||
// public static final int TEMPERATURE_MAX = 300;
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Valeur maximale pour le nombre d'heures d'une cuisson
|
||||
// */
|
||||
// public static final int HEURE_MAX = 9;
|
||||
//
|
||||
// /**
|
||||
// * Nombre maximum de caractères pour le nom du plat
|
||||
// */
|
||||
// private static final int LG_MAX_PLAT = 18;
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Détermine si un nom de plat est valide (non vide, au plus 20 caractères et ne
|
||||
// * contient pas le caractère '|')
|
||||
// *
|
||||
// * @param nomPlat chaîne à testesr
|
||||
// * @return un booléen égal à vrai ssi la chaîne à tester est valide
|
||||
// */
|
||||
// public static boolean platValide(String nomPlat) {
|
||||
// return nomPlat.length() > 0 && nomPlat.length() <= LG_MAX_PLAT
|
||||
// && !nomPlat.contains("|");
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Détermine si le nombre d'heures d'une durée de cuisson est valide
|
||||
// * (comprise entre 0 et 9)
|
||||
// *
|
||||
// * @param heureCuisson heure à tester
|
||||
// * @return un booléen égal à vrai ssi l'heure de la durée est valide
|
||||
// */
|
||||
// public static boolean heureCuissonValide(int heureCuisson) {
|
||||
// return 0 <= heureCuisson && heureCuisson <= HEURE_MAX;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Détermine si le nombre de minutes d'une durée de cuisson est valide
|
||||
// * (comprise entre 0 et 59)
|
||||
// *
|
||||
// * @param minuteCuisson minute à tester
|
||||
// * @return un booléen égal à vrai ssi le nombre de minutes de la durée est valide
|
||||
// */
|
||||
// public static boolean minuteCuissonValide(int minuteCuisson) {
|
||||
// return 0 <= minuteCuisson && minuteCuisson <= 59;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Détermine si une température de cuisson est valide
|
||||
// * (strictement positive et inférieure ou égale à TEMPERATURE_MAX)
|
||||
// *
|
||||
// * @param temperature temperature à tester
|
||||
// * @return un booléen égal à vrai ssi la température est valide
|
||||
// */
|
||||
// public static boolean temperatureValide(int temperature) {
|
||||
// return 0 < temperature && temperature <= TEMPERATURE_MAX;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Concatène les arguments dans une chaîne de caractères. Celle-ci aura le format
|
||||
// * suivant :
|
||||
// * nom du plat | temps de cuisson en heures et minutes | température
|
||||
// * Si l'un des arguments est invalide, c'est la constante CHAINE_DEFAUT qui
|
||||
// * est renvoyée
|
||||
// *
|
||||
// * @param nomPlat nom du plat. Doit être non vide, avec au plus
|
||||
// * LG_MAX_PLAT caractères, ne doit pas contenir |
|
||||
// * @param heureCuisson nombre d'heures de la durée de la cuisson
|
||||
// * doit être compris entre 0 et 9
|
||||
// * @param minuteCuisson nombre de minutes de la durée de la cuisson
|
||||
// * doit être compris entre 0 et 59
|
||||
// * @param temperature température de la cuisson. Doit être comprise entre
|
||||
// * 1 et TEMPERATURE_MAX
|
||||
// * @return une chaîne contenant le descriptif de la cuisson si les paramètres
|
||||
// * sont valides. Sinon la chaîne CHAINE_DEFAUT
|
||||
// */
|
||||
// public static String transformeEnChaine(String nomPlat, int heureCuisson,
|
||||
// int minuteCuisson, int temperature) {
|
||||
// StringBuilder aRenvoyer = new StringBuilder();
|
||||
//
|
||||
// if (platValide(nomPlat) && heureCuissonValide(heureCuisson)
|
||||
// && minuteCuissonValide(minuteCuisson) && temperatureValide(temperature)) {
|
||||
//
|
||||
// // on insère le nom du plat
|
||||
// aRenvoyer.append(nomPlat);
|
||||
// aRenvoyer.append(chaineEspace(LG_MAX_PLAT - nomPlat.length()));
|
||||
// aRenvoyer.append(" | ");
|
||||
//
|
||||
// // on insère la durée
|
||||
// aRenvoyer.append(String.valueOf(heureCuisson));
|
||||
// aRenvoyer.append(" h ");
|
||||
// if (minuteCuisson < 10) {
|
||||
// aRenvoyer.append("0");
|
||||
// }
|
||||
// aRenvoyer.append(String.valueOf(minuteCuisson));
|
||||
// aRenvoyer.append(" | ");
|
||||
//
|
||||
// // on insère la température
|
||||
// aRenvoyer.append(String.format("%3d", temperature));
|
||||
// } else {
|
||||
//
|
||||
// // l'un des arguments est invalide
|
||||
// aRenvoyer.append(CHAINE_DEFAUT);
|
||||
// }
|
||||
// return aRenvoyer.toString();
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Extrait d'une chaîne le nom du plat. On suppose que la chaîne est correctement
|
||||
// * formatée dans le format de la description d'une cuisson gérée par cette classe
|
||||
// * (les 20 premiers caractères de la chaîne sont extraits)
|
||||
// *
|
||||
// * @param source chaîne source de l'extraction
|
||||
// * @return une chaîne contenant le nom du plat ou CHAINE_DEFAUT si la chaîne
|
||||
// * argument est trop courte
|
||||
// */
|
||||
// public static String extrairePlat(String source) {
|
||||
// if (source.length() < LG_MAX_PLAT) {
|
||||
// return CHAINE_DEFAUT;
|
||||
// } else {
|
||||
// return source.substring(0, LG_MAX_PLAT);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Extrait d'une chaîne la température de cuisson. On suppose que la chaîne
|
||||
// * est correctement formatée dans le format de la description d'une cuisson
|
||||
// * gérée par cette classe (la température est présente sur les 3 derniers
|
||||
// * caractères de la chaîne)
|
||||
// *
|
||||
// * @param source chaîne source de l'extraction
|
||||
// * @return un entier égal à la température extraite ou bien -1 si un
|
||||
// * problème inattendu a été rencontré avec le format de la chaîne
|
||||
// */
|
||||
// public static int extraireTemperature(String source) {
|
||||
// int temperature; // température extraite
|
||||
// String chaineTemperature; // température extraite en tant que chaîne
|
||||
//
|
||||
//
|
||||
// try {
|
||||
// chaineTemperature = source.substring(source.length() - 3, source.length());
|
||||
// temperature = Integer.parseInt(chaineTemperature);
|
||||
// } catch (NumberFormatException | IndexOutOfBoundsException erreur) {
|
||||
//
|
||||
// /*
|
||||
// * erreur lors de l'extraction des 3 derniers caractère
|
||||
// * ou lors de la transformation en entier
|
||||
// */
|
||||
// temperature = -1;
|
||||
// }
|
||||
// return temperature;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Renvoie le thermostat correspondant à la temperature arguemnt
|
||||
// * (celle-ci doit être inférieure à TEMPERATURE_MAX)
|
||||
// *
|
||||
// * @param temperature température à convertir
|
||||
// * @return l'entier égal au thermostat ou -1 si la température est invalide
|
||||
// */
|
||||
// public static int thermostat(int temperature) {
|
||||
// int aRenvoyer; // valeur du thermostat à renvoyer
|
||||
// if (temperature <= 0 || temperature > TEMPERATURE_MAX) {
|
||||
// aRenvoyer = -1;
|
||||
// } else {
|
||||
// aRenvoyer = temperature / 30;
|
||||
// if (temperature % 30 > 15) {
|
||||
// aRenvoyer++;
|
||||
// }
|
||||
// }
|
||||
// return aRenvoyer;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * Renvoie une chaîne constituée d'espaces. Le nombre d'espaces est indiqué
|
||||
// * par le paramètre.
|
||||
// *
|
||||
// * @param nbEspace nombre d'espaces à placer dans la chaîne
|
||||
// * @return une chaîne constituée du caractère espace
|
||||
// */
|
||||
// private static String chaineEspace(int nbEspace) {
|
||||
// StringBuilder aRenvoyer = new StringBuilder();
|
||||
// for (int i = 1; i <= nbEspace; i++) {
|
||||
// aRenvoyer.append(" ");
|
||||
// }
|
||||
// return aRenvoyer.toString();
|
||||
// }
|
||||
//
|
||||
//}
|
||||
Reference in New Issue
Block a user