diff options
author | Ben Burwell <ben.burwell@trifecta.com> | 2016-11-15 23:43:08 -0500 |
---|---|---|
committer | Ben Burwell <ben.burwell@trifecta.com> | 2016-11-15 23:43:08 -0500 |
commit | 54b0fab72106672ea1d9ca4d81d782b6bf1c6820 (patch) | |
tree | 3928fbfc9e0021d15326caa4500b98db13b0a75b /src/com/benburwell/planes/gui/AircraftTableModel.java | |
parent | e2ae5749a522b0d4d2657a2cac571b1524d33cfa (diff) |
Implement data table
Diffstat (limited to 'src/com/benburwell/planes/gui/AircraftTableModel.java')
-rw-r--r-- | src/com/benburwell/planes/gui/AircraftTableModel.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/com/benburwell/planes/gui/AircraftTableModel.java b/src/com/benburwell/planes/gui/AircraftTableModel.java new file mode 100644 index 0000000..72be372 --- /dev/null +++ b/src/com/benburwell/planes/gui/AircraftTableModel.java @@ -0,0 +1,65 @@ +package com.benburwell.planes.gui; + +import com.benburwell.planes.data.Aircraft; + +import javax.swing.table.AbstractTableModel; +import java.util.Map; +import java.util.List; +import java.util.ArrayList; +import java.util.Collections; + +/** + * Created by ben on 11/15/16. + */ +public class AircraftTableModel extends AbstractTableModel { + private Map<String,Aircraft> aircraftMap; + private String[] columnNames = { "Hex", "Callsign", "Squawk", "Latitude", "Longitude", "Altitude", "Packets" }; + + public AircraftTableModel(Map<String,Aircraft> aircraftMap) { + this.aircraftMap = aircraftMap; + } + + @Override + public int getRowCount() { + return this.aircraftMap.keySet().size(); + } + + @Override + public int getColumnCount() { + return this.columnNames.length; + } + + @Override + public String getColumnName(int col) { + return this.columnNames[col]; + } + + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + List<Aircraft> aircraftList = this.getAircraftList(); + Aircraft aircraft = aircraftList.get(rowIndex); + switch (columnIndex) { + case 0: + return aircraft.getHexIdent(); + case 1: + return aircraft.getCallsign(); + case 2: + return aircraft.getSquawk(); + case 3: + return aircraft.getCurrentPosition().getLatitude(); + case 4: + return aircraft.getCurrentPosition().getLongitude(); + case 5: + return aircraft.getCurrentPosition().getAltitude(); + case 6: + return aircraft.getPacketCount(); + } + return ""; + } + + private List<Aircraft> getAircraftList() { + List<Aircraft> aircraftList = new ArrayList<>(this.aircraftMap.values()); + Collections.sort(aircraftList); + return aircraftList; + } +} |