123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- /*
- * 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 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;
- MouseEvent koordinbeet; //x,y Koordinaten reichen eigentlich
-
- private int[] aktuellesBeet;
-
- public Gaertner(Fenster fenster)
- {
- this.fenster = fenster;
- meinGarten = new Garten(fenster.getFlbeet(), fenster.getFlweg(), fenster.getFlpfl());
- pflanzebewegt = false;
- gartenexistiert = false;
- bepflanzungexistiert = false;
-
- aktuellesBeet = new int[2];
-
- }
-
- 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);
-
- fenster.getRadiobtn1pfl1().addActionListener(this);
- fenster.getRadiobtn1pfl2().addActionListener(this);
- fenster.getRadiobtn1pfl3().addActionListener(this);
- fenster.getRadiobtn2pfl1().addActionListener(this);
- fenster.getRadiobtn2pfl2().addActionListener(this);
- fenster.getRadiobtn2pfl3().addActionListener(this);
- fenster.getRadiobtn3pfl1().addActionListener(this);
- fenster.getRadiobtn3pfl2().addActionListener(this);
- fenster.getRadiobtn3pfl3().addActionListener(this);
- fenster.getRadiobtn4pfl3().addActionListener(this);
-
- fenster.getRadiobtn1pfl1().setVisible(true);
-
- }
-
- @Override
- public void mouseClicked(MouseEvent e)
- {
- if (SwingUtilities.isRightMouseButton(e))//Bei Rechtsklick Popup Menü
- {
- //Zwischenspeichern der Koordinaten der Maus um Beet zu finden
- koordinbeet = e;
- }
- }
-
- @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();
- //Garten anlegen
- if (key.equals(fenster.getMnGartenanlegen()))
- {
- 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;
- }
- }
- }
- //Garten Random Bepflanzen
- else if (key.equals(fenster.getMnRandomPflanzenanlegen()))
- {
- 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);
- }
- }
- //Ein einzelnes Beet bepflanzen
- else if ((key.equals(fenster.getBtnbepfl1()) || key.equals(fenster.getBtnbepfl2()) || key.equals(fenster.getBtnbepfl3())) && gartenexistiert)
- {
- int alter = 0;
- int pflanzentyp = 0;
- int laenge = 0;
-
- //Pflanzentyp festlegen + Länge festlegen
- if (key.equals(fenster.getBtnbepfl1()))
- {
- pflanzentyp = 1;
- laenge = Integer.valueOf(JOptionPane.showInputDialog("Start Länge von 30 - 50"));
- }
- else if (key.equals(fenster.getBtnbepfl2()))
- {
- pflanzentyp = 2;
- laenge = Integer.valueOf(JOptionPane.showInputDialog("Start Länge von 10 - 20"));
- }
- else if (key.equals(fenster.getBtnbepfl3()))
- {
- pflanzentyp = 3;
- laenge = Integer.valueOf(JOptionPane.showInputDialog("Start Länge von 10 - 20"));
- }
-
- //alter bekommen
- if (fenster.getRadiobtn1pfl1().isSelected() || fenster.getRadiobtn1pfl2().isSelected() || fenster.getRadiobtn1pfl3().isSelected())
- {
- alter = 1;
- }
- else if (fenster.getRadiobtn2pfl1().isSelected() || fenster.getRadiobtn2pfl2().isSelected() || fenster.getRadiobtn2pfl3().isSelected())
- {
- alter = 2;
- }
- else if (fenster.getRadiobtn3pfl1().isSelected() || fenster.getRadiobtn3pfl2().isSelected() || fenster.getRadiobtn3pfl3().isSelected())
- {
- alter = 3;
- }
- else if (fenster.getRadiobtn4pfl3().isSelected())
- {
- alter = 4;
- }
-
- System.out.println("Pflanzentyp : " + pflanzentyp + " Alter: " + alter + " Länge: " + laenge);
- PflanzengruppenKonfigurator konfig = new PflanzengruppenKonfigurator();
- konfig.alter(alter);
- konfig.pflanzenTyp(pflanzentyp);
- konfig.startlaenge(laenge);
- konfig.beet(meinGarten.getBeet(koordinbeet));
- konfig.erstellen();
-
- //ArrayList<Pflanze> tempfl = meinGarten.getBeet(koordinbeet).removePlfanzenGruppenBeet();
- //meinGarten.removePflanzen(tempfl);
-
- for(Pflanze pf : meinGarten.getBeet(koordinbeet).getPflanzenausgruppe())
- {
- meinGarten.hinzufuegenPflanze(pf);
- }
- meinGarten.zeichnePflanzen();
- System.out.println("Pflanze konfiguriert");
- bepflanzungexistiert = true;
- }
- }
-
- @Override
- public void mouseDragged(MouseEvent e)
- {
- fenster.hidePopup();
- if (pflanzebewegt == false)
- {
- if (meinGarten.getmovePflanze(e) != null)
- {
- pflanzebewegt = true;
- }
- }
-
- }
-
- @Override
- public void mouseMoved(MouseEvent e)
- {
- }
-
- }
|