You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.2 KiB

package cmpt213.assignment3.packagedeliveries.view;
import cmpt213.assignment3.packagedeliveries.control.PackageDeliveriesTracker;
import com.sun.tools.jconsole.JConsoleContext;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Objects;
public class JavaSwingUI implements ActionListener {
JFrame uiFrame;
JTextPane uiPane;
private final PackageDeliveriesTracker pTracker=PackageDeliveriesTracker.getInstance();
public void displayMainPage(){
pTracker.load();
uiFrame=new JFrame("package deliveries tracker");
uiFrame.setSize(500, 500);
uiFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
uiFrame.setLayout(new BoxLayout(uiFrame.getContentPane(), BoxLayout.Y_AXIS));
uiFrame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
pTracker.save();
super.windowClosing(e);
uiFrame.dispose();
}
});
uiFrame.setVisible(true);
displayPackages();
addButton();
}
private void displayPackages(){
uiPane=new JTextPane();
JScrollPane scrollView=new JScrollPane(uiPane);
uiPane.setEditable(false);
scrollView.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
uiFrame.add(scrollView);
uiPane.setText(pTracker.getAllPackages());
uiPane.setCaretPosition(0);
}
private void addButton(){
JButton add=new JButton("add a package");
JPanel addPanel=new JPanel();
addPanel.setLayout(new BoxLayout(addPanel, BoxLayout.X_AXIS));
addPanel.add(add);
addPanel.setPreferredSize(new Dimension(500, 50));
uiFrame.add(addPanel);
add.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
String actionString= e.getActionCommand();
switch (actionString){
case "add a package":
addPackage();
break;
}
}
private void addPackage(){
new Input(uiFrame);
}
}