diff --git a/Applicatie/AddPeoplePanel.java b/Applicatie/AddPeoplePanel.java new file mode 100644 index 0000000..cac4adb --- /dev/null +++ b/Applicatie/AddPeoplePanel.java @@ -0,0 +1,100 @@ +package Applicatie; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class AddPeoplePanel extends JFrame { + + public AddPeoplePanel(Panel topPanel) { + super("Adding people"); + setDefaultCloseOperation(HIDE_ON_CLOSE); + setResizable(false); + + JPanel mainPanel = new JPanel(new BorderLayout()); + JLabel label; + JButton button; + + //Top: + JPanel panel = new JPanel(); + label = new JLabel("Enter the amount of people you want to add: "); + panel.add(label); + mainPanel.add(panel,BorderLayout.NORTH); + //Center: + panel = new JPanel(); + JTextField amountOfPeopleField = new JTextField("0"); + amountOfPeopleField.setPreferredSize(new Dimension(100,20)); + amountOfPeopleField.addKeyListener(new KeyListener() { + + @Override + public void keyTyped(KeyEvent e) { + } + + @Override + public void keyReleased(KeyEvent e) { + try { + amountOfPeopleField.setBackground(Color.WHITE); + int amountOfPeople = Integer.parseInt(amountOfPeopleField.getText()); + amountOfPeopleField.setText(amountOfPeople + ""); + } + catch(NumberFormatException nf) { + amountOfPeopleField.setBackground(Color.RED); + } + } + + @Override + public void keyPressed(KeyEvent e) { + } + }); + + label = new JLabel("people "); + panel.add(amountOfPeopleField); + panel.add(label); + mainPanel.add(panel,BorderLayout.CENTER); + //Bottom: + panel = new JPanel(); + button = new JButton("Cancel"); + button.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + AddPeoplePanel.this.dispose(); + } + }); + panel.add(button); + button = new JButton("Apply"); + button.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + if(amountOfPeopleField.getBackground() != Color.RED) { + topPanel.addVisitors(Integer.parseInt(amountOfPeopleField.getText())); + AddPeoplePanel.this.dispose(); + } + else + JOptionPane.showMessageDialog(topPanel, "Only numbers are accepted"); + } + }); + panel.add(button); + mainPanel.add(panel,BorderLayout.SOUTH); + + add(mainPanel); + + //Finishing off + pack(); + setSize(290,150); + setLocationRelativeTo(null); + setVisible(true); + } +} diff --git a/Applicatie/ControlPanel.java b/Applicatie/ControlPanel.java index d78de55..97d185c 100644 --- a/Applicatie/ControlPanel.java +++ b/Applicatie/ControlPanel.java @@ -19,13 +19,16 @@ public class ControlPanel extends JPanel private static final long serialVersionUID = 6805244250902524351L; private Panel p; + private int people; JLabel timeLabel; + JLabel peopleLabel; public ControlPanel() { super(); BoxLayout box = new BoxLayout(this, BoxLayout.X_AXIS); setLayout(box); + people = 0; setPreferredSize(new Dimension(0,50)); setBorder(BorderFactory.createLineBorder(new Color(180, 180, 180))); @@ -105,7 +108,7 @@ public class ControlPanel extends JPanel peoplePanel.setMaximumSize(new Dimension(285,50)); add(peoplePanel); { - JLabel peopleLabel = new JLabel("0/0 People"); + peopleLabel = new JLabel(people + " People"); peopleLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20)); peoplePanel.add(peopleLabel); @@ -115,7 +118,7 @@ public class ControlPanel extends JPanel peopleButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { - p.addVisitors(); + new AddPeoplePanel(p); } }); peoplePanel.add(peopleButton); @@ -147,6 +150,7 @@ public class ControlPanel extends JPanel public void setPeople(int people) { - + this.people = people; + peopleLabel.setText(people + " People"); } } diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index 81cc2b5..b334fee 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -229,7 +229,16 @@ public class Panel extends JPanel implements ActionListener return waypoints; } - public void addVisitors() + public void addVisitors(ArrayList entrances) + { + + DrawObject entrance = entrances.get((int) Math.floor(Math.random()*entrances.size())); + Point point = new Point((int)entrance.getPosition().getX(),(int)entrance.getPosition().getY()); + visitors.add(new Visitor("visitor",point, agenda, objects, waypoints, date)); + + } + + public void addVisitors(int count) { ArrayList entrances = new ArrayList<>(); for(DrawObject object : objects) { @@ -238,21 +247,14 @@ public class Panel extends JPanel implements ActionListener } } if(!entrances.isEmpty()) { - DrawObject entrance = entrances.get((int) Math.floor(Math.random()*entrances.size())); - Point point = new Point((int)entrance.getPosition().getX(),(int)entrance.getPosition().getY()); - visitors.add(new Visitor("visitor",point, agenda, objects, waypoints, date)); + for (int i = 0; i < count; i++) + { + addVisitors(entrances); + } } - else { + else JOptionPane.showMessageDialog(this, "You don't have an entrance"); - } - } - - public void addVisitors(int count) - { - for (int i = 0; i < count; i++) - { - addVisitors(); - } + cp.setPeople(visitors.size()); } public void paintComponent(Graphics g) @@ -668,6 +670,7 @@ public class Panel extends JPanel implements ActionListener this.height = height; paths.clear(); objects.clear(); + visitors.clear(); cameraScale = 1; switch (terrainIndex) { diff --git a/Applicatie/Visitor.java b/Applicatie/Visitor.java index a462703..f2b72c6 100644 --- a/Applicatie/Visitor.java +++ b/Applicatie/Visitor.java @@ -94,7 +94,6 @@ public class Visitor } } - // moveToTarget(target, objects, visitors, paths); move(target, panel); } @@ -177,7 +176,6 @@ public class Visitor } } } - } public boolean checkIfOnWaypoint(Panel panel) diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index 4f7e70b..4f8da64 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -4,7 +4,6 @@ import java.awt.Color; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Point2D; -import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import javax.swing.SwingUtilities; @@ -16,7 +15,6 @@ import Applicatie.Waypoint; import Applicatie.WaypointPopup; import Objects.DrawObject; import Objects.Path; -import Objects.Entrance; public class Mouse extends MouseAdapter { @@ -130,7 +128,7 @@ public class Mouse extends MouseAdapter { if (SwingUtilities.isRightMouseButton(e)) { - new PathPopup(clickedPath, panel); + //new PathPopup(clickedPath, panel); } } else