1 package org
.argeo
.slc
.jts
;
5 import org
.argeo
.slc
.geotools
.map
.OverlayLocationReceiver
;
6 import org
.argeo
.slc
.gis
.model
.FieldPosition
;
8 public class PositionUpdater
implements Runnable
{
9 private PositionProvider positionProvider
;
10 private List
<OverlayLocationReceiver
> positionReceivers
;
12 private Integer positionRefreshPeriod
= 1;
14 private Thread thread
;
15 private Boolean running
= false;
17 private FieldPosition currentPosition
= null;
21 FieldPosition position
= positionProvider
.currentPosition();
23 for (OverlayLocationReceiver receiver
: positionReceivers
) {
24 if (position
!= null) {
25 currentPosition
= position
;
26 receiver
.receiveOverlayLocation(
27 currentPosition
.getLocation(), false);
29 receiver
.receiveOverlayLocation(
30 currentPosition
.getLocation(), true);
35 Thread
.sleep(positionRefreshPeriod
* 1000);
36 } catch (InterruptedException e
) {
44 thread
= new Thread(this, "Position Updater");
52 } catch (InterruptedException e
) {
57 public void setPositionProvider(PositionProvider positionProvider
) {
58 this.positionProvider
= positionProvider
;
61 public void setPositionRefreshPeriod(Integer positionRefreshPeriod
) {
62 this.positionRefreshPeriod
= positionRefreshPeriod
;