Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.42 KB | None | 0 0
  1. package gui;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import controller.Controller;
  6. import javafx.beans.value.ChangeListener;
  7. import javafx.geometry.Insets;
  8. import javafx.geometry.Pos;
  9. import javafx.scene.Scene;
  10. import javafx.scene.control.Alert;
  11. import javafx.scene.control.Alert.AlertType;
  12. import javafx.scene.control.Button;
  13. import javafx.scene.control.CheckBox;
  14. import javafx.scene.control.Label;
  15. import javafx.scene.control.ListView;
  16. import javafx.scene.control.TextField;
  17. import javafx.scene.layout.GridPane;
  18. import javafx.scene.layout.HBox;
  19. import javafx.stage.Modality;
  20. import javafx.stage.Stage;
  21. import javafx.stage.StageStyle;
  22. import model.Deltager;
  23. import model.Hotel;
  24. import model.Konference;
  25. import model.Ledsager;
  26. import model.Udflugt;
  27.  
  28. public class DeltagerWindow extends Stage {
  29.  
  30. public DeltagerWindow(String title, Stage owner) {
  31. this.initOwner(owner);
  32. this.initStyle(StageStyle.UTILITY);
  33. this.initModality(Modality.APPLICATION_MODAL);
  34. this.setMinHeight(100);
  35. this.setMinWidth(200);
  36. this.setResizable(false);
  37.  
  38. this.setTitle(title);
  39. GridPane pane = new GridPane();
  40. this.initContent(pane);
  41.  
  42. Scene scene = new Scene(pane);
  43. this.setScene(scene);
  44. }
  45.  
  46. // -------------------------------------------------------------------------
  47.  
  48. private ListView<Deltager> lvwDeltagere = new ListView<>();
  49. private ArrayList<Deltager> deltagere = new ArrayList<Deltager>();
  50. private ListView<Konference> lvwKonference = new ListView<>();
  51. private ArrayList<Konference> konferencer = new ArrayList<Konference>();
  52. private TextField txfName = new TextField();
  53. private TextField txfTelefon = new TextField();
  54. private TextField txfFirma = new TextField();
  55. private TextField txfKonference = new TextField();
  56. private TextField txfAntalDage = new TextField();
  57. private TextField txfLedsager = new TextField();
  58. private Deltager deltager = null;
  59. private CheckBox cbxHotelMedService;
  60. private CheckBox cbxHotelUdenService;
  61. private CheckBox cbxSpeaker;
  62. private CheckBox cbxLedsagerMedUdflugt;
  63. private CheckBox cbxLedsagerUdenUdflugt;
  64.  
  65. private void initContent(GridPane pane) {
  66. Controller.initStorage();
  67. pane.setPadding(new Insets(20));
  68. pane.setHgap(10);
  69. pane.setVgap(10);
  70.  
  71. Label lblName = new Label("Fulde Navn:");
  72. pane.add(lblName, 0, 0, 1, 1);
  73. pane.add(txfName, 1, 0, 2, 1);
  74.  
  75. Label lblDot = new Label(" 🢀 Skal indtastes:");
  76. pane.add(lblDot, 2, 0, 2, 1);
  77.  
  78. Label lblTelefon = new Label("Telefon:");
  79. pane.add(lblTelefon, 0, 1, 1, 1);
  80. pane.add(txfTelefon, 1, 1, 2, 1);
  81.  
  82. Label lblDot1 = new Label(" 🢀 Skal indtastes:");
  83. pane.add(lblDot1, 2, 1, 2, 1);
  84.  
  85. Label lblLedsager = new Label("Ledsager:");
  86. pane.add(lblLedsager, 0, 4, 1, 1);
  87. pane.add(txfLedsager, 1, 4, 2, 1);
  88.  
  89. Label lblFirma = new Label("Firma:");
  90. pane.add(lblFirma, 0, 5, 1, 1);
  91. pane.add(txfFirma, 1, 5, 2, 1);
  92.  
  93. Label lblKonference = new Label("Konference:");
  94. pane.add(lblKonference, 0, 6, 1, 1);
  95. pane.add(txfKonference, 1, 6, 2, 1);
  96. txfKonference.setEditable(false);
  97.  
  98. Label lblAntalDage = new Label("Antal dage pĂĄ konference:");
  99. pane.add(lblAntalDage, 0, 13, 1, 1);
  100. pane.add(txfAntalDage, 1, 13, 1, 1);
  101.  
  102. Label lblDot3 = new Label(
  103. " 🢀 (mellem 1-3 dage)\n også gældende for antal hotel dage \n hvis tilvalgt");
  104. pane.add(lblDot3, 2, 13, 2, 2);
  105.  
  106. HBox buttonBox = new HBox(20);
  107. pane.add(buttonBox, 1, 17, 1, 1);
  108. buttonBox.setPadding(new Insets(10, 10, 0, 10));
  109. buttonBox.setAlignment(Pos.TOP_RIGHT);
  110.  
  111. Button btnCancel = new Button("Cancel");
  112. buttonBox.getChildren().add(btnCancel);
  113. btnCancel.setOnAction(event -> this.cancelAction());
  114.  
  115. Button btnOK = new Button("OK");
  116. buttonBox.getChildren().add(btnOK);
  117. btnOK.setOnAction(event -> this.okAction());
  118.  
  119. Label lblHotel = new Label("Book tilknyttede hotel inkl. service: ");
  120. pane.add(lblHotel, 0, 10, 1, 1);
  121.  
  122. cbxHotelMedService = new CheckBox();
  123. pane.add(cbxHotelMedService, 1, 10, 5, 1);
  124.  
  125. Label lblHotel1 = new Label("Book tilknyttede hotel ekskl. service: ");
  126. pane.add(lblHotel1, 0, 11, 1, 1);
  127.  
  128. cbxHotelUdenService = new CheckBox();
  129. pane.add(cbxHotelUdenService, 1, 11, 5, 1);
  130.  
  131. Label lblSpeaker = new Label("Deltager er foredragsholder \n(konference er gratis): ");
  132. pane.add(lblSpeaker, 0, 14, 1, 1);
  133.  
  134. cbxSpeaker = new CheckBox();
  135. pane.add(cbxSpeaker, 1, 14, 5, 2);
  136.  
  137. Label lblLedsagerMedUdflugt = new Label("Ledsager med udflugt: ");
  138. pane.add(lblLedsagerMedUdflugt, 0, 16, 1, 1);
  139.  
  140. cbxLedsagerMedUdflugt = new CheckBox();
  141. pane.add(cbxLedsagerMedUdflugt, 1, 16, 5, 1);
  142.  
  143. Label lblLedsagerUdenUdflugt = new Label("Ledsager uden udflugt: ");
  144. pane.add(lblLedsagerUdenUdflugt, 0, 17, 1, 1);
  145.  
  146. cbxLedsagerUdenUdflugt = new CheckBox();
  147. pane.add(cbxLedsagerUdenUdflugt, 1, 17, 5, 1);
  148.  
  149. Label lblDot2 = new Label(" 🢀 Vælg en konference");
  150. pane.add(lblDot2, 2, 8, 2, 3);
  151.  
  152. pane.add(lvwKonference, 1, 7, 1, 3);
  153. lvwKonference.setEditable(false);
  154. lvwKonference.setPrefWidth(250);
  155. lvwKonference.setPrefHeight(150);
  156. lvwKonference.getItems().setAll(konferencer);
  157.  
  158. ChangeListener<Konference> listener = (ov, o, n) -> this.konferenceItemSelected();
  159. lvwKonference.getSelectionModel().selectedItemProperty().addListener(listener);
  160.  
  161. lvwKonference.getItems().setAll(Controller.getKonference());
  162. if (lvwKonference.getItems().size() > 0) {
  163. lvwKonference.getSelectionModel();
  164. txfKonference.clear();
  165. }
  166. }
  167.  
  168. private void konferenceItemSelected() {
  169. Konference selected = lvwKonference.getSelectionModel().getSelectedItem();
  170. if (selected != null) {
  171. txfKonference.setText(selected.toString());
  172. } else {
  173. txfKonference.clear();
  174. }
  175. }
  176.  
  177. public static Hotel addHotel(String navn) {
  178. Hotel hotel = new Hotel(navn);
  179. return hotel;
  180.  
  181. }
  182.  
  183. public static Udflugt addUdflugt(String navn) {
  184. Udflugt udflugt = new Udflugt(navn);
  185. return udflugt;
  186. }
  187.  
  188. public static Ledsager addLedsager(String navn) {
  189. Ledsager ledsager = new Ledsager(navn);
  190. return ledsager;
  191. }
  192.  
  193. private void cancelAction() {
  194. txfName.clear();
  195. txfTelefon.clear();
  196. txfFirma.clear();
  197. txfKonference.clear();
  198. txfLedsager.clear();
  199. deltager = null;
  200. cbxHotelMedService.setSelected(false);
  201. cbxHotelUdenService.setSelected(false);
  202. cbxSpeaker.setSelected(false);
  203. cbxLedsagerMedUdflugt.setSelected(false);
  204. cbxLedsagerUdenUdflugt.setSelected(false);
  205. txfAntalDage.clear();
  206. this.hide();
  207. }
  208.  
  209. private void okAction() {
  210. String navn = txfName.getText().trim();
  211. int telefon = Integer.parseInt(txfTelefon.getText());
  212. int antalDage = Integer.parseInt(txfAntalDage.getText());
  213. String firma = txfFirma.getText().trim();
  214. String konfe = txfKonference.getText().trim();
  215. Konference konferenc = lvwKonference.getSelectionModel().getSelectedItem();
  216. boolean hotelMedService = false;
  217. boolean hotelUdenService = false;
  218. boolean speaker = false;
  219. boolean ledsagerMedUdflugt = false;
  220. boolean ledsagerUdenUdflugt = false;
  221. if (cbxHotelMedService.isSelected()) {
  222. hotelMedService = true;
  223. }
  224. if (cbxHotelUdenService.isSelected()) {
  225. hotelUdenService = true;
  226. }
  227. if (cbxSpeaker.isSelected()) {
  228. speaker = true;
  229. }
  230.  
  231. if (cbxLedsagerMedUdflugt.isSelected()) {
  232. ledsagerMedUdflugt = true;
  233.  
  234. }
  235. if (cbxLedsagerUdenUdflugt.isSelected()) {
  236. ledsagerUdenUdflugt = true;
  237.  
  238. }
  239. if (cbxLedsagerMedUdflugt.isSelected() && cbxLedsagerUdenUdflugt.isSelected()) {
  240. Alert alert = new Alert(AlertType.INFORMATION);
  241. alert.setTitle("Fejl");
  242. alert.setHeaderText("Du har valgt en ledsager bĂĄde med udflugt OG uden udflugt");
  243. alert.setContentText("Vælg venligst én af de to muligheder");
  244. alert.show();
  245. this.hide();
  246. txfName.clear();
  247. txfTelefon.clear();
  248. txfFirma.clear();
  249. txfKonference.clear();
  250. txfAntalDage.clear();
  251. cbxHotelMedService.setSelected(false);
  252. cbxSpeaker.setSelected(false);
  253. cbxHotelMedService.setSelected(false);
  254. cbxHotelUdenService.setSelected(false);
  255. cbxLedsagerMedUdflugt.setSelected(false);
  256. cbxLedsagerUdenUdflugt.setSelected(false);
  257. return;
  258. }
  259. if (cbxHotelMedService.isSelected() && cbxHotelUdenService.isSelected()) {
  260. Alert alert = new Alert(AlertType.INFORMATION);
  261. alert.setTitle("Fejl");
  262. alert.setHeaderText("Du har valgt et hotel bĂĄde med serive OG uden service");
  263. alert.setContentText("Vælg venligst én af de to muligheder");
  264. alert.show();
  265. this.hide();
  266. txfName.clear();
  267. txfTelefon.clear();
  268. txfFirma.clear();
  269. txfKonference.clear();
  270. txfAntalDage.clear();
  271. cbxHotelMedService.setSelected(false);
  272. cbxSpeaker.setSelected(false);
  273. cbxHotelMedService.setSelected(false);
  274. cbxHotelUdenService.setSelected(false);
  275. cbxLedsagerMedUdflugt.setSelected(false);
  276. cbxLedsagerUdenUdflugt.setSelected(false);
  277. return;
  278. }
  279. if (cbxHotelMedService.isSelected() && cbxLedsagerMedUdflugt.isSelected()
  280. || cbxHotelMedService.isSelected() && cbxLedsagerUdenUdflugt.isSelected()
  281. || cbxHotelUdenService.isSelected() && cbxLedsagerMedUdflugt.isSelected()
  282. || cbxHotelUdenService.isSelected() && cbxLedsagerUdenUdflugt.isSelected()) {
  283. Alert alert = new Alert(AlertType.INFORMATION);
  284. alert.setTitle("Et dobbeltværelse er tilføjet til reservationen");
  285. alert.setHeaderText("Dobbeltværelse er tilføjet!");
  286. alert.setContentText("Deltager og ledsager for et værelse hver.");
  287. alert.show();
  288.  
  289. }
  290.  
  291. if (navn.length() > 0 && telefon > 0 && konfe.length() > 0 && antalDage == 1 || antalDage == 2
  292. || antalDage == 3) {
  293. deltager = new Deltager(navn, telefon, firma, konferenc, hotelMedService, hotelUdenService,
  294. ledsagerMedUdflugt, ledsagerUdenUdflugt, speaker, antalDage);
  295. deltagere.add(deltager);
  296. lvwDeltagere.getItems().setAll(deltager);
  297. this.hide();
  298. txfName.clear();
  299. txfTelefon.clear();
  300. txfFirma.clear();
  301. txfKonference.clear();
  302. txfAntalDage.clear();
  303. cbxHotelMedService.setSelected(false);
  304. cbxHotelUdenService.setSelected(false);
  305. cbxSpeaker.setSelected(false);
  306. cbxLedsagerMedUdflugt.setSelected(false);
  307. cbxLedsagerUdenUdflugt.setSelected(false);
  308. } else {
  309. Alert alert = new Alert(AlertType.INFORMATION);
  310. alert.setTitle("Fejl");
  311. alert.setHeaderText("Manglende information");
  312. alert.setContentText("Udfyld venligst alle felter og sikre dig at du har valgt mellem 1-3 antal dage");
  313. alert.show();
  314. }
  315. }
  316.  
  317. public Deltager getActualDeltager() {
  318. return deltager;
  319. }
  320.  
  321. public void resetActualDeltager() {
  322. deltager = null;
  323.  
  324. }
  325. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement