@@ -3,12 +3,37 @@ package de.hems.trafficsim; | |||||
import androidx.appcompat.app.AppCompatActivity; | import androidx.appcompat.app.AppCompatActivity; | ||||
import android.os.Bundle; | 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 | @Override | ||||
protected void onCreate(Bundle savedInstanceState) { | protected void onCreate(Bundle savedInstanceState) { | ||||
super.onCreate(savedInstanceState); | super.onCreate(savedInstanceState); | ||||
setContentView(R.layout.activity_main); | 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); | |||||
} | } | ||||
} | } |
@@ -1,16 +1,33 @@ | |||||
package de.hems.trafficsim; | package de.hems.trafficsim; | ||||
import java.util.LinkedList; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Observable; | |||||
public class Track { | |||||
public class Track extends Observable { | |||||
protected List<Vehicle> vehicles; | protected List<Vehicle> vehicles; | ||||
public List<Vehicle> getVehicles() { | |||||
return vehicles; | |||||
} | |||||
public Track() { | public Track() { | ||||
this.vehicles = new LinkedList<>(); | |||||
this.vehicles = createVehiclesList(); | |||||
} | } | ||||
public void timeElapse(float timeStep) { | |||||
protected List<Vehicle> createVehiclesList(){ | |||||
List<Vehicle> 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(); | |||||
} | } | ||||
} | } |
@@ -6,4 +6,25 @@ | |||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
tools:context=".MainActivity"> | tools:context=".MainActivity"> | ||||
<TextView | |||||
android:id="@+id/debugTextView" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:layout_marginStart="16dp" | |||||
android:layout_marginTop="16dp" | |||||
android:text="TextView" | |||||
app:layout_constraintStart_toStartOf="parent" | |||||
app:layout_constraintTop_toTopOf="parent" /> | |||||
<Button | |||||
android:id="@+id/stepButton" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:layout_marginBottom="16dp" | |||||
android:onClick="onStepButtonClick" | |||||
android:text="Button" | |||||
app:layout_constraintBottom_toBottomOf="parent" | |||||
app:layout_constraintEnd_toEndOf="parent" | |||||
app:layout_constraintHorizontal_bias="0.5" | |||||
app:layout_constraintStart_toStartOf="parent" /> | |||||
</androidx.constraintlayout.widget.ConstraintLayout> | </androidx.constraintlayout.widget.ConstraintLayout> |