GUI_ViewRoute
This commit is contained in:
parent
b3847bad78
commit
67c81d22d6
126
src/GUI_ViewRoute.java
Normal file
126
src/GUI_ViewRoute.java
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Font;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JScrollPane;
|
||||||
|
import javax.swing.JTable;
|
||||||
|
import javax.swing.ListSelectionModel;
|
||||||
|
import javax.swing.event.ListSelectionListener;
|
||||||
|
import javax.swing.table.DefaultTableModel;
|
||||||
|
import javax.swing.JComboBox;
|
||||||
|
import javax.swing.DefaultComboBoxModel;
|
||||||
|
import javax.swing.JTextField;
|
||||||
|
import javax.swing.JScrollBar;
|
||||||
|
|
||||||
|
public class GUI_ViewRoute {
|
||||||
|
JFrame frame;
|
||||||
|
private String[] vehicleColNames = {"Num", "Status", "Length","Capacity", "Best Time", "Used By"};
|
||||||
|
private Object[][] vehicleData;
|
||||||
|
private JTable table;
|
||||||
|
private Route[] stdRoute;
|
||||||
|
private PDate currenttimeManager;
|
||||||
|
private ArrayList<Campaign> listOfCampaigns;
|
||||||
|
private JTextField txtStreets;
|
||||||
|
private JLabel lblDate;
|
||||||
|
private JLabel lblTime;
|
||||||
|
|
||||||
|
public GUI_ViewRoute(Route[] stdRoute, ArrayList<Campaign> listOfCampaigns, PDate currenttimeManager) {
|
||||||
|
this.stdRoute = stdRoute;
|
||||||
|
this.listOfCampaigns = listOfCampaigns;
|
||||||
|
this.currenttimeManager = currenttimeManager;
|
||||||
|
makeFrame();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void makeFrame() {
|
||||||
|
frame = new JFrame("Routes");
|
||||||
|
frame.getContentPane().setBackground(new Color(70, 70, 70));
|
||||||
|
frame.getContentPane().setForeground(new Color(0, 0, 0));
|
||||||
|
frame.setBounds(100,100,815,480);
|
||||||
|
frame.getContentPane().setLayout(null);
|
||||||
|
frame.setLocationRelativeTo(null);
|
||||||
|
|
||||||
|
vehicleData = new Object[stdRoute.length][6];
|
||||||
|
for (int i = 0; i < stdRoute.length; i++) {
|
||||||
|
vehicleData[i][0] = i;
|
||||||
|
vehicleData[i][1] = String.format("%s : %s",stdRoute[i].getHotelArea(),stdRoute[i].getMashier());
|
||||||
|
vehicleData[i][2] = stdRoute[i].getTotalLength();
|
||||||
|
vehicleData[i][3] = String.format("%.2f",stdRoute[i].capcity());
|
||||||
|
vehicleData[i][4] = stdRoute[i].getFastestTimeOfTravel(new Bus());
|
||||||
|
int count = 0;
|
||||||
|
for (Campaign campaign : listOfCampaigns)
|
||||||
|
if (campaign.getRoute() == stdRoute[i])
|
||||||
|
count += campaign.getVehicles().size();
|
||||||
|
|
||||||
|
vehicleData[i][5] = String.format("%d buses", count);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table = new JTable(vehicleData,vehicleColNames);
|
||||||
|
table.setModel(new DefaultTableModel(vehicleData,vehicleColNames));
|
||||||
|
table.getColumnModel().getColumn(0).setPreferredWidth(30);
|
||||||
|
table.getColumnModel().getColumn(1).setPreferredWidth(190);
|
||||||
|
table.getColumnModel().getColumn(2).setPreferredWidth(55);
|
||||||
|
table.getColumnModel().getColumn(3).setPreferredWidth(57);
|
||||||
|
table.getColumnModel().getColumn(5).setPreferredWidth(75);
|
||||||
|
table.setColumnSelectionAllowed(true);
|
||||||
|
table.setCellSelectionEnabled(true);
|
||||||
|
DefaultTableModel model = new DefaultTableModel();
|
||||||
|
model.setColumnIdentifiers(vehicleColNames);
|
||||||
|
ListSelectionModel model2 = table.getSelectionModel();
|
||||||
|
model2.addListSelectionListener(e -> {
|
||||||
|
int row = model2.getMinSelectionIndex();
|
||||||
|
String streets = "";
|
||||||
|
for (Street street : stdRoute[row].getStreets())
|
||||||
|
streets += street.getName().name() +" >> ";
|
||||||
|
if (stdRoute[row].getMashier() == Mashier.ARAFAT)
|
||||||
|
txtStreets.setText(stdRoute[row].getHotelArea().name()+" >> "+streets+stdRoute[row].getMashier().name());
|
||||||
|
else txtStreets.setText(stdRoute[row].getMashier().name()+" >> "+streets+stdRoute[row].getHotelArea().name());
|
||||||
|
});
|
||||||
|
table.getTableHeader().setBackground(new Color(17,17,17));
|
||||||
|
table.getTableHeader().setFont(new Font("Rockwell", Font.PLAIN, 18));
|
||||||
|
table.getTableHeader().setForeground(Color.WHITE);
|
||||||
|
table.setBackground(new Color(17,17,17));
|
||||||
|
table.setForeground(Color.WHITE);
|
||||||
|
table.setGridColor(new Color(102, 102, 102));
|
||||||
|
table.setFont(new Font("Rockwell", Font.PLAIN, 18));
|
||||||
|
table.setRowHeight(25);
|
||||||
|
table.setAutoCreateRowSorter(true);
|
||||||
|
table.revalidate();
|
||||||
|
|
||||||
|
|
||||||
|
JScrollPane scrollPane = new JScrollPane(table);
|
||||||
|
scrollPane.setBounds(10, 44, 755, 300);
|
||||||
|
frame.getContentPane().add(scrollPane);
|
||||||
|
|
||||||
|
txtStreets = new JTextField("Select Route");
|
||||||
|
txtStreets.setBackground(Color.BLACK);
|
||||||
|
txtStreets.setForeground(Color.WHITE);
|
||||||
|
txtStreets.setFont(new Font("Rockwell", Font.PLAIN, 17));
|
||||||
|
txtStreets.setBounds(10, 382, 755, 48);
|
||||||
|
frame.getContentPane().add(txtStreets);
|
||||||
|
txtStreets.setColumns(10);
|
||||||
|
|
||||||
|
lblTime = new JLabel("Time:");
|
||||||
|
lblTime.setForeground(Color.WHITE);
|
||||||
|
lblTime.setFont(new Font("Rockwell", Font.PLAIN, 16));
|
||||||
|
lblTime.setBounds(10, 11, 72, 20);
|
||||||
|
frame.getContentPane().add(lblTime);
|
||||||
|
|
||||||
|
lblDate = new JLabel(currenttimeManager.getCurrentTime().toString());
|
||||||
|
lblDate.setForeground(Color.WHITE);
|
||||||
|
lblDate.setFont(new Font("Rockwell", Font.PLAIN, 16));
|
||||||
|
lblDate.setBounds(61, 11, 326, 20);
|
||||||
|
frame.getContentPane().add(lblDate);
|
||||||
|
|
||||||
|
JLabel lblStreets = new JLabel("Streets :");
|
||||||
|
lblStreets.setForeground(Color.WHITE);
|
||||||
|
lblStreets.setFont(new Font("Rockwell", Font.PLAIN, 16));
|
||||||
|
lblStreets.setBounds(10, 355, 72, 20);
|
||||||
|
frame.getContentPane().add(lblStreets);
|
||||||
|
|
||||||
|
frame.setVisible(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user