From 23ac354bb65bed5b8d008c036fabf0e61978bdf4 Mon Sep 17 00:00:00 2001 From: "Waetschker Daniel (uib17511)" Date: Wed, 16 Sep 2020 17:40:56 +0200 Subject: [PATCH] create vehicle list create observer implement debug text view --- .../java/de/hems/trafficsim/MainActivity.java | 27 ++++++++++++++++++- .../main/java/de/hems/trafficsim/Track.java | 25 ++++++++++++++--- app/src/main/res/layout/activity_main.xml | 21 +++++++++++++++ 3 files changed, 68 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/de/hems/trafficsim/MainActivity.java b/app/src/main/java/de/hems/trafficsim/MainActivity.java index e33a793..7a3cb63 100644 --- a/app/src/main/java/de/hems/trafficsim/MainActivity.java +++ b/app/src/main/java/de/hems/trafficsim/MainActivity.java @@ -3,12 +3,37 @@ package de.hems.trafficsim; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; +import android.view.View; +import android.widget.TextView; -public class MainActivity extends AppCompatActivity { +import java.util.Observable; +import java.util.Observer; + +public class MainActivity extends AppCompatActivity implements Observer { + + protected Track track; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + this.track = new Track(); + this.track.addObserver(this); + + } + + @Override + public void update(Observable observable, Object o) { + String s = ""; + for (Vehicle v: this.track.getVehicles()){ + s+="Pos = " + v.getPosition() +"\n"; + } + TextView view = (TextView) findViewById(R.id.debugTextView); + view.setText(s); + view.invalidate(); + } + + public void onStepButtonClick (View view){ + this.track.timeElapse(50); } } \ No newline at end of file diff --git a/app/src/main/java/de/hems/trafficsim/Track.java b/app/src/main/java/de/hems/trafficsim/Track.java index d08685b..7671c8f 100644 --- a/app/src/main/java/de/hems/trafficsim/Track.java +++ b/app/src/main/java/de/hems/trafficsim/Track.java @@ -1,16 +1,33 @@ package de.hems.trafficsim; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; +import java.util.Observable; -public class Track { +public class Track extends Observable { protected List vehicles; + public List getVehicles() { + return vehicles; + } + + public Track() { - this.vehicles = new LinkedList<>(); + this.vehicles = createVehiclesList(); } - public void timeElapse(float timeStep) { + protected List createVehiclesList(){ + List result = new ArrayList<>(); + for(int i=0;i<10;i++){ + Vehicle vehicle = new Vehicle(i, 5, 0.2f); + result.add(vehicle); + } + return result; + } + public void timeElapse(float timeStep) { + this.setChanged(); + this.notifyObservers(this); + this.clearChanged(); } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 0b15a20..5d5c8ca 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,4 +6,25 @@ android:layout_height="match_parent" tools:context=".MainActivity"> + + +