Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.TextField;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Scanner;
- import javax.swing.*;
- public class TeamMateView extends JFrame implements ActionListener {
- TeamMateModel model;
- private JList jlPeople = new JList();
- private JScrollPane jspPeople = new JScrollPane(jlPeople);
- private JList jlPlaces = new JList();
- private JScrollPane jspPlaces = new JScrollPane(jlPlaces);
- private JList jlTeams = new JList();
- private JScrollPane jspTeams = new JScrollPane(jlTeams);
- private JList stateList;
- private JList cityList;
- //Making JButtons outside of the constructor to allow other methods to use them
- private JButton addPeople = new JButton("Add");
- private JButton confirmStatePeople = new JButton("Enter");
- private JButton confirmCityPeople = new JButton("Enter");
- private JButton confirmNameDatesPeople = new JButton("Enter");
- private JButton editPeople = new JButton("Edit");
- private JButton deletePeople = new JButton("Delete");
- private JButton addPlace = new JButton("Add");
- private JButton editPlace = new JButton("Edit");
- private JButton deletePlace = new JButton("Delete");
- private JButton addTeam = new JButton("Add");
- private JButton editTeam = new JButton("Edit");
- private JButton deleteTeam = new JButton("Delete");
- private JButton placeConfirm = new JButton("Confirm");
- private JButton stateConfirm = new JButton("Enter");
- private JButton cityConfirm = new JButton("Enter");
- private JButton editPlaceConfirm = new JButton("Enter");
- private JButton personConfirm = new JButton("Enter");
- private JButton seasonConfirm = new JButton("Enter");
- private JMenuBar menuBar = new JMenuBar();
- private JMenu fileMenu = new JMenu("File");
- private JMenu graphMenu = new JMenu("Graph");
- private JFrame addPlaceFrame = new JFrame("TeamMate");
- private JFrame addPlaceFrame2 = new JFrame("TeamMate");
- private JFrame editPlaceFrame = new JFrame("TeamMate");
- private JFrame addPersonCityFrame = new JFrame("TeamMate");
- private JFrame addPersonNameFrame = new JFrame("TeamMate");
- private String selectedState;
- private String latitude;
- private String longitude;
- private String cityName;
- private String personName;
- private String birthDate;
- private String deathDate;
- private String birthPlace;
- private JTextField cityField = new JTextField("<City>");
- private JTextField latField = new JTextField("<Latitude>");
- private JTextField longField = new JTextField("<Longitude>");
- private JTextField personNameField = new JTextField("<Name>");
- private JTextField birthDateField = new JTextField("<Birth Date (##/##/####)>");
- private JTextField deathDateField = new JTextField("<Death Date (Optional)>");
- /**
- * Sets the model
- * @param Model
- */
- public void setModel(TeamMateModel Model)
- {
- model = Model;
- model.addActionListener(this);
- }
- public void personEntry(){
- stateSelect(confirmStatePeople);
- }
- /**
- * When user enters a state while filling out person information
- */
- public void confirmStatePeople(){
- //Try catch to handle when user does not select a city and hits "enter"
- try{
- selectedState = stateList.getSelectedValue().toString();
- addPlaceFrame.setVisible(false);
- addPlaceFrame.dispose();
- }catch(NullPointerException e){
- JOptionPane.showMessageDialog(null,"No state selected.");
- }
- try{
- String[] cities = model.getPlace(selectedState);
- cityList = new JList(cities);
- JScrollPane citiesInStatePane = new JScrollPane(cityList);
- addPersonCityFrame = new JFrame("TeamMate");
- //Declare frame, size frame and panel
- addPersonCityFrame.setSize(310,220);
- addPersonCityFrame.setLocationRelativeTo(null);
- addPersonCityFrame.setLayout(null);//Using custom layout
- JLabel CityLabel = new JLabel("Please Select a City");
- addPersonCityFrame.add(CityLabel);
- CityLabel.setSize(200,30);
- CityLabel.setLocation(30,10);
- addPersonCityFrame.add(citiesInStatePane);
- citiesInStatePane.setSize(220,80);
- citiesInStatePane.setLocation(40,60);
- addPersonCityFrame.add(confirmCityPeople);
- confirmCityPeople.setSize(80,30);
- confirmCityPeople.setLocation(110,140);
- addPersonCityFrame.setVisible(true);
- }catch(NullPointerException e){
- JOptionPane.showMessageDialog(null,"No cities listed in this state!");
- }
- }
- /**
- * When user confirms the city
- */
- public void confirmCityPeople(){
- birthPlace = (String) cityList.getSelectedValue();
- addPersonNameFrame.setSize(230,240);
- addPersonNameFrame.setLayout(null);
- addPersonNameFrame.setLocationRelativeTo(null);
- JLabel prompt = new JLabel("Please Enter Information");
- addPersonNameFrame.add(prompt);
- prompt.setSize(150,20);
- prompt.setLocation(30,0);
- addPersonNameFrame.add(personNameField);
- personNameField.setSize(150,30);
- personNameField.setLocation(30,30);
- addPersonNameFrame.add(birthDateField);
- birthDateField.setSize(150,30);
- birthDateField.setLocation(30,65);
- addPersonNameFrame.add(deathDateField);
- deathDateField.setSize(150,30);
- deathDateField.setLocation(30,100);
- addPersonNameFrame.add(confirmNameDatesPeople);
- confirmNameDatesPeople.setSize(100,30);
- confirmNameDatesPeople.setLocation(50,140);
- addPersonNameFrame.setVisible(true);
- }
- public void confirmNameDatesPeople()
- {
- personName = personNameField.getText();
- birthDate = birthDateField.getText();
- deathDate = personNameField.getText();
- if(deathDate.equals("<Death Date (Optional)>") || deathDate.equals("")
- || deathDate.equalsIgnoreCase("n/a"))
- {
- deathDate = "";
- }
- model.addPerson(personName, birthDate, deathDate, birthPlace);
- }
- /**
- * User selected "Add" option for the place list
- */
- public void placeEntry(){
- stateSelect(stateConfirm);
- }
- public void teamEntry(){
- JFrame frame = new JFrame("Team Entry");
- frame.setSize(300,200);
- JPanel panel = new JPanel();
- frame.setVisible(true);
- }
- public void personEdit()
- {
- JFrame frame = new JFrame("Person Edit");
- frame.setSize (300,200);
- JPanel panel = new JPanel();
- frame.setVisible(true);
- }
- public void placeEdit()
- {
- editPlaceFrame.setSize(300,250);
- editPlaceFrame.setLocationRelativeTo(null);
- editPlaceFrame.setLayout(null);
- JLabel prompt = new JLabel("Edit place information.");
- editPlaceFrame.add(prompt);
- prompt.setSize(200,30);
- prompt.setLocation(30,10);
- //add, set, and size and location for JTextFields to take input
- cityField = new JTextField("<City>");
- editPlaceFrame.add(cityField);
- cityField.setSize(200,30);
- cityField.setLocation(30,40);
- latField = new JTextField("<Latitude>");
- editPlaceFrame.add(latField);
- latField.setSize(200,30);
- latField.setLocation(30,70);
- longField = new JTextField("<Longitude>");
- editPlaceFrame.add(longField);
- longField.setSize(200,30);
- longField.setLocation(30,100);
- editPlaceFrame.add(editPlaceConfirm);
- editPlaceConfirm.setSize(80,30);
- editPlaceConfirm.setLocation(100,140);
- editPlaceFrame.setVisible(true);
- }
- public void teamEdit()
- {
- JFrame frame = new JFrame("Team Edit");
- frame.setSize (300,200);
- JPanel panel = new JPanel();
- frame.setVisible(true);
- }
- public void personDelete()
- {
- JFrame frame = new JFrame("Person Delete");
- frame.setSize (300,200);
- JPanel panel = new JPanel();
- frame.setVisible(true);
- }
- public void placeDelete()
- {
- model.deletePlace((String) jlPlaces.getSelectedValue());
- }
- public void teamDelete()
- {
- JFrame frame = new JFrame("Team Delete");
- frame.setSize (300,200);
- JPanel panel = new JPanel();
- frame.setVisible(true);
- }
- /**
- * Creates a frame to prompt the user for a state
- * @param button lets you choose the button
- */
- public void stateSelect(JButton button){
- addPlaceFrame = new JFrame("Place");
- //Make the list of state abbreviations and put it in a scrollPane
- String[] states = {"AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID",
- "IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE",
- "NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN"
- ,"TX","UT","VT","VA","WA","WV","WI","WY"};
- stateList = new JList(states);
- JScrollPane statesPane = new JScrollPane(stateList);
- //Declare frame, size frame and panel
- addPlaceFrame.setSize(200,220);
- addPlaceFrame.setLocationRelativeTo(null);
- addPlaceFrame.setLayout(null);//Using custom layout
- JLabel stateListLabel = new JLabel("Please Select a State");
- addPlaceFrame.add(stateListLabel);
- stateListLabel.setSize(200,30);
- stateListLabel.setLocation(30,10);
- addPlaceFrame.add(statesPane);
- statesPane.setSize(100,80);
- statesPane.setLocation(40,60);
- addPlaceFrame.add(button);
- button.setSize(80,30);
- button.setLocation(50,140);
- addPlaceFrame.setVisible(true);
- }
- /**
- * Opens a frame with 3 text fields
- * @param button lets you choose the button
- */
- public void placeTextFields(JButton button)
- {
- addPlaceFrame2 = new JFrame("Place");
- addPlaceFrame2.setSize(300,250);
- addPlaceFrame2.setLocationRelativeTo(null);
- addPlaceFrame2.setLayout(null);
- JLabel prompt = new JLabel("Please fill out place information.");
- addPlaceFrame2.add(prompt);
- prompt.setSize(200,30);
- prompt.setLocation(30,10);
- //add, set, and size and location for JTextFields to take input
- addPlaceFrame2.add(cityField);
- cityField.setSize(200,30);
- cityField.setLocation(30,40);
- addPlaceFrame2.add(latField);
- latField.setSize(200,30);
- latField.setLocation(30,70);
- addPlaceFrame2.add(longField);
- longField.setSize(200,30);
- longField.setLocation(30,100);
- addPlaceFrame2.add(button);
- button.setSize(80,30);
- button.setLocation(100,140);
- addPlaceFrame2.setVisible(true);
- }
- TeamMateView() {
- JFrame frame = new JFrame("TeamMate");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(960,500);
- JPanel panel = new JPanel();
- //layout set to null for custom layout
- panel.setLayout(null);
- frame.add(panel);
- panel.add(jlPeople);
- panel.add(jlPlaces);
- panel.add(jlTeams);
- //menus
- panel.add(menuBar);
- menuBar.add(fileMenu);
- menuBar.add(graphMenu);
- //Add, size and set location of labels
- JLabel people = new JLabel("People");
- panel.add(people);
- people.setSize(50,50);
- people.setLocation(320,20);
- JLabel place = new JLabel("Places");
- panel.add(place);
- place.setSize(50,50);
- place.setLocation(10,20);
- JLabel team = new JLabel("Team");
- panel.add(team);
- team.setSize(50,50);
- team.setLocation(630,20);
- //Add the buttons
- panel.add(addPeople);
- panel.add(editPeople);
- panel.add(deletePeople);
- panel.add(addPlace);
- panel.add(editPlace);
- panel.add(deletePlace);
- panel.add(addTeam);
- panel.add(editTeam);
- panel.add(deleteTeam);
- //Set size and location for everything starting with the MenuBar
- menuBar.setSize(960,20);
- menuBar.setLocation(0,0);
- //ScrollPanes
- jlPeople.setSize(300,300);
- jlPlaces.setSize(300,300);
- jlTeams.setSize(300,300);
- jlPeople.setLocation(320,60);
- jlPlaces.setLocation(10, 60);
- jlTeams.setLocation(630, 60);
- //Buttons
- addPeople.setSize(300,25);
- editPeople.setSize(300,25);
- deletePeople.setSize(300,25);
- addPeople.setLocation(320,370);
- editPeople.setLocation(320,390);
- deletePeople.setLocation(320,410);
- //LOTS OF BUTTONS
- addPlace.setSize(300,25);
- editPlace.setSize(300,25);
- deletePlace.setSize(300,25);
- addPlace.setLocation(10,370);
- editPlace.setLocation(10,390);
- deletePlace.setLocation(10,410);
- //YEEEAAHHH
- addTeam.setSize(300,25);
- editTeam.setSize(300,25);
- deleteTeam.setSize(300,25);
- addTeam.setLocation(630,370);
- editTeam.setLocation(630,390);
- deleteTeam.setLocation(630,410);
- frame.setLocationRelativeTo ( null );
- frame.setVisible(true);
- }
- /**
- * Does whatever needs doing when user hits enter on the state select option
- */
- public void stateConfirm(){
- //Try-catch for when the user doesn't select a state
- try{
- selectedState = stateList.getSelectedValue().toString();
- addPlaceFrame.setVisible(false);
- addPlaceFrame.dispose();
- }catch(NullPointerException e){
- JOptionPane.showMessageDialog(null,"No state selected.");
- }
- /*New window to take input for city name, latitude and longitude only opens when a state
- has been entered*/
- if(selectedState != null){
- placeTextFields(cityConfirm);
- }
- }
- /**
- * Displays the entered data before confirming and entering data
- */
- public void cityConfirm(){
- //Get data from text fields
- cityName = cityField.getText();
- latitude = latField.getText();
- longitude = longField.getText();
- addPlaceFrame = new JFrame("Confirm");
- addPlaceFrame.setLayout(null);
- addPlaceFrame.setLocationRelativeTo(null);
- addPlaceFrame.setSize(250,250);
- addPlaceFrame.add(placeConfirm);
- placeConfirm.setSize(80,30);
- placeConfirm.setLocation(60,150);
- JLabel confirmInput = new JLabel("You're adding:");
- addPlaceFrame.add(confirmInput);
- confirmInput.setSize(200,40);
- confirmInput.setLocation(30,0);
- JLabel confirmState = new JLabel("State: " + selectedState);
- addPlaceFrame.add(confirmState);
- confirmState.setSize(200,40);
- confirmState.setLocation(30,30);
- JLabel confirmCity = new JLabel("City: " + cityName);
- addPlaceFrame.add(confirmCity);
- confirmCity.setSize(150,40);
- confirmCity.setLocation(30,60);
- JLabel confirmLat = new JLabel("Lat: " + latitude);
- addPlaceFrame.add(confirmLat);
- confirmLat.setSize(150,40);
- confirmLat.setLocation(30,80);
- JLabel confirmLong = new JLabel("Long: " + longitude);
- addPlaceFrame.add(confirmLong);
- confirmLong.setSize(150,40);
- confirmLong.setLocation(30,100);
- addPlaceFrame.setVisible(true);
- addPlaceFrame2.setVisible(false);
- addPlaceFrame2.dispose();
- }
- public void placeConfirm(){
- cityName = cityField.getText();
- latitude = latField.getText();
- longitude = longField.getText();
- model.addPlace( selectedState, cityName, latitude, longitude);
- cityField = new JTextField("<City>");
- latField = new JTextField("<Latitude>");
- longField = new JTextField("<longitude>");
- selectedState = null;
- cityName = null;
- latitude = null;
- longitude = null;
- addPlaceFrame.setVisible(false);
- addPlaceFrame2.setVisible(false);
- addPlaceFrame.dispose();
- addPlaceFrame2.dispose();
- }
- public void editPlaceConfirm(){
- //Get values from text fields and selected line
- String placeLine = (String) jlPlaces.getSelectedValue();
- cityName = cityField.getText();
- latitude = latField.getText();
- longitude = longField.getText();
- //Edit the place in the model, close frame
- model.editPlace(placeLine,cityName, latitude, longitude);
- editPlaceFrame.setVisible(false);
- editPlaceFrame.dispose();
- }
- /*
- * A mess of accessor methods that allow the controller to register action listeners
- */
- public JButton getAddPeople()
- {
- return addPeople;
- }
- public JButton getConfirmStatePeople()
- {
- return confirmStatePeople;
- }
- public JButton getConfirmCityPeople()
- {
- return confirmCityPeople;
- }
- public JButton getConfirmNameDatesPeople()
- {
- return confirmNameDatesPeople;
- }
- public JButton getAddPlace()
- {
- return addPlace;
- }
- public JButton getAddTeam()
- {
- return addTeam;
- }
- public JButton getEditPeople()
- {
- return editPeople;
- }
- public JButton getEditPlace()
- {
- return editPlace;
- }
- public JButton getEditTeam()
- {
- return editTeam;
- }
- public JButton getDeletePeople()
- {
- return deletePeople;
- }
- public JButton getDeletePlace()
- {
- return deletePlace;
- }
- public JButton getDeleteTeam()
- {
- return deleteTeam;
- }
- public JButton getPlaceConfirm()
- {
- return placeConfirm;
- }
- public JButton getStateConfirm()
- {
- return stateConfirm;
- }
- public JButton getCityConfirm()
- {
- return cityConfirm;
- }
- public JButton getEditPlaceConfirm(){
- return editPlaceConfirm;
- }
- public JButton getPersonConfirm()
- {
- return personConfirm;
- }
- public JButton getSeasonConfirm()
- {
- return seasonConfirm;
- }
- public void actionPerformed(ActionEvent e)
- {
- jlPlaces.setListData(model.getPlaces());
- jlPeople.setListData(model.getPeoples());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement