Advertisement
Guest User

Untitled

a guest
Nov 15th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.43 KB | None | 0 0
  1. package guifx;
  2.  
  3. import java.time.LocalDate;
  4. import java.util.ArrayList;
  5.  
  6. import app.controller.Controller;
  7. import app.model.Konference;
  8. import app.model.Udflugt;
  9. import javafx.geometry.HPos;
  10. import javafx.geometry.Insets;
  11. import javafx.scene.Scene;
  12. import javafx.scene.control.Button;
  13. import javafx.scene.control.ComboBox;
  14. import javafx.scene.control.Label;
  15. import javafx.scene.control.TextField;
  16. import javafx.scene.layout.GridPane;
  17. import javafx.stage.Modality;
  18. import javafx.stage.Stage;
  19. import javafx.stage.StageStyle;
  20.  
  21. public class UdflugtWindow extends Stage {
  22. private Udflugt udflugt;
  23. private Konference konference;
  24.  
  25. public UdflugtWindow(String title, Udflugt udflugt) {
  26. this.initStyle(StageStyle.UTILITY);
  27. this.initModality(Modality.APPLICATION_MODAL);
  28. this.setResizable(false);
  29.  
  30. this.udflugt = udflugt;
  31.  
  32. this.setTitle(title);
  33. GridPane pane = new GridPane();
  34. this.initContent(pane);
  35.  
  36. Scene scene = new Scene(pane);
  37. this.setScene(scene);
  38. }
  39.  
  40. public UdflugtWindow(String title) {
  41. this(title, null);
  42. }
  43.  
  44. // ----------------------------------------------------------------------
  45.  
  46. private TextField txfName, txfBeskrivelse, txfPris, txfDato;
  47. private Label lblError;
  48. private ComboBox <Konference> cbbKon;
  49.  
  50. private void initContent(GridPane pane) {
  51. pane.setPadding(new Insets(10));
  52. pane.setHgap(10);
  53. pane.setVgap(10);
  54. pane.setGridLinesVisible(false);
  55.  
  56. Label lblName = new Label("Navn");
  57. pane.add(lblName, 0, 0);
  58.  
  59. txfName = new TextField();
  60. pane.add(txfName, 0, 1);
  61. txfName.setPrefWidth(200);
  62.  
  63. Label lblbesk = new Label("Beskrivelse");
  64. pane.add(lblbesk, 0, 2);
  65.  
  66. txfBeskrivelse = new TextField();
  67. pane.add(txfBeskrivelse, 0, 3);
  68.  
  69. Label lblPris = new Label("Pris");
  70. pane.add(lblPris, 0, 4);
  71.  
  72. txfPris = new TextField();
  73. pane.add(txfPris, 0, 5);
  74.  
  75. Label lblDato = new Label("Dato");
  76. pane.add(lblDato, 0, 6);
  77.  
  78. txfDato = new TextField();
  79. pane.add(txfDato, 0, 7);
  80.  
  81. Label lblKonf = new Label("Konference");
  82. pane.add(lblKonf, 0, 8);
  83.  
  84. cbbKon = new ComboBox();
  85. pane.add(cbbKon, 0, 9);
  86. cbbKon.getItems().addAll(Controller.getKonferencer());
  87.  
  88. Button btnCancel = new Button("Cancel");
  89. pane.add(btnCancel, 0, 10);
  90. GridPane.setHalignment(btnCancel, HPos.LEFT);
  91. btnCancel.setOnAction(event -> this.cancelAction());
  92.  
  93. Button btnOK = new Button("OK");
  94. pane.add(btnOK, 0, 10);
  95. GridPane.setHalignment(btnOK, HPos.RIGHT);
  96. btnOK.setOnAction(event -> this.okAktion());
  97.  
  98. lblError = new Label();
  99. pane.add(lblError, 0, 11);
  100. lblError.setStyle("-fx-text-fill: red");
  101.  
  102. this.initControls();
  103. }
  104.  
  105. private void initControls() {
  106. if (udflugt != null) {
  107. txfName.setText(udflugt.getNavn());
  108. txfBeskrivelse.setText(udflugt.getBeskrivelse());
  109. txfPris.setText("" + udflugt.getPris());
  110. txfDato.setText("" + udflugt.getDato());
  111. } else {
  112. txfName.clear();
  113. txfBeskrivelse.clear();
  114. txfPris.clear();
  115. txfDato.clear();
  116. }
  117. }
  118.  
  119. // ------------------------------------------------------------------------
  120.  
  121. private void cancelAction() {
  122. this.hide();
  123. }
  124.  
  125. private void okAktion() {
  126. String navn = txfName.getText().trim();
  127. if (navn.length() == 0) {
  128. lblError.setText("Navnefeltet er tomt");
  129. return;
  130. }
  131.  
  132. String beskrivelse = txfBeskrivelse.getText().trim();
  133. if (beskrivelse.length() == 0) {
  134. lblError.setText("Beskrivelsesfeltet er tomt");
  135. return;
  136. }
  137.  
  138. int pris = -1;
  139. try {
  140. pris = Integer.parseInt(txfPris.getText().trim());
  141. } catch (NumberFormatException ex) {
  142.  
  143. }
  144. if (pris < 0) {
  145. lblError.setText("Prisen skal være et positivt tal");
  146. return;
  147. }
  148.  
  149. String dato = txfDato.getText().trim();
  150. if (dato.length() == 0) {
  151. lblError.setText("Datoen dur ikke");
  152. }
  153.  
  154. Konference nyKonf = cbbKon.getSelectionModel().getSelectedItem();
  155.  
  156.  
  157. if (udflugt != null) {
  158. Controller.updateUdflugt(udflugt, beskrivelse, navn, pris, LocalDate.parse(dato), nyKonf);
  159. } else {
  160. Udflugt udflugt = Controller.createUdflugt(beskrivelse, navn, pris, LocalDate.parse(dato), nyKonf);
  161. }
  162.  
  163. this.hide();
  164. }
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement