# -*- coding: utf-8 -*-

# <----- Importation des bibliothèques ----->
from tkinter import *

# <----- Créations des différents objets ----->
class Interface(Frame):
    def __init__(self, fenetre, **kwargs):
        Frame.__init__(self, fenetre, width=360, height=500, **kwargs)
		
        #Données initiales
        g = 9.82
        self.m2=660000.
        self.visco=52000.
        self.m1=264000000.
        self.k1=225000000.
        self.x0=0.5
        self.k2=510000.
        self.nbpt1=50000 
        self.nbpt2=10000 
        self.nbpt3=5000
        		
        self.pack()
        #taille de la fenetre
        fenetre.geometry('360x500')
        self.update()   

        # Création du champs m1
        # Afichage d'un texte 
		
        # On crée un Label, c'est-à-dire un objet graphique affichant du texte
        self.message = Label(self, text="Masse de la tour (m1) :")
        # On place le texte 
        self.message.place(bordermode=OUTSIDE, height=20,width=200, x=10,y=30)
        # Création du champs
        self.m1_entry = Entry(self, textvariable=self.m1, width=30)   
        # On place le champs
        self.m1_entry.place(bordermode=OUTSIDE, height=20, width=100, x=220,y=30)
        # On lui donne sa valeur initiale        
        self.m1_entry.insert(0,self.m1)      

        # Création du champs k1
        <----- COMPLETER ----->  
        <----- COMPLETER ----->       
        <----- COMPLETER ----->    
        <----- COMPLETER ----->  
        <----- COMPLETER ----->  

        # Création du champs x0
        self.message = Label(self, text="Solicitation de départ (x0) :")
        self.message.place(bordermode=OUTSIDE, height=20,width=200, x=10,y=110)      
        self.x0_entry = Entry(self, textvariable=self.x0, width=30)   
        self.x0_entry.place(bordermode=OUTSIDE, height=20, width=100, x=220,y=110)
        self.x0_entry.insert(0,self.x0)   

        # Création du champs m2
        self.message = Label(self, text="Masse de l'amortisseur (m2) :")
        self.message.place(bordermode=OUTSIDE, height=20,width=200, x=10,y=150)
        self.m2_entry = Entry(self, textvariable=self.m2, width=30)   
        self.m2_entry.place(bordermode=OUTSIDE, height=20, width=100, x=220,y=150)
        self.m2_entry.insert(0,self.m2)  

        
        # Création du champs k2
        self.message = Label(self, text="Raideur de l'amortisseur (k2) :")
        self.message.place(bordermode=OUTSIDE, height=20,width=200, x=10,y=190)
        self.k2_entry = Entry(self, textvariable=self.k2, width=30)   
        self.k2_entry.place(bordermode=OUTSIDE, height=20, width=100, x=220,y=190)
        self.k2_entry.insert(0,self.k2)   

        # Création du champs f
        self.message = Label(self, text="Viscosité de l'amortisseur (v):")
        self.message.place(bordermode=OUTSIDE, height=20,width=200, x=10,y=230)
        self.visco_entry = Entry(self, textvariable=self.visco, width=30)   
        self.visco_entry.place(bordermode=OUTSIDE, height=20, width=100, x=220,y=230)
        self.visco_entry.insert(0,self.visco) 
      
        # Création du champs nbpt1
        self.message = Label(self, text="Nombre de points utilisés pour \n  la simulation 1 (avec animation) :")
        self.message.place(bordermode=OUTSIDE, height=25,width=200, x=10,y=270)
        self.nbpt1_entry = Entry(self, textvariable=self.nbpt1, width=30)   
        self.nbpt1_entry.place(bordermode=OUTSIDE, height=20, width=100, x=220,y=270)
        self.nbpt1_entry.insert(0,self.nbpt1) 

        # Création du champs nbpt2
        self.message = Label(self, text="Nombre de points utilisés pour \n la simulation 2 (en bleu):")
        self.message.place(bordermode=OUTSIDE, height=25,width=200, x=10,y=310)
        self.nbpt2_entry = Entry(self, textvariable=self.nbpt2, width=30)   
        self.nbpt2_entry.place(bordermode=OUTSIDE, height=20, width=100, x=220,y=310)
        self.nbpt2_entry.insert(0,self.nbpt2) 

        # Création du champs nbpt3
        self.message = Label(self, text="Nombre de points utilisés pour \n la simulation 3 (en vert) :")
        self.message.place(bordermode=OUTSIDE, height=25,width=200, x=10,y=350)
        self.nbpt3_entry = Entry(self, textvariable=self.nbpt3, width=30)   
        self.nbpt3_entry.place(bordermode=OUTSIDE, height=20, width=100, x=220,y=350)
        self.nbpt3_entry.insert(0,self.nbpt3) 
     
        # Création de l'affichage des valeurs
        self.message2 = Label(self, text="Valeurs:")
        self.message2.place(bordermode=OUTSIDE, height=30, x=10,y=390)

        # Création du bouton d'enregistrement des valeurs     
        # définition du bouton et de l'action associée        
        self.bouton_enregistrer = Button(self, text="Modifier", fg="black",command=self.modifier)
        #position du bouton        
        self.bouton_enregistrer.place(bordermode=OUTSIDE, height=20, width=100, x=120,y=430)
        
        # Création du bouton de lancement de la simulation     
        self.bouton_quitter = Button(self, text="Valider", command=self.quit)
        self.bouton_quitter.place(bordermode=OUTSIDE, height=20, width=100, x=240,y=430)
     

    def modifier(self):
        #si on clique sur modifier on recupere les valeurs de chaque champs
        self.m1=self.m1_entry.get()
        self.k1=self.k1_entry.get()
        self.x0=self.x0_entry.get()
        self.m2=self.m2_entry.get()
        self.k2=self.k2_entry.get()
        self.visco=self.visco_entry.get()
        self.nbpt1=self.nbpt1_entry.get()
        self.nbpt2=self.nbpt2_entry.get()
        self.nbpt3=self.nbpt3_entry.get()
        #On met alors a jour le texte donnant les valeurs enregistrées
        self.message2['text'] = "Valeurs: m1 = {0},k1={1},x0={2},m2={3},k2={4},visco={5},\n nbpt1={6},nbpt2={7},nbpt3={8} ".format(self.m1,self.k1,self.x0,self.m2,self.k2,self.visco,self.nbpt1,self.nbpt2,self.nbpt3)





        



            



