diff --git a/app/src/main/java/com/example/myhabitat/PiecesActivity.java b/app/src/main/java/com/example/myhabitat/PiecesActivity.java index 7b032392d62aea52c186bc67816a75244fd51052..e0837e4a99b38a29a4ecaf9482c2d0d912fb55c0 100644 --- a/app/src/main/java/com/example/myhabitat/PiecesActivity.java +++ b/app/src/main/java/com/example/myhabitat/PiecesActivity.java @@ -1,24 +1,29 @@ package com.example.myhabitat; import android.content.Intent; +import android.text.Editable; +import android.text.TextWatcher; import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; -import habitat.Habitat; -import habitat.Mur; -import habitat.Orientation; -import habitat.Piece; +import habitat.*; public class PiecesActivity extends AppCompatActivity { private Habitat habitat; private TextView textView; + private GestionnaireEditPiece gestionnaire; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pieces); + gestionnaire = new GestionnaireEditPiece(); + //On récupère Habitat Intent intent = getIntent(); if (intent != null){ @@ -26,12 +31,51 @@ public class PiecesActivity extends AppCompatActivity { if (habitat != null){ this.habitat = habitat; this.habitat.setCorrectly(); + affichePieces(); + /* textView = findViewById(R.id.textViewPieces); textView.setText(habitat.toString()); + + */ } } } + private void affichePieces() { + gestionnaire.reset(); + LinearLayout ll = findViewById(R.id.linearLayout); + ll.removeAllViews(); + for(Piece piece : habitat.getPieces()){ + EditText editText = new EditText(this); + editText.setText(piece.getNom()); + editText.setImeOptions(EditorInfo.IME_ACTION_DONE); + editText.setSingleLine(); + gestionnaire.add(editText, piece); + + editText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + gestionnaire.getPiece(editText).setNom(String.valueOf(editText.getText())); + majHabitat(); + } + }); + + TextView textView1 = new TextView(this); + textView1.setText(piece.getMurs().toString()); + ll.addView(editText); + ll.addView(textView1); + } + } + public void addPiece(View view) { Piece piece1 = new Piece("p", habitat); Mur murN = new Mur(piece1, Orientation.NORD, habitat); @@ -40,7 +84,11 @@ public class PiecesActivity extends AppCompatActivity { Mur murO = new Mur(piece1, Orientation.OUEST, habitat); piece1.setMurs(murS, murO, murN, murE); habitat.getPieces().add(piece1); - textView.setText(habitat.toString()); + affichePieces(); + majHabitat(); + } + + public void majHabitat(){ Intent intent = new Intent().putExtra("Habitat", habitat); setResult(RESULT_OK, intent); } diff --git a/app/src/main/java/habitat/GestionnaireEditPiece.java b/app/src/main/java/habitat/GestionnaireEditPiece.java new file mode 100644 index 0000000000000000000000000000000000000000..7d5b67cdb1dc7aa926b2fbd2966695b51932bea3 --- /dev/null +++ b/app/src/main/java/habitat/GestionnaireEditPiece.java @@ -0,0 +1,27 @@ +package habitat; + +import android.widget.EditText; + +import java.util.HashMap; + +public class GestionnaireEditPiece { + + private HashMap<EditText, Piece> hmap; + + public GestionnaireEditPiece() { + hmap = new HashMap<EditText, Piece>(); + } + + public void add(EditText editText, Piece piece){ + hmap.put(editText, piece); + } + + public Piece getPiece(EditText editText){ + return hmap.get(editText); + } + + public void reset(){ + hmap.clear(); + } + +} diff --git a/app/src/main/res/layout/activity_pieces.xml b/app/src/main/res/layout/activity_pieces.xml index 91b4f197be348f834510e3f13f4219fa4e6d5466..0156df51c6aaac43e42591f8f82c065b74228d98 100644 --- a/app/src/main/res/layout/activity_pieces.xml +++ b/app/src/main/res/layout/activity_pieces.xml @@ -7,16 +7,6 @@ android:layout_height="match_parent" tools:context=".PiecesActivity"> - <TextView - android:text="TextView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/textViewPieces" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent"/> - <Button android:text="Ajouter une piece" android:layout_width="wrap_content" @@ -25,7 +15,19 @@ android:onClick="addPiece" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" - android:layout_marginTop="40dp" - app:layout_constraintTop_toBottomOf="@+id/textViewPieces" - app:layout_constraintBottom_toBottomOf="parent"/> + app:layout_constraintBottom_toBottomOf="parent" + /> + + <LinearLayout + android:id="@+id/linearLayout" + android:orientation="vertical" + android:layout_width="314dp" + android:layout_height="596dp" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintVertical_bias="1.0" + android:layout_marginTop="200dp" + app:layout_constraintBottom_toTopOf="@+id/addPiece" + app:layout_constraintEnd_toEndOf="parent"> + </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file