Commit 29e50d28c6f4464dba34fec4e9c3d53460a5183c
1 parent
783fd26bfe
Exists in
master
put date of first appearance in the right class
Showing 2 changed files with 12 additions and 9 deletions Inline Diff
src/app/model/vessel.ts
View file @
29e50d2
| import {Message} from './message'; | 1 | 1 | import {Message} from './message'; | |
| 2 | 2 | |||
| export class Vessel { | 3 | 3 | export class Vessel { | |
| messages: Array<Message>; | 4 | 4 | messages: Array<Message>; | |
| 5 | firstAppearance: number; | |||
| 5 | 6 | |||
| constructor(messages: Array<Message>) { | 6 | 7 | constructor(messages: Array<Message>) { | |
| this.messages = messages; | 7 | 8 | this.messages = messages; | |
| } | 8 | 9 | } | |
| 9 | 10 | |||
| addMessage(message: Message): void { | 10 | 11 | addMessage(message: Message): void { | |
| this.messages.push(message); | 11 | 12 | this.messages.push(message); | |
| 13 | this.determineFirstAppearance(message); | |||
| 14 | ||||
| } | 12 | 15 | } | |
| 13 | 16 | |||
| getMMSI(): string { | 14 | 17 | getMMSI(): string { | |
| if (this.messages.length === 0) { | 15 | 18 | if (this.messages.length === 0) { | |
| return ''; | 16 | 19 | return ''; | |
| } | 17 | 20 | } | |
| return this.messages[0].mmsi; | 18 | 21 | return this.messages[0].mmsi; | |
| } | 19 | 22 | } | |
| 20 | 23 | |||
| getName(): string { | 21 | 24 | getName(): string { | |
| return this.messages[0].vesselName; | 22 | 25 | return this.messages[0].vesselName; | |
| } | 23 | 26 | } | |
| 24 | 27 | |||
| public getColor(): string { | 25 | 28 | public getColor(): string { | |
| return '#' + (+this.getMMSI()).toString(16).substr(0, 6); | 26 | 29 | return '#' + (+this.getMMSI()).toString(16).substr(0, 6); | |
| 30 | } | |||
| 31 | ||||
| 32 | determineFirstAppearance(message: Message): void { | |||
| 33 | const timeInS = Date.parse(message.time) / 1000; |
src/app/model/vessels.ts
View file @
29e50d2
| import {Vessel} from './vessel'; | 1 | 1 | import {Vessel} from './vessel'; | |
| import {Message} from './message'; | 2 | 2 | import {Message} from './message'; | |
| 3 | 3 | |||
| export class Vessels { | 4 | 4 | export class Vessels { | |
| vessels: Map<number, Vessel>; | 5 | 5 | vessels: Map<number, Vessel>; | |
| firstAppearance: number; | 6 | |||
| 7 | 6 | |||
| constructor() { | 8 | 7 | constructor() { | |
| this.vessels = new Map<number, Vessel>(); | 9 | 8 | this.vessels = new Map<number, Vessel>(); | |
| } | 10 | 9 | } | |
| 11 | 10 | |||
| addMessage(message: Message): void { | 12 | 11 | addMessage(message: Message): void { | |
| if (!this.vessels.get(Number(message.mmsi))) { | 13 | 12 | if (!this.vessels.get(Number(message.mmsi))) { | |
| this.vessels.set(Number(message.mmsi), new Vessel(new Array<Message>())); | 14 | 13 | this.vessels.set(Number(message.mmsi), new Vessel(new Array<Message>())); | |
| } | 15 | 14 | } | |
| this.determineFirstAppearance(message); | 16 | |||
| this.vessels.get(Number(message.mmsi)).addMessage(message); | 17 | 15 | this.vessels.get(Number(message.mmsi)).addMessage(message); | |
| } | 18 | 16 | } | |
| 19 | 17 | |||
| determineFirstAppearance(message: Message): void { | 20 | 18 | ||
| const timeInS = Date.parse(message.time) / 1000; | 21 | |||
| if (this.firstAppearance > timeInS) { | 22 | |||
| this.firstAppearance = timeInS; | 23 |