Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.28 KB | None | 0 0
  1. import java.awt.TextField;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.util.Scanner;
  5.  
  6. import javax.swing.*;
  7.  
  8.  
  9. public class TeamMateView extends JFrame implements ActionListener {
  10.  
  11. TeamMateModel model;
  12.  
  13. private JList jlPeople = new JList();
  14. private JScrollPane jspPeople = new JScrollPane(jlPeople);
  15.  
  16. private JList jlPlaces = new JList();
  17. private JScrollPane jspPlaces = new JScrollPane(jlPlaces);
  18.  
  19. private JList jlTeams = new JList();
  20. private JScrollPane jspTeams = new JScrollPane(jlTeams);
  21.  
  22. private JList stateList;
  23. private JList cityList;
  24.  
  25. //Making JButtons outside of the constructor to allow other methods to use them
  26. private JButton addPeople = new JButton("Add");
  27. private JButton confirmStatePeople = new JButton("Enter");
  28. private JButton confirmCityPeople = new JButton("Enter");
  29. private JButton confirmNameDatesPeople = new JButton("Enter");
  30. private JButton editPeople = new JButton("Edit");
  31. private JButton deletePeople = new JButton("Delete");
  32. private JButton addPlace = new JButton("Add");
  33. private JButton editPlace = new JButton("Edit");
  34. private JButton deletePlace = new JButton("Delete");
  35. private JButton addTeam = new JButton("Add");
  36. private JButton editTeam = new JButton("Edit");
  37. private JButton deleteTeam = new JButton("Delete");
  38. private JButton placeConfirm = new JButton("Confirm");
  39. private JButton stateConfirm = new JButton("Enter");
  40. private JButton cityConfirm = new JButton("Enter");
  41. private JButton editPlaceConfirm = new JButton("Enter");
  42. private JButton personConfirm = new JButton("Enter");
  43. private JButton seasonConfirm = new JButton("Enter");
  44.  
  45. private JMenuBar menuBar = new JMenuBar();
  46. private JMenu fileMenu = new JMenu("File");
  47. private JMenu graphMenu = new JMenu("Graph");
  48.  
  49. private JFrame addPlaceFrame = new JFrame("TeamMate");
  50. private JFrame addPlaceFrame2 = new JFrame("TeamMate");
  51. private JFrame editPlaceFrame = new JFrame("TeamMate");
  52. private JFrame addPersonCityFrame = new JFrame("TeamMate");
  53. private JFrame addPersonNameFrame = new JFrame("TeamMate");
  54.  
  55. private String selectedState;
  56. private String latitude;
  57. private String longitude;
  58. private String cityName;
  59.  
  60. private String personName;
  61. private String birthDate;
  62. private String deathDate;
  63. private String birthPlace;
  64.  
  65. private JTextField cityField = new JTextField("<City>");
  66. private JTextField latField = new JTextField("<Latitude>");
  67. private JTextField longField = new JTextField("<Longitude>");
  68.  
  69. private JTextField personNameField = new JTextField("<Name>");
  70. private JTextField birthDateField = new JTextField("<Birth Date (##/##/####)>");
  71. private JTextField deathDateField = new JTextField("<Death Date (Optional)>");
  72.  
  73.  
  74. /**
  75. * Sets the model
  76. * @param Model
  77. */
  78. public void setModel(TeamMateModel Model)
  79. {
  80. model = Model;
  81. model.addActionListener(this);
  82. }
  83.  
  84. public void personEntry(){
  85. stateSelect(confirmStatePeople);
  86. }
  87.  
  88. /**
  89. * When user enters a state while filling out person information
  90. */
  91. public void confirmStatePeople(){
  92.  
  93.  
  94. //Try catch to handle when user does not select a city and hits "enter"
  95. try{
  96. selectedState = stateList.getSelectedValue().toString();
  97. addPlaceFrame.setVisible(false);
  98. addPlaceFrame.dispose();
  99. }catch(NullPointerException e){
  100.  
  101. JOptionPane.showMessageDialog(null,"No state selected.");
  102. }
  103.  
  104. try{
  105.  
  106. String[] cities = model.getPlace(selectedState);
  107. cityList = new JList(cities);
  108.  
  109. JScrollPane citiesInStatePane = new JScrollPane(cityList);
  110.  
  111. addPersonCityFrame = new JFrame("TeamMate");
  112.  
  113. //Declare frame, size frame and panel
  114. addPersonCityFrame.setSize(310,220);
  115. addPersonCityFrame.setLocationRelativeTo(null);
  116. addPersonCityFrame.setLayout(null);//Using custom layout
  117.  
  118. JLabel CityLabel = new JLabel("Please Select a City");
  119. addPersonCityFrame.add(CityLabel);
  120. CityLabel.setSize(200,30);
  121. CityLabel.setLocation(30,10);
  122.  
  123. addPersonCityFrame.add(citiesInStatePane);
  124. citiesInStatePane.setSize(220,80);
  125. citiesInStatePane.setLocation(40,60);
  126.  
  127. addPersonCityFrame.add(confirmCityPeople);
  128. confirmCityPeople.setSize(80,30);
  129. confirmCityPeople.setLocation(110,140);
  130.  
  131. addPersonCityFrame.setVisible(true);
  132.  
  133. }catch(NullPointerException e){
  134.  
  135. JOptionPane.showMessageDialog(null,"No cities listed in this state!");
  136. }
  137.  
  138. }
  139.  
  140. /**
  141. * When user confirms the city
  142. */
  143. public void confirmCityPeople(){
  144.  
  145.  
  146. birthPlace = (String) cityList.getSelectedValue();
  147.  
  148. addPersonNameFrame.setSize(230,240);
  149. addPersonNameFrame.setLayout(null);
  150. addPersonNameFrame.setLocationRelativeTo(null);
  151.  
  152. JLabel prompt = new JLabel("Please Enter Information");
  153. addPersonNameFrame.add(prompt);
  154. prompt.setSize(150,20);
  155. prompt.setLocation(30,0);
  156.  
  157.  
  158. addPersonNameFrame.add(personNameField);
  159. personNameField.setSize(150,30);
  160. personNameField.setLocation(30,30);
  161.  
  162. addPersonNameFrame.add(birthDateField);
  163. birthDateField.setSize(150,30);
  164. birthDateField.setLocation(30,65);
  165.  
  166. addPersonNameFrame.add(deathDateField);
  167. deathDateField.setSize(150,30);
  168. deathDateField.setLocation(30,100);
  169.  
  170. addPersonNameFrame.add(confirmNameDatesPeople);
  171. confirmNameDatesPeople.setSize(100,30);
  172. confirmNameDatesPeople.setLocation(50,140);
  173.  
  174. addPersonNameFrame.setVisible(true);
  175.  
  176.  
  177. }
  178.  
  179. public void confirmNameDatesPeople()
  180. {
  181. personName = personNameField.getText();
  182. birthDate = birthDateField.getText();
  183. deathDate = personNameField.getText();
  184.  
  185. if(deathDate.equals("<Death Date (Optional)>") || deathDate.equals("")
  186. || deathDate.equalsIgnoreCase("n/a"))
  187. {
  188. deathDate = "";
  189. }
  190.  
  191. model.addPerson(personName, birthDate, deathDate, birthPlace);
  192. }
  193. /**
  194. * User selected "Add" option for the place list
  195. */
  196. public void placeEntry(){
  197.  
  198. stateSelect(stateConfirm);
  199.  
  200. }
  201.  
  202. public void teamEntry(){
  203. JFrame frame = new JFrame("Team Entry");
  204. frame.setSize(300,200);
  205. JPanel panel = new JPanel();
  206. frame.setVisible(true);
  207. }
  208.  
  209. public void personEdit()
  210. {
  211. JFrame frame = new JFrame("Person Edit");
  212. frame.setSize (300,200);
  213. JPanel panel = new JPanel();
  214. frame.setVisible(true);
  215. }
  216.  
  217. public void placeEdit()
  218. {
  219.  
  220. editPlaceFrame.setSize(300,250);
  221. editPlaceFrame.setLocationRelativeTo(null);
  222. editPlaceFrame.setLayout(null);
  223.  
  224. JLabel prompt = new JLabel("Edit place information.");
  225. editPlaceFrame.add(prompt);
  226. prompt.setSize(200,30);
  227. prompt.setLocation(30,10);
  228.  
  229. //add, set, and size and location for JTextFields to take input
  230. cityField = new JTextField("<City>");
  231. editPlaceFrame.add(cityField);
  232. cityField.setSize(200,30);
  233. cityField.setLocation(30,40);
  234. latField = new JTextField("<Latitude>");
  235. editPlaceFrame.add(latField);
  236. latField.setSize(200,30);
  237. latField.setLocation(30,70);
  238. longField = new JTextField("<Longitude>");
  239. editPlaceFrame.add(longField);
  240. longField.setSize(200,30);
  241. longField.setLocation(30,100);
  242.  
  243. editPlaceFrame.add(editPlaceConfirm);
  244. editPlaceConfirm.setSize(80,30);
  245. editPlaceConfirm.setLocation(100,140);
  246.  
  247. editPlaceFrame.setVisible(true);
  248. }
  249.  
  250. public void teamEdit()
  251. {
  252. JFrame frame = new JFrame("Team Edit");
  253. frame.setSize (300,200);
  254. JPanel panel = new JPanel();
  255. frame.setVisible(true);
  256. }
  257.  
  258. public void personDelete()
  259. {
  260. JFrame frame = new JFrame("Person Delete");
  261. frame.setSize (300,200);
  262. JPanel panel = new JPanel();
  263. frame.setVisible(true);
  264. }
  265.  
  266. public void placeDelete()
  267. {
  268. model.deletePlace((String) jlPlaces.getSelectedValue());
  269. }
  270.  
  271. public void teamDelete()
  272. {
  273. JFrame frame = new JFrame("Team Delete");
  274. frame.setSize (300,200);
  275. JPanel panel = new JPanel();
  276. frame.setVisible(true);
  277. }
  278.  
  279. /**
  280. * Creates a frame to prompt the user for a state
  281. * @param button lets you choose the button
  282. */
  283. public void stateSelect(JButton button){
  284.  
  285. addPlaceFrame = new JFrame("Place");
  286. //Make the list of state abbreviations and put it in a scrollPane
  287. String[] states = {"AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID",
  288. "IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE",
  289. "NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN"
  290. ,"TX","UT","VT","VA","WA","WV","WI","WY"};
  291. stateList = new JList(states);
  292.  
  293. JScrollPane statesPane = new JScrollPane(stateList);
  294.  
  295. //Declare frame, size frame and panel
  296. addPlaceFrame.setSize(200,220);
  297. addPlaceFrame.setLocationRelativeTo(null);
  298. addPlaceFrame.setLayout(null);//Using custom layout
  299.  
  300. JLabel stateListLabel = new JLabel("Please Select a State");
  301. addPlaceFrame.add(stateListLabel);
  302. stateListLabel.setSize(200,30);
  303. stateListLabel.setLocation(30,10);
  304.  
  305. addPlaceFrame.add(statesPane);
  306. statesPane.setSize(100,80);
  307. statesPane.setLocation(40,60);
  308.  
  309. addPlaceFrame.add(button);
  310. button.setSize(80,30);
  311. button.setLocation(50,140);
  312.  
  313. addPlaceFrame.setVisible(true);
  314. }
  315.  
  316. /**
  317. * Opens a frame with 3 text fields
  318. * @param button lets you choose the button
  319. */
  320. public void placeTextFields(JButton button)
  321. {
  322. addPlaceFrame2 = new JFrame("Place");
  323. addPlaceFrame2.setSize(300,250);
  324. addPlaceFrame2.setLocationRelativeTo(null);
  325. addPlaceFrame2.setLayout(null);
  326.  
  327. JLabel prompt = new JLabel("Please fill out place information.");
  328. addPlaceFrame2.add(prompt);
  329. prompt.setSize(200,30);
  330. prompt.setLocation(30,10);
  331.  
  332. //add, set, and size and location for JTextFields to take input
  333. addPlaceFrame2.add(cityField);
  334. cityField.setSize(200,30);
  335. cityField.setLocation(30,40);
  336. addPlaceFrame2.add(latField);
  337. latField.setSize(200,30);
  338. latField.setLocation(30,70);
  339. addPlaceFrame2.add(longField);
  340. longField.setSize(200,30);
  341. longField.setLocation(30,100);
  342.  
  343. addPlaceFrame2.add(button);
  344. button.setSize(80,30);
  345. button.setLocation(100,140);
  346.  
  347. addPlaceFrame2.setVisible(true);
  348. }
  349.  
  350.  
  351. TeamMateView() {
  352.  
  353. JFrame frame = new JFrame("TeamMate");
  354. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  355. frame.setSize(960,500);
  356. JPanel panel = new JPanel();
  357. //layout set to null for custom layout
  358. panel.setLayout(null);
  359. frame.add(panel);
  360. panel.add(jlPeople);
  361. panel.add(jlPlaces);
  362. panel.add(jlTeams);
  363.  
  364. //menus
  365. panel.add(menuBar);
  366. menuBar.add(fileMenu);
  367. menuBar.add(graphMenu);
  368.  
  369.  
  370.  
  371. //Add, size and set location of labels
  372. JLabel people = new JLabel("People");
  373. panel.add(people);
  374. people.setSize(50,50);
  375. people.setLocation(320,20);
  376. JLabel place = new JLabel("Places");
  377. panel.add(place);
  378. place.setSize(50,50);
  379. place.setLocation(10,20);
  380. JLabel team = new JLabel("Team");
  381. panel.add(team);
  382. team.setSize(50,50);
  383. team.setLocation(630,20);
  384.  
  385. //Add the buttons
  386. panel.add(addPeople);
  387. panel.add(editPeople);
  388. panel.add(deletePeople);
  389. panel.add(addPlace);
  390. panel.add(editPlace);
  391. panel.add(deletePlace);
  392. panel.add(addTeam);
  393. panel.add(editTeam);
  394. panel.add(deleteTeam);
  395.  
  396. //Set size and location for everything starting with the MenuBar
  397. menuBar.setSize(960,20);
  398. menuBar.setLocation(0,0);
  399. //ScrollPanes
  400. jlPeople.setSize(300,300);
  401. jlPlaces.setSize(300,300);
  402. jlTeams.setSize(300,300);
  403. jlPeople.setLocation(320,60);
  404. jlPlaces.setLocation(10, 60);
  405. jlTeams.setLocation(630, 60);
  406. //Buttons
  407. addPeople.setSize(300,25);
  408. editPeople.setSize(300,25);
  409. deletePeople.setSize(300,25);
  410. addPeople.setLocation(320,370);
  411. editPeople.setLocation(320,390);
  412. deletePeople.setLocation(320,410);
  413. //LOTS OF BUTTONS
  414. addPlace.setSize(300,25);
  415. editPlace.setSize(300,25);
  416. deletePlace.setSize(300,25);
  417. addPlace.setLocation(10,370);
  418. editPlace.setLocation(10,390);
  419. deletePlace.setLocation(10,410);
  420. //YEEEAAHHH
  421. addTeam.setSize(300,25);
  422. editTeam.setSize(300,25);
  423. deleteTeam.setSize(300,25);
  424. addTeam.setLocation(630,370);
  425. editTeam.setLocation(630,390);
  426. deleteTeam.setLocation(630,410);
  427.  
  428. frame.setLocationRelativeTo ( null );
  429. frame.setVisible(true);
  430. }
  431.  
  432. /**
  433. * Does whatever needs doing when user hits enter on the state select option
  434. */
  435. public void stateConfirm(){
  436.  
  437. //Try-catch for when the user doesn't select a state
  438. try{
  439. selectedState = stateList.getSelectedValue().toString();
  440. addPlaceFrame.setVisible(false);
  441. addPlaceFrame.dispose();
  442. }catch(NullPointerException e){
  443.  
  444. JOptionPane.showMessageDialog(null,"No state selected.");
  445. }
  446.  
  447.  
  448. /*New window to take input for city name, latitude and longitude only opens when a state
  449. has been entered*/
  450. if(selectedState != null){
  451.  
  452. placeTextFields(cityConfirm);
  453.  
  454. }
  455. }
  456.  
  457. /**
  458. * Displays the entered data before confirming and entering data
  459. */
  460. public void cityConfirm(){
  461.  
  462. //Get data from text fields
  463. cityName = cityField.getText();
  464. latitude = latField.getText();
  465. longitude = longField.getText();
  466.  
  467.  
  468. addPlaceFrame = new JFrame("Confirm");
  469. addPlaceFrame.setLayout(null);
  470. addPlaceFrame.setLocationRelativeTo(null);
  471. addPlaceFrame.setSize(250,250);
  472.  
  473. addPlaceFrame.add(placeConfirm);
  474. placeConfirm.setSize(80,30);
  475. placeConfirm.setLocation(60,150);
  476.  
  477. JLabel confirmInput = new JLabel("You're adding:");
  478. addPlaceFrame.add(confirmInput);
  479. confirmInput.setSize(200,40);
  480. confirmInput.setLocation(30,0);
  481.  
  482. JLabel confirmState = new JLabel("State: " + selectedState);
  483. addPlaceFrame.add(confirmState);
  484. confirmState.setSize(200,40);
  485. confirmState.setLocation(30,30);
  486.  
  487. JLabel confirmCity = new JLabel("City: " + cityName);
  488. addPlaceFrame.add(confirmCity);
  489. confirmCity.setSize(150,40);
  490. confirmCity.setLocation(30,60);
  491.  
  492. JLabel confirmLat = new JLabel("Lat: " + latitude);
  493. addPlaceFrame.add(confirmLat);
  494. confirmLat.setSize(150,40);
  495. confirmLat.setLocation(30,80);
  496.  
  497. JLabel confirmLong = new JLabel("Long: " + longitude);
  498. addPlaceFrame.add(confirmLong);
  499. confirmLong.setSize(150,40);
  500. confirmLong.setLocation(30,100);
  501.  
  502. addPlaceFrame.setVisible(true);
  503. addPlaceFrame2.setVisible(false);
  504. addPlaceFrame2.dispose();
  505. }
  506.  
  507. public void placeConfirm(){
  508.  
  509. cityName = cityField.getText();
  510. latitude = latField.getText();
  511. longitude = longField.getText();
  512. model.addPlace( selectedState, cityName, latitude, longitude);
  513.  
  514. cityField = new JTextField("<City>");
  515. latField = new JTextField("<Latitude>");
  516. longField = new JTextField("<longitude>");
  517. selectedState = null;
  518. cityName = null;
  519. latitude = null;
  520. longitude = null;
  521. addPlaceFrame.setVisible(false);
  522. addPlaceFrame2.setVisible(false);
  523. addPlaceFrame.dispose();
  524. addPlaceFrame2.dispose();
  525. }
  526.  
  527. public void editPlaceConfirm(){
  528.  
  529. //Get values from text fields and selected line
  530. String placeLine = (String) jlPlaces.getSelectedValue();
  531. cityName = cityField.getText();
  532. latitude = latField.getText();
  533. longitude = longField.getText();
  534.  
  535. //Edit the place in the model, close frame
  536. model.editPlace(placeLine,cityName, latitude, longitude);
  537. editPlaceFrame.setVisible(false);
  538. editPlaceFrame.dispose();
  539. }
  540.  
  541. /*
  542. * A mess of accessor methods that allow the controller to register action listeners
  543. */
  544. public JButton getAddPeople()
  545. {
  546. return addPeople;
  547. }
  548. public JButton getConfirmStatePeople()
  549. {
  550. return confirmStatePeople;
  551. }
  552. public JButton getConfirmCityPeople()
  553. {
  554. return confirmCityPeople;
  555. }
  556. public JButton getConfirmNameDatesPeople()
  557. {
  558. return confirmNameDatesPeople;
  559. }
  560. public JButton getAddPlace()
  561. {
  562. return addPlace;
  563. }
  564. public JButton getAddTeam()
  565. {
  566. return addTeam;
  567. }
  568. public JButton getEditPeople()
  569. {
  570. return editPeople;
  571. }
  572. public JButton getEditPlace()
  573. {
  574. return editPlace;
  575. }
  576.  
  577. public JButton getEditTeam()
  578. {
  579. return editTeam;
  580. }
  581.  
  582. public JButton getDeletePeople()
  583. {
  584. return deletePeople;
  585. }
  586.  
  587. public JButton getDeletePlace()
  588. {
  589. return deletePlace;
  590. }
  591.  
  592. public JButton getDeleteTeam()
  593. {
  594. return deleteTeam;
  595. }
  596.  
  597. public JButton getPlaceConfirm()
  598. {
  599. return placeConfirm;
  600. }
  601.  
  602. public JButton getStateConfirm()
  603. {
  604. return stateConfirm;
  605. }
  606. public JButton getCityConfirm()
  607. {
  608. return cityConfirm;
  609. }
  610. public JButton getEditPlaceConfirm(){
  611. return editPlaceConfirm;
  612. }
  613. public JButton getPersonConfirm()
  614. {
  615. return personConfirm;
  616. }
  617.  
  618. public JButton getSeasonConfirm()
  619. {
  620. return seasonConfirm;
  621. }
  622.  
  623. public void actionPerformed(ActionEvent e)
  624. {
  625.  
  626. jlPlaces.setListData(model.getPlaces());
  627. jlPeople.setListData(model.getPeoples());
  628. }
  629.  
  630. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement