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.

Gaertner.java 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package garten.model;
  7. import garten.view.Fenster;
  8. import garten.view.FlaecheBeet;
  9. import garten.view.FlaechePflanzen;
  10. import garten.view.FlaecheWeg;
  11. import java.awt.event.ActionEvent;
  12. import java.awt.event.ActionListener;
  13. import java.awt.event.MouseEvent;
  14. import java.awt.event.MouseListener;
  15. import java.awt.event.MouseMotionListener;
  16. import javax.security.auth.callback.ConfirmationCallback;
  17. import javax.swing.JOptionPane;
  18. import javax.swing.SwingUtilities;
  19. /**
  20. *
  21. * @author Jan
  22. */
  23. public class Gaertner implements MouseMotionListener, MouseListener,
  24. ActionListener
  25. {
  26. private Garten meinGarten;
  27. private Fenster fenster;
  28. private boolean pflanzebewegt;
  29. private boolean gartenexistiert;
  30. private boolean bepflanzungexistiert;
  31. private Beet bepflanzeBeet;
  32. MouseEvent koordinbeet; //x,y Koordinaten reichen eigentlich
  33. Pflanze1 pfl1;
  34. Pflanze2 pfl2;
  35. Pflanze3 pfl3;
  36. int height;
  37. int width;
  38. public Gaertner(Fenster fenster, FlaecheBeet flbeet, FlaecheWeg flweg,
  39. FlaechePflanzen flpfl)
  40. {
  41. meinGarten = new Garten(flbeet, flweg, flpfl);
  42. this.fenster = fenster; //Zur späteren Steuerung Pop up usw.
  43. pflanzebewegt = false;
  44. gartenexistiert = false;
  45. bepflanzungexistiert = false;
  46. }
  47. public void registerEvents()
  48. {
  49. fenster.addMouseListener(this);
  50. fenster.addMouseMotionListener(this);
  51. fenster.getMnGartenanlegen().addActionListener(this);
  52. fenster.getMnRandomPflanzenanlegen().addActionListener(this);
  53. fenster.getMnbepflanzen1().addActionListener(this);
  54. fenster.getMnbepflanzen2().addActionListener(this);
  55. fenster.getMnbepflanzen3().addActionListener(this);
  56. fenster.getBtnbepfl1().addActionListener(this);
  57. fenster.getBtnbepfl2().addActionListener(this);
  58. fenster.getBtnbepfl3().addActionListener(this);
  59. }
  60. @Override
  61. public void mouseClicked(MouseEvent e)
  62. {
  63. if (SwingUtilities.isRightMouseButton(e))//Bei Rechtsklick Popup Menü
  64. {
  65. koordinbeet =e; //abspeichern wegen koordinaten zur weiterverarbeitung
  66. fenster.showPoPup(e);
  67. }
  68. else
  69. {
  70. fenster.hidePopup();
  71. }
  72. }
  73. @Override
  74. public void mousePressed(MouseEvent e)
  75. {
  76. }
  77. @Override
  78. public void mouseReleased(MouseEvent e)
  79. {
  80. if (pflanzebewegt == true)
  81. {
  82. meinGarten.setmovePflanze(e);
  83. pflanzebewegt = false;
  84. }
  85. }
  86. @Override
  87. public void mouseEntered(MouseEvent e)
  88. {
  89. }
  90. @Override
  91. public void mouseExited(MouseEvent e)
  92. {
  93. }
  94. @Override
  95. public void actionPerformed(ActionEvent e)
  96. {
  97. Object key = e.getSource();
  98. if (key.equals(fenster.getMnGartenanlegen())) //Garten anlegen
  99. {
  100. if (gartenexistiert == false)
  101. {
  102. meinGarten.erstelleGarten();
  103. gartenexistiert = true;
  104. }
  105. else //Falls schon angelegt nachfragen ob neu anlegen
  106. {
  107. if (JOptionPane.showConfirmDialog(fenster, "Garten neu anlegen?", "Info", JOptionPane.YES_NO_OPTION) == ConfirmationCallback.YES)
  108. {
  109. meinGarten.löscheGarten();
  110. meinGarten.erstelleGarten();
  111. gartenexistiert = true;
  112. bepflanzungexistiert = false;
  113. }
  114. }
  115. }
  116. else if (key.equals(fenster.getMnRandomPflanzenanlegen())) //Garten Random Bepflanzen
  117. {
  118. if (gartenexistiert == true && bepflanzungexistiert == false) //falls garten existiert bepflanzen
  119. {
  120. if (meinGarten.randomBepflanzung() == true)
  121. {
  122. bepflanzungexistiert = true;
  123. }
  124. else
  125. {
  126. JOptionPane.showConfirmDialog(null,
  127. "Beet war leider für eine Pflanzengruppe zu klein", "Info", JOptionPane.DEFAULT_OPTION);
  128. }
  129. }
  130. else if (gartenexistiert == true && bepflanzungexistiert == true)//falls schon ein teil bepflanzt
  131. {
  132. if (JOptionPane.showConfirmDialog(fenster, "Beete neu bepflanzen?", "Info?", JOptionPane.YES_NO_OPTION) == ConfirmationCallback.YES)
  133. {
  134. meinGarten.löscheBepflanzung();
  135. meinGarten.randomBepflanzung();
  136. bepflanzungexistiert = true;
  137. }
  138. }
  139. else
  140. {
  141. JOptionPane.showConfirmDialog(fenster, "Erst muss ein Garten angelegt werden", "Info", JOptionPane.DEFAULT_OPTION);
  142. }
  143. }
  144. else if (key.equals(fenster.getBtnbepfl1()) || key.equals(fenster.getBtnbepfl2()) ||key.equals(fenster.getBtnbepfl3()))
  145. {
  146. }
  147. }
  148. @Override
  149. public void mouseDragged(MouseEvent e)
  150. {
  151. fenster.hidePopup();
  152. if (pflanzebewegt == false)
  153. {
  154. if (meinGarten.getmovePflanze(e) != null)
  155. {
  156. pflanzebewegt = true;
  157. }
  158. }
  159. }
  160. @Override
  161. public void mouseMoved(MouseEvent e)
  162. {
  163. }
  164. }