123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package garten.model;
-
- import garten.view.Fenster;
- import garten.view.FlaecheBeet;
- import garten.view.FlaechePflanzen;
- import garten.view.FlaecheWeg;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.awt.event.MouseMotionListener;
- import javax.security.auth.callback.ConfirmationCallback;
- import javax.swing.JOptionPane;
- import javax.swing.SwingUtilities;
-
- /**
- *
- * @author Jan
- */
- public class Gaertner implements MouseMotionListener, MouseListener,
- ActionListener
- {
- private Garten meinGarten;
- private Fenster fenster;
- private boolean pflanzebewegt;
- private boolean gartenexistiert;
- private boolean bepflanzungexistiert;
- private Beet bepflanzeBeet;
-
- MouseEvent koordinbeet; //x,y Koordinaten reichen eigentlich
-
- Pflanze1 pfl1;
- Pflanze2 pfl2;
- Pflanze3 pfl3;
- int height;
- int width;
-
- public Gaertner(Fenster fenster, FlaecheBeet flbeet, FlaecheWeg flweg,
- FlaechePflanzen flpfl)
- {
- meinGarten = new Garten(flbeet, flweg, flpfl);
- this.fenster = fenster; //Zur späteren Steuerung Pop up usw.
- pflanzebewegt = false;
- gartenexistiert = false;
- bepflanzungexistiert = false;
-
- }
-
- public void registerEvents()
- {
- fenster.addMouseListener(this);
- fenster.addMouseMotionListener(this);
-
- fenster.getMnGartenanlegen().addActionListener(this);
- fenster.getMnRandomPflanzenanlegen().addActionListener(this);
-
- fenster.getMnbepflanzen1().addActionListener(this);
- fenster.getMnbepflanzen2().addActionListener(this);
- fenster.getMnbepflanzen3().addActionListener(this);
-
- fenster.getBtnbepfl1().addActionListener(this);
- fenster.getBtnbepfl2().addActionListener(this);
- fenster.getBtnbepfl3().addActionListener(this);
-
- }
-
- @Override
- public void mouseClicked(MouseEvent e)
- {
- if (SwingUtilities.isRightMouseButton(e))//Bei Rechtsklick Popup Menü
- {
- koordinbeet =e; //abspeichern wegen koordinaten zur weiterverarbeitung
- fenster.showPoPup(e);
- }
- else
- {
- fenster.hidePopup();
- }
- }
-
- @Override
- public void mousePressed(MouseEvent e)
- {
-
- }
-
- @Override
- public void mouseReleased(MouseEvent e)
- {
- if (pflanzebewegt == true)
- {
- meinGarten.setmovePflanze(e);
- pflanzebewegt = false;
- }
-
- }
-
- @Override
- public void mouseEntered(MouseEvent e)
- {
- }
-
- @Override
- public void mouseExited(MouseEvent e)
- {
-
- }
-
- @Override
- public void actionPerformed(ActionEvent e)
- {
- Object key = e.getSource();
- if (key.equals(fenster.getMnGartenanlegen())) //Garten anlegen
- {
- if (gartenexistiert == false)
- {
- meinGarten.erstelleGarten();
- gartenexistiert = true;
- }
- else //Falls schon angelegt nachfragen ob neu anlegen
- {
- if (JOptionPane.showConfirmDialog(fenster, "Garten neu anlegen?", "Info", JOptionPane.YES_NO_OPTION) == ConfirmationCallback.YES)
- {
- meinGarten.löscheGarten();
- meinGarten.erstelleGarten();
- gartenexistiert = true;
- bepflanzungexistiert = false;
- }
- }
- }
- else if (key.equals(fenster.getMnRandomPflanzenanlegen())) //Garten Random Bepflanzen
- {
- if (gartenexistiert == true && bepflanzungexistiert == false) //falls garten existiert bepflanzen
- {
- if (meinGarten.randomBepflanzung() == true)
- {
- bepflanzungexistiert = true;
- }
- else
- {
- JOptionPane.showConfirmDialog(null,
- "Beet war leider für eine Pflanzengruppe zu klein", "Info", JOptionPane.DEFAULT_OPTION);
- }
- }
- else if (gartenexistiert == true && bepflanzungexistiert == true)//falls schon ein teil bepflanzt
- {
- if (JOptionPane.showConfirmDialog(fenster, "Beete neu bepflanzen?", "Info?", JOptionPane.YES_NO_OPTION) == ConfirmationCallback.YES)
- {
- meinGarten.löscheBepflanzung();
- meinGarten.randomBepflanzung();
- bepflanzungexistiert = true;
- }
- }
- else
- {
- JOptionPane.showConfirmDialog(fenster, "Erst muss ein Garten angelegt werden", "Info", JOptionPane.DEFAULT_OPTION);
- }
- }
- else if (key.equals(fenster.getBtnbepfl1()) || key.equals(fenster.getBtnbepfl2()) ||key.equals(fenster.getBtnbepfl3()))
- {
-
- }
- }
-
- @Override
- public void mouseDragged(MouseEvent e)
- {
- fenster.hidePopup();
- if (pflanzebewegt == false)
- {
- if (meinGarten.getmovePflanze(e) != null)
- {
- pflanzebewegt = true;
- }
- }
-
- }
-
- @Override
- public void mouseMoved(MouseEvent e)
- {
- }
-
- }
|