44 Commits
Author SHA1 Message Date
kennyboy55 8a92a7a571 Added Stages to save file.
Remove selection from save.
2015-04-08 22:42:40 +02:00
kennyboy55 1563368bf8 removed pause button 2015-04-08 22:06:50 +02:00
kennyboy55 eab4aedc1d Added text to button actions 2015-04-08 21:53:18 +02:00
Yorick be53c1f138 kaas kenneth 2015-04-08 21:47:12 +02:00
Yorick a7d811f956 Merge remote-tracking branch 'origin/kenneth' into develop 2015-04-08 21:46:42 +02:00
Yorick f2f0b36d0e Load waypoints from filez 2015-04-08 21:45:27 +02:00
kennyboy55 04fa453e49 Added agenda stuff 2015-04-08 21:45:03 +02:00
Remco 9d88f92a98 Deleted useless exclamation points 2015-04-08 21:38:04 +02:00
Yorick d3e9b578eb Merge banan dev 2015-04-08 21:37:48 +02:00
Yorick 8ba874bec6 visitors kinda working? 2015-04-08 21:29:17 +02:00
Wesley 4c11d4ad2f fixed stuff
lol
2015-04-08 21:25:08 +02:00
Wesley 77dae9741e added addPeoplePanel 2015-04-08 21:07:59 +02:00
Yorick 19f48ad3e9 Merge remote-tracking branch 'origin/kenneth' into develop 2015-04-08 21:03:46 +02:00
Yorick 26265b5a3e Waypoint move 2015-04-08 21:03:29 +02:00
kennyboy55 457da54a5c Fixed agenda module sync 2015-04-08 21:01:13 +02:00
kennyboy55 c3973cc4e4 Fixed stuff 2015-04-08 20:57:06 +02:00
kennyboy55 d0baf5673f Merge branch 'kenneth' of https://github.com/ProjectgroepA4/FestivalPlanner into kenneth
Conflicts:
	Applicatie/Panel.java
	Applicatie/Visitor.java
	Applicatie/WaypointPopup.java
	Listeners/Mouse.java
2015-04-08 20:55:44 +02:00
Yorick 8167fec369 WOOOOOOOOOOOOOOOOOOOO 2015-04-08 20:31:18 +02:00
Yorick bdcc40f00f Merge branch 'develop' of https://github.com/ProjectgroepA4/FestivalPlanner into develop 2015-04-08 17:32:28 +02:00
Yorick d0c0b16585 kaas 2015-04-08 17:32:10 +02:00
Remco 6f265063b4 Edited Waypointpopup 2015-04-08 17:31:06 +02:00
Yorick 89036d27af Actions is nul wtf 2015-04-08 17:17:53 +02:00
Yorick b5cf44b44c woo 2015-04-08 16:46:02 +02:00
kennyboy55 7a6bca5ed3 Merge branch 'kenneth' of https://github.com/ProjectgroepA4/FestivalPlanner into kenneth 2015-04-08 16:39:23 +02:00
kennyboy55 9d853babdc Combined Agenda 2015-04-08 16:38:55 +02:00
unknown 69c05da3fd laatste versie 2015-04-08 15:56:46 +02:00
kennyboy55 b50c4d2c33 Objects can no longer move outside field 2015-04-08 13:51:01 +02:00
kennyboy55 a360286c48 Stuff 2015-04-08 13:16:12 +02:00
unknown c2cb07cf3e ok 2015-04-08 13:11:16 +02:00
unknown 90ca17e28a ok 2015-04-08 12:13:39 +02:00
unknown c29ccec789 ok 2015-04-07 14:58:47 +02:00
unknown 0535d98427 ok 2015-04-07 14:29:24 +02:00
unknown a2110d3e58 ok 2015-04-07 12:36:14 +02:00
unknown d8efbc8616 laatste update 2015-03-26 12:05:33 +01:00
unknown b9d42cd4eb new 2015-03-24 13:47:45 +01:00
unknown ca90d98d9a fix 2015-03-17 12:58:20 +01:00
unknown a3479fc37a fix 2015-03-17 12:35:57 +01:00
unknown 2f53d1353f added stuff 2015-03-17 12:23:43 +01:00
guusvdongen 87bf6d9295 festivaldemo methodes
Tekenobject & podium moeten Serializable worden.
In tekenobject moet de image variablen een String filepath worden.
Dan kun je moet je voor elke methode in tekenobject waar je die image voor nodig had (Image image = new ImageIcon(filepath).getImage();) doen. Dit komt, omdat een image niet serializable is :(
2015-03-12 18:18:03 +01:00
guusvdongen a89feaaaab Delete selection.png 2015-03-12 18:14:00 +01:00
guusvdongen df02d793eb Delete grass.jpg 2015-03-12 18:13:42 +01:00
guusvdongen a00ccbe085 Delete commons-lang3-3.3.2.jar 2015-03-12 18:13:27 +01:00
guusvdongen 835d126d80 Delete README.md 2015-03-12 18:13:22 +01:00
guusvdongen dd7893375e Agenda load/save fix 2015-03-12 18:12:25 +01:00
30 changed files with 527 additions and 199 deletions
+19 -3
View File
@@ -51,7 +51,20 @@ public class Agenda implements Serializable {
{ {
return stages; return stages;
} }
public ArrayList<Event> eventsForStage(AgendaStage st)
{
ArrayList<Event> stageEvents = new ArrayList<Event>();
for(Event e: events)
{
if(e.getStage() == st)
{
stageEvents.add(e);
}
}
return stageEvents;
}
/*
public void saveAgenda() public void saveAgenda()
{ {
JFileChooser fileChooser = new JFileChooser(); JFileChooser fileChooser = new JFileChooser();
@@ -179,7 +192,7 @@ public class Agenda implements Serializable {
{ {
boolean exists = false; boolean exists = false;
String name = e.getStage().getName(); String name = e.getStage().getName();
for (AgendaStage s : stages) for (Stage s : stages)
{ {
if ( s.getName().equals(name) ) { if ( s.getName().equals(name) ) {
exists = true; exists = true;
@@ -202,7 +215,8 @@ public class Agenda implements Serializable {
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
*/
public void clearAgenda() public void clearAgenda()
{ {
@@ -211,10 +225,12 @@ public class Agenda implements Serializable {
artists.clear(); artists.clear();
} }
/*
public void fillAllLists() public void fillAllLists()
{ {
loadAgenda(); loadAgenda();
fillStages(); fillStages();
fillArtists(); fillArtists();
} }
} */
}
+1 -1
View File
@@ -19,7 +19,7 @@ public class EditArtistPanel extends JFrame {
public EditArtistPanel(Agenda agenda, Artist art, TabbedPane tab) public EditArtistPanel(Agenda agenda, Artist art, TabbedPane tab)
{ {
super("Artist editscreen!"); super("Artist editscreen");
setDefaultCloseOperation(HIDE_ON_CLOSE); setDefaultCloseOperation(HIDE_ON_CLOSE);
JPanel content = new JPanel(new BorderLayout()); JPanel content = new JPanel(new BorderLayout());
JPanel south = new JPanel(new FlowLayout()); JPanel south = new JPanel(new FlowLayout());
+1 -1
View File
@@ -24,7 +24,7 @@ public class EditEventPanel extends JFrame{
public EditEventPanel(Agenda agenda, Event e, TabbedPane tab) public EditEventPanel(Agenda agenda, Event e, TabbedPane tab)
{ {
super("Event editscreen!"); super("Event editscreen");
setDefaultCloseOperation(HIDE_ON_CLOSE); setDefaultCloseOperation(HIDE_ON_CLOSE);
JPanel content = new JPanel(new BorderLayout()); JPanel content = new JPanel(new BorderLayout());
JPanel south = new JPanel(new FlowLayout()); JPanel south = new JPanel(new FlowLayout());
+1 -1
View File
@@ -20,7 +20,7 @@ public class EditStagePanel extends JFrame{
public EditStagePanel(Agenda agenda, AgendaStage sta) public EditStagePanel(Agenda agenda, AgendaStage sta)
{ {
super("Stage editscreen!"); super("Stage editscreen");
setDefaultCloseOperation(HIDE_ON_CLOSE); setDefaultCloseOperation(HIDE_ON_CLOSE);
JPanel content = new JPanel(new BorderLayout()); JPanel content = new JPanel(new BorderLayout());
JPanel south = new JPanel(new FlowLayout()); JPanel south = new JPanel(new FlowLayout());
+4 -4
View File
@@ -34,8 +34,8 @@ public class Event implements Serializable {
endHour, endMinute); endHour, endMinute);
this.startHour = startHour; this.startHour = startHour;
this.startMinute = startMinute; this.startMinute = startMinute;
this.stopHour = stopHour; this.stopHour = endHour;
this.stopMinute = stopMinute; this.stopMinute = endMinute;
this.stage = stage; this.stage = stage;
this.artist = artist; this.artist = artist;
this.description = description; this.description = description;
@@ -55,11 +55,11 @@ public class Event implements Serializable {
} }
public int getStart(){ public int getStart(){
return (startHour * 100) + startMinute; return (startHour * 60) + startMinute;
} }
public int getStop(){ public int getStop(){
return (stopHour * 100) + stopMinute; return (stopHour * 60) + stopMinute;
} }
public int getStopHour(){ public int getStopHour(){
+4 -3
View File
@@ -63,7 +63,8 @@ public class MenuBar extends JMenuBar {
open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK)); open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
open.addActionListener(new ActionListener() { open.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
w.getAgenda().loadAgenda(); Applicatie.SaveLoad.load(w.getPanel());
w.setAgenda(w.getPanel().getAgenda());
Window.updatePanel(); Window.updatePanel();
} }
}); });
@@ -72,7 +73,7 @@ public class MenuBar extends JMenuBar {
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)); save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
save.addActionListener(new ActionListener() { save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
w.getAgenda().saveAgenda(); Applicatie.SaveLoad.save(w.getPanel());
Window.updatePanel(); Window.updatePanel();
} }
}); });
@@ -133,4 +134,4 @@ public class MenuBar extends JMenuBar {
view.add(art_sta); view.add(art_sta);
add(view); add(view);
} }
} }
+12 -5
View File
@@ -1,6 +1,5 @@
package Agenda; package Agenda;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
@@ -36,14 +35,16 @@ public class Window extends JFrame {
private static GregorianCalendar date; private static GregorianCalendar date;
private static Agenda agenda; private static Agenda agenda;
private static String currentPanel = "table"; private static String currentPanel = "table";
private Applicatie.Panel ap;
public Window() public Window(Applicatie.Panel ap)
{ {
/* /*
* Initialize window * Initialize window
*/ */
super("Agenda"); super("Agenda");
agenda = new Agenda(); this.ap = ap;
agenda = ap.getAgenda();
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() { addWindowListener(new WindowAdapter() {
@@ -181,7 +182,7 @@ public class Window extends JFrame {
} }
}); });
} }
public static void changePanel(String panel) public static void changePanel(String panel)
{ {
currentPanel = panel; currentPanel = panel;
@@ -231,7 +232,13 @@ public class Window extends JFrame {
public void setAgenda(Agenda a) public void setAgenda(Agenda a)
{ {
agenda = a; agenda = a;
ap.setAgenda(a);
}
public Applicatie.Panel getPanel()
{
return ap;
} }
} }
+7 -1
View File
@@ -11,13 +11,15 @@ public class Action
private int starttime; private int starttime;
private int duration; private int duration;
private DrawObject target; private DrawObject target;
private Waypoint waypoint;
public Action(Point2D position, int starttime, int duration, DrawObject tar) public Action(Point2D position, int starttime, int duration, DrawObject tar, Waypoint waypoint)
{ {
this.position = position; this.position = position;
this.starttime = starttime; this.starttime = starttime;
this.duration = duration; this.duration = duration;
this.target = tar; this.target = tar;
this.waypoint = waypoint;
} }
public Point2D getPosition() public Point2D getPosition()
@@ -44,4 +46,8 @@ public class Action
{ {
return duration; return duration;
} }
public Waypoint getWaypoint(){
return waypoint;
}
} }
+100
View File
@@ -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);
}
}
+13 -17
View File
@@ -19,13 +19,17 @@ public class ControlPanel extends JPanel
private static final long serialVersionUID = 6805244250902524351L; private static final long serialVersionUID = 6805244250902524351L;
private Panel p; private Panel p;
private int people;
JLabel timeLabel; JLabel timeLabel;
JLabel peopleLabel;
JLabel runningLabel;
public ControlPanel() public ControlPanel()
{ {
super(); super();
BoxLayout box = new BoxLayout(this, BoxLayout.X_AXIS); BoxLayout box = new BoxLayout(this, BoxLayout.X_AXIS);
setLayout(box); setLayout(box);
people = 0;
setPreferredSize(new Dimension(0,50)); setPreferredSize(new Dimension(0,50));
setBorder(BorderFactory.createLineBorder(new Color(180, 180, 180))); setBorder(BorderFactory.createLineBorder(new Color(180, 180, 180)));
@@ -33,8 +37,8 @@ public class ControlPanel extends JPanel
setFocusable(false); setFocusable(false);
JPanel simulatorPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JPanel simulatorPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
simulatorPanel.setPreferredSize(new Dimension(350,50)); simulatorPanel.setPreferredSize(new Dimension(290,50));
simulatorPanel.setMaximumSize(new Dimension(350,50)); simulatorPanel.setMaximumSize(new Dimension(290,50));
add(simulatorPanel); add(simulatorPanel);
{ {
JLabel simulatorLabel = new JLabel("Simulator: "); JLabel simulatorLabel = new JLabel("Simulator: ");
@@ -48,21 +52,11 @@ public class ControlPanel extends JPanel
public void actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)
{ {
p.getT().start(); p.getT().start();
runningLabel.setText("Simulation Started");
} }
}); });
simulatorPanel.add(playButton); simulatorPanel.add(playButton);
JButton pauseButton = new JButton("Pause");
pauseButton.setFocusable(false);
pauseButton.setFont(new Font("Segoe UI", Font.PLAIN, 20));
pauseButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
p.getT().stop();
}
});
simulatorPanel.add(pauseButton);
JButton stopButton = new JButton("Stop"); JButton stopButton = new JButton("Stop");
stopButton.setFocusable(false); stopButton.setFocusable(false);
stopButton.setFont(new Font("Segoe UI", Font.PLAIN, 20)); stopButton.setFont(new Font("Segoe UI", Font.PLAIN, 20));
@@ -70,6 +64,7 @@ public class ControlPanel extends JPanel
public void actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)
{ {
p.getT().stop(); p.getT().stop();
runningLabel.setText("Simulation Stopped");
} }
}); });
simulatorPanel.add(stopButton); simulatorPanel.add(stopButton);
@@ -105,7 +100,7 @@ public class ControlPanel extends JPanel
peoplePanel.setMaximumSize(new Dimension(285,50)); peoplePanel.setMaximumSize(new Dimension(285,50));
add(peoplePanel); add(peoplePanel);
{ {
JLabel peopleLabel = new JLabel("0/0 People"); peopleLabel = new JLabel(people + " People");
peopleLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20)); peopleLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20));
peoplePanel.add(peopleLabel); peoplePanel.add(peopleLabel);
@@ -115,7 +110,7 @@ public class ControlPanel extends JPanel
peopleButton.addActionListener(new ActionListener(){ peopleButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)
{ {
p.addVisitors(); new AddPeoplePanel(p);
} }
}); });
peoplePanel.add(peopleButton); peoplePanel.add(peopleButton);
@@ -128,7 +123,7 @@ public class ControlPanel extends JPanel
runningPanel.setMaximumSize(new Dimension(195,50)); runningPanel.setMaximumSize(new Dimension(195,50));
add(runningPanel); add(runningPanel);
{ {
JLabel runningLabel = new JLabel("Simulation stopped"); runningLabel = new JLabel("Simulation stopped");
runningLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20)); runningLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20));
runningPanel.add(runningLabel); runningPanel.add(runningLabel);
} }
@@ -147,6 +142,7 @@ public class ControlPanel extends JPanel
public void setPeople(int people) public void setPeople(int people)
{ {
this.people = people;
peopleLabel.setText(people + " People");
} }
} }
-1
View File
@@ -2,7 +2,6 @@ package Applicatie;
public class Main public class Main
{ {
public static void main(String[] args) public static void main(String[] args)
{ {
new Window(); new Window();
+5 -14
View File
@@ -33,11 +33,13 @@ public class MenuBar extends JMenuBar
{ {
public void actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)
{ {
new Agenda.Window(); new Agenda.Window(w.getPanel());
} }
}); });
file.add(agenda); file.add(agenda);
file.addSeparator();
item = new JMenuItem("Open"); item = new JMenuItem("Open");
item.addActionListener(new ActionListener() { item.addActionListener(new ActionListener() {
@@ -60,22 +62,12 @@ public class MenuBar extends JMenuBar
file.addSeparator(); file.addSeparator();
item = new JMenuItem("Load agenda");
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
w.getPanel().agenda.loadAgenda();
}
});
file.add(item);
item = new JMenuItem("Agenda"); item = new JMenuItem("Agenda");
item.addActionListener(new ActionListener() item.addActionListener(new ActionListener()
{ {
public void actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)
{ {
new Agenda.Window(); new Agenda.Window(w.getPanel());
} }
}); });
file.add(item); file.add(item);
@@ -87,8 +79,7 @@ public class MenuBar extends JMenuBar
{ {
public void actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)
{ {
w.setVisible(false); System.exit(0);
w.dispose();
} }
}); });
+21 -16
View File
@@ -148,7 +148,7 @@ public class Panel extends JPanel implements ActionListener
addMouseWheelListener(new MouseWheel(this)); addMouseWheelListener(new MouseWheel(this));
addFocusListener(new WindowFocusListener(this)); addFocusListener(new WindowFocusListener(this));
t = new Timer(1000 / 100, this); t = new Timer(1000 / 50, this);
} }
public int getPanelInfoLength() public int getPanelInfoLength()
@@ -229,7 +229,16 @@ public class Panel extends JPanel implements ActionListener
return waypoints; return waypoints;
} }
public void addVisitors() public void addVisitors(ArrayList<DrawObject> 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<DrawObject> entrances = new ArrayList<>(); ArrayList<DrawObject> entrances = new ArrayList<>();
for(DrawObject object : objects) { for(DrawObject object : objects) {
@@ -238,21 +247,14 @@ public class Panel extends JPanel implements ActionListener
} }
} }
if(!entrances.isEmpty()) { if(!entrances.isEmpty()) {
DrawObject entrance = entrances.get((int) Math.floor(Math.random()*entrances.size())); for (int i = 0; i < count; i++)
Point point = new Point((int)entrance.getPosition().getX(),(int)entrance.getPosition().getY()); {
visitors.add(new Visitor("visitor",point, agenda, objects)); addVisitors(entrances);
}
} }
else { else
JOptionPane.showMessageDialog(this, "You don't have an entrance"); JOptionPane.showMessageDialog(this, "You don't have an entrance");
} cp.setPeople(visitors.size());
}
public void addVisitors(int count)
{
for (int i = 0; i < count; i++)
{
addVisitors();
}
} }
public void paintComponent(Graphics g) public void paintComponent(Graphics g)
@@ -387,6 +389,9 @@ public class Panel extends JPanel implements ActionListener
public void clearObjects() public void clearObjects()
{ {
objects.clear(); objects.clear();
visitors.clear();
waypoints.clear();
paths.clear();
} }
public Point getLastMousePosition() public Point getLastMousePosition()
@@ -637,7 +642,6 @@ public class Panel extends JPanel implements ActionListener
currentTime++; currentTime++;
date.setTimeInMillis(date.getTimeInMillis() + 1000); date.setTimeInMillis(date.getTimeInMillis() + 1000);
cp.setTime(formatter.format(date.getTime())); cp.setTime(formatter.format(date.getTime()));
System.out.println(currentTime);
} }
for (Visitor v : visitors) for (Visitor v : visitors)
@@ -669,6 +673,7 @@ public class Panel extends JPanel implements ActionListener
this.height = height; this.height = height;
paths.clear(); paths.clear();
objects.clear(); objects.clear();
visitors.clear();
cameraScale = 1; cameraScale = 1;
switch (terrainIndex) switch (terrainIndex)
{ {
-2
View File
@@ -1,9 +1,7 @@
package Applicatie; package Applicatie;
import java.awt.BorderLayout;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.Font; import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
+41 -7
View File
@@ -11,6 +11,8 @@ import java.awt.event.ActionListener;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.awt.event.KeyListener; import java.awt.event.KeyListener;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.Box; import javax.swing.Box;
@@ -20,8 +22,11 @@ import javax.swing.JLabel;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JTextField; import javax.swing.JTextField;
import Agenda.AgendaStage;
import Agenda.Event;
import Objects.DrawObject; import Objects.DrawObject;
import Objects.Path; import Objects.Path;
import Objects.Stage;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class PropertiesPanel extends JPanel public class PropertiesPanel extends JPanel
@@ -36,6 +41,7 @@ public class PropertiesPanel extends JPanel
JLabel nameLabel; JLabel nameLabel;
JPanel areaPanel; JPanel areaPanel;
JPanel agendaPanel;
Component rigidArea; Component rigidArea;
JTextField locationXField; JTextField locationXField;
@@ -500,12 +506,9 @@ public class PropertiesPanel extends JPanel
add(Box.createRigidArea(spacerDimension)); add(Box.createRigidArea(spacerDimension));
// AGENDA // AGENDA
JPanel agendaPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); agendaPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JLabel agendaLabel = new JLabel("Agenda"); agendaPanel.setVisible(false);
agendaLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20));
agendaPanel.setPreferredSize(new Dimension(200, 100));
agendaPanel.setMaximumSize(new Dimension(200, 100));
agendaPanel.add(agendaLabel);
add(agendaPanel); add(agendaPanel);
enableComponents(this, false); enableComponents(this, false);
@@ -566,12 +569,19 @@ public class PropertiesPanel extends JPanel
nameLabel.setText("No Selection"); nameLabel.setText("No Selection");
areaPanel.setVisible(false); areaPanel.setVisible(false);
rigidArea.setVisible(false); rigidArea.setVisible(false);
agendaPanel.setVisible(false);
agendaPanel.removeAll();
agendaPanel.validate();
} }
private void fillFields() private void fillFields()
{ {
nameLabel.setText(selectedObject.getName()); nameLabel.setText(selectedObject.getName());
agendaPanel.removeAll();
agendaPanel.validate();
agendaPanel.setVisible(false);
locationXField.setText(Math.round(selectedObject.getPosition().getX()) + ""); locationXField.setText(Math.round(selectedObject.getPosition().getX()) + "");
locationYField.setText(Math.round(selectedObject.getPosition().getY()) + ""); locationYField.setText(Math.round(selectedObject.getPosition().getY()) + "");
@@ -582,7 +592,31 @@ public class PropertiesPanel extends JPanel
areaBottomField.setText(selectedObject.getAreaBottom() + ""); areaBottomField.setText(selectedObject.getAreaBottom() + "");
areaLeftField.setText(selectedObject.getAreaLeft() + ""); areaLeftField.setText(selectedObject.getAreaLeft() + "");
areaRightField.setText(selectedObject.getAreaRight() + ""); areaRightField.setText(selectedObject.getAreaRight() + "");
if(selectedObject instanceof Stage)
{
agendaPanel.setVisible(true);
JLabel agendaLabel = new JLabel("Agenda");
agendaLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20));
agendaPanel.add(agendaLabel);
AgendaStage st = ((Stage) selectedObject).getStage();
nameLabel.setText("Stage: " + st.getName());
ArrayList<Event> events = p.getAgenda().eventsForStage(st);
agendaPanel.setPreferredSize(new Dimension(200, ((30*events.size())+50) ));
agendaPanel.setMaximumSize(new Dimension(200, ((30*events.size())+50) ));
for(Event e : events)
{
JPanel eventPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JLabel eventLabel = new JLabel(e.getEventName() + " - " + e.getArtist().getName());
eventLabel.setFont(new Font("Segoe UI", Font.PLAIN, 15));
eventPanel.setPreferredSize(new Dimension(200, 30));
eventPanel.setMaximumSize(new Dimension(200, 30));
eventPanel.add(eventLabel);
agendaPanel.add(eventPanel);
}
}
} }
public void setPanel(Panel p) public void setPanel(Panel p)
+111 -54
View File
@@ -1,4 +1,5 @@
package Applicatie; package Applicatie;
import java.io.EOFException; import java.io.EOFException;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@@ -7,48 +8,62 @@ import java.io.IOException;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import java.io.ObjectOutputStream; import java.io.ObjectOutputStream;
import javax.imageio.ImageIO;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileFilter;
import Agenda.Agenda;
import Objects.DrawObject; import Objects.DrawObject;
import Objects.Path;
public class SaveLoad { public class SaveLoad
{
public static void save(Panel panel) public static void save(Panel panel)
{ {
JFileChooser fileChooser = new JFileChooser(); JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.isFile() && pathname.getName().endsWith(".agn"))
{
return true;
}else if(pathname.isDirectory()){return true;}else{return false;}
}
@Override fileChooser.setFileFilter(new FileFilter()
public String getDescription() { {
return ".agn"; @Override
public boolean accept(File pathname)
{
if (pathname.isFile() && pathname.getName().endsWith(".agn"))
{
return true;
} }
else if (pathname.isDirectory())
{
return true;
}
else
{
return false;
}
}
@Override
public String getDescription()
{
return ".agn";
}
}); });
fileChooser.setDialogTitle("Choose save location"); fileChooser.setDialogTitle("Choose save location");
int userSelection = fileChooser.showSaveDialog(null); int userSelection = fileChooser.showSaveDialog(null);
if(userSelection == JFileChooser.APPROVE_OPTION) if (userSelection == JFileChooser.APPROVE_OPTION)
{ {
File file = fileChooser.getSelectedFile(); File file = fileChooser.getSelectedFile();
if(!file.getName().endsWith(".agn")) if (!file.getName().endsWith(".agn"))
{ {
file = new File(file.getAbsolutePath() + ".agn"); file = new File(file.getAbsolutePath() + ".agn");
} }
if(file.exists()) if (file.exists())
{ {
if(JOptionPane.showConfirmDialog(null, "Are you sure you want to overwrite: " + file.getName(), "Overwrite", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION) if (JOptionPane.showConfirmDialog(null, "Are you sure you want to overwrite: " + file.getName(), "Overwrite", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION)
{ {
saveTerrain(file, panel); saveTerrain(file, panel);
} }
@@ -59,49 +74,70 @@ public class SaveLoad {
} }
} }
} }
public static void saveTerrain(File file, Panel panel) {
try { public static void saveTerrain(File file, Panel panel)
{
try
{
FileOutputStream fos = new FileOutputStream(file); FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos); ObjectOutputStream oos = new ObjectOutputStream(fos);
for (DrawObject object : panel.objects) { oos.writeObject(panel.getAgenda());
for (DrawObject object : panel.objects)
{
object.setSelected(false);
oos.writeObject(object); oos.writeObject(object);
} }
for(Path p : panel.paths)
{
oos.writeObject(p);
}
oos.close(); oos.close();
JOptionPane.showMessageDialog(null, "Saved succesfully"); JOptionPane.showMessageDialog(null, "Saved succesfully");
} catch (IOException e) { }
catch (IOException e)
{
e.printStackTrace(); e.printStackTrace();
} }
} }
public static void load(Panel panel) public static void load(Panel panel)
{ {
JFileChooser fileChooser = new JFileChooser(); JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileFilter() { fileChooser.setFileFilter(new FileFilter()
{
@Override @Override
public boolean accept(File pathname) { public boolean accept(File pathname)
if(pathname.isFile() && pathname.getName().endsWith(".agn")) {
if (pathname.isFile() && pathname.getName().endsWith(".agn"))
{ {
return true; return true;
}else if(pathname.isDirectory()){return true;}else{return false;} }
else if (pathname.isDirectory())
{
return true;
}
else
{
return false;
}
} }
@Override @Override
public String getDescription() { public String getDescription()
{
return ".agn"; return ".agn";
} }
}); });
fileChooser.setDialogTitle("Choose file"); fileChooser.setDialogTitle("Choose file");
int userSelection = fileChooser.showOpenDialog(null); int userSelection = fileChooser.showOpenDialog(null);
if(userSelection == JFileChooser.APPROVE_OPTION) if (userSelection == JFileChooser.APPROVE_OPTION)
{ {
File file = fileChooser.getSelectedFile(); File file = fileChooser.getSelectedFile();
if(!file.exists()) if (!file.exists())
{ {
JOptionPane.showMessageDialog(null, "This file does not exist: " + file.getName()); JOptionPane.showMessageDialog(null, "This file does not exist: " + file.getName());
} }
@@ -112,33 +148,54 @@ public class SaveLoad {
} }
} }
} }
public static void fillTerrain(File file, Panel panel)
public static void fillTerrain(File file, Panel panel) { {
FileInputStream fis = null; FileInputStream fis = null;
ObjectInputStream ois = null; ObjectInputStream ois = null;
try { try
{
fis = new FileInputStream(file); fis = new FileInputStream(file);
ois = new ObjectInputStream(fis); ois = new ObjectInputStream(fis);
Object object; Object object;
object = ois.readObject(); Agenda a = (Agenda) ois.readObject();
try { panel.setAgenda(a);
try
{
object = ois.readObject();
panel.clearObjects(); panel.clearObjects();
while (object != null) { while (object != null)
panel.objects.add((DrawObject) object); {
if (object instanceof Waypoint)
{
panel.addWaypoint((Waypoint) object);
panel.objects.add((DrawObject) object);
}
if (object instanceof Path)
{
Path p = (Path) object;
p.updateImage();
panel.paths.add((Path) object);
}
else
{
panel.objects.add((DrawObject) object);
}
object = ois.readObject(); object = ois.readObject();
} }
} catch (EOFException e) {
} }
} catch (Exception e) { catch (EOFException e)
{
}
}
catch (Exception e)
{
e.printStackTrace(); e.printStackTrace();
} }
panel.update(); panel.update();
} }
}
}
+120 -54
View File
@@ -5,8 +5,10 @@ import java.awt.Image;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.Shape; import java.awt.Shape;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
import java.awt.geom.Area;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -15,6 +17,7 @@ import Agenda.Event;
import Objects.DrawObject; import Objects.DrawObject;
import Objects.Entrance; import Objects.Entrance;
import Objects.Path; import Objects.Path;
import Objects.Stage;
public class Visitor public class Visitor
{ {
@@ -27,23 +30,28 @@ public class Visitor
ArrayList<Action> actions; ArrayList<Action> actions;
Agenda agenda; Agenda agenda;
ArrayList<DrawObject> objects; ArrayList<DrawObject> objects;
ArrayList<Waypoint> waypoints;
GregorianCalendar date;
int target; int target;
int finalTarget; int finalTarget;
public Visitor(String filename, Point2D position, Agenda agenda, ArrayList<DrawObject> objects) public Visitor(String filename, Point2D position, Agenda agenda, ArrayList<DrawObject> objects, ArrayList<Waypoint> waypoints, GregorianCalendar date)
{ {
this.position = position; this.position = position;
this.filename = filename; this.filename = filename;
this.rotation = 0; this.rotation = 0;
this.speed = 1 + Math.random() * 4; this.speed = 1 + Math.random() * 4;
this.waypoints = waypoints;
this.date = date;
scale = 1; scale = 1;
actions = new ArrayList<Action>(); actions = new ArrayList<Action>();
this.agenda = agenda; this.agenda = agenda;
this.objects = objects; this.objects = objects;
fillActions(); fillActions();
System.out.println(actions.size());
target = 1; target = 1;
finalTarget = 4; finalTarget = 0;
} }
public void draw(Graphics2D g2) public void draw(Graphics2D g2)
@@ -82,18 +90,19 @@ public class Visitor
{ {
if (currentTime >= a.getStartTime() && currentTime < a.getStoptime()) if (currentTime >= a.getStartTime() && currentTime < a.getStoptime())
{ {
target = a.getTargetObject(); this.finalTarget = a.getWaypoint().getSelf();
} }
} }
// moveToTarget(target, objects, visitors, paths); // moveToTarget(target, objects, visitors, paths);
move(target, panel); move(target, panel);
} }
public void move(DrawObject tar, Panel panel) public void move(DrawObject tar, Panel panel)
{ {
Point2D targetPoint = panel.getWaypoint(target).getPosition(); System.out.println("CurrentTarget: " + target);
System.out.println("FinalTarget: " + finalTarget);
Point2D targetPoint = panel.getWaypoint(target).getAccuratePoint();
double newRot = Math.atan2(targetPoint.getY() - position.getY(), targetPoint.getX() - position.getX()); double newRot = Math.atan2(targetPoint.getY() - position.getY(), targetPoint.getX() - position.getX());
@@ -109,7 +118,6 @@ public class Visitor
{ {
rotation += 0.15; rotation += 0.15;
} }
Point2D oldPosition = position; Point2D oldPosition = position;
// face direction // face direction
@@ -128,7 +136,8 @@ public class Visitor
{ {
continue; continue;
} }
if (hitTest(object))
if (hasCollisionDO(object))
{ {
possible = false; possible = false;
} }
@@ -145,15 +154,11 @@ public class Visitor
{ {
options.put(w.getSelf(), w.getOptions()); options.put(w.getSelf(), w.getOptions());
} }
for (Map.Entry<Integer, int[]> e : options.entrySet()) for (Map.Entry<Integer, int[]> e : options.entrySet())
{ {
for (int i : e.getValue()) for (int i : e.getValue())
{ {
System.out.println("KEY:" + e.getKey());
System.out.println("VAL:" + i);
System.out.println("TAR: " + target);
System.out.println("____________");
if (finalTarget != target) if (finalTarget != target)
{ {
if (finalTarget == i && e.getKey() == target) if (finalTarget == i && e.getKey() == target)
@@ -170,7 +175,6 @@ public class Visitor
} }
} }
} }
} }
public boolean checkIfOnWaypoint(Panel panel) public boolean checkIfOnWaypoint(Panel panel)
@@ -231,14 +235,15 @@ public class Visitor
boolean possible = true; boolean possible = true;
for (DrawObject object : objects) for (DrawObject object : objects)
{ {
if (hitTest(object)) if (hasCollisionDO(object))
{ {
possible = false; possible = false;
} }
} }
for (Visitor object : visitors) for (Visitor object : visitors)
{ {
if (hitTestVisitor(object) && object != this)
if (hasCollision(object) && object != this)
{ {
possible = false; possible = false;
} }
@@ -334,14 +339,14 @@ public class Visitor
boolean possible = true; boolean possible = true;
for (DrawObject object : objects) for (DrawObject object : objects)
{ {
if (hitTest(object)) if (hasCollisionDO(object))
{ {
possible = false; possible = false;
} }
} }
for (Visitor object : visitors) for (Visitor object : visitors)
{ {
if (hitTestVisitor(object) && object != this) if (hasCollision(object) && object != this)
{ {
possible = false; possible = false;
} }
@@ -354,6 +359,7 @@ public class Visitor
} }
} }
@SuppressWarnings("static-access")
public void fillActions() public void fillActions()
{ {
int startTime = 540; int startTime = 540;
@@ -362,65 +368,91 @@ public class Visitor
while (startTime < stopTime) while (startTime < stopTime)
{ {
int random = (int) Math.floor(Math.random() * 51); int random = (int) Math.floor(Math.random() * 51);
if (random < 30) if (random < 40)
{ {
Point2D position = null; Point2D position = null;
DrawObject targetStage = null; DrawObject targetStage = null;
ArrayList<Event> posEvents = new ArrayList<Event>();
for (Event e : agenda.getEvents()) for (Event e : agenda.getEvents())
{ {
if (convertMinutesToHours(startTime) > e.getStart() && convertMinutesToHours(startTime) < e.getStop()) if (startTime >= e.getStart() && startTime < e.getStop())
{ {
for (DrawObject d : objects) posEvents.add(e);
}
}
if (posEvents.size() != 0)
{
int r = (int) Math.floor(Math.random() * posEvents.size());
Event evs = posEvents.get(r);
for (DrawObject d : objects)
{
if (d.getFileName().equals("stage"))
{ {
if (d.getFileName().equals(e.getStage().getName())) Stage s = (Stage) d;
if (s.getStage().getName().equals(evs.getStage().getName()))
{ {
position = d.getPosition(); position = s.getPosition();
targetStage = d; targetStage = d;
} }
} }
} }
} }
int randomtime = (int) (40 + (Math.random() * (60 - 40))); int randomtime = (int) (40 + (Math.random() * (60 - 40)));
if (position != null) if (position != null)
{ {
actions.add(new Action(position, startTime, randomtime, targetStage)); Waypoint w = getClosestWaypoint(position);
actions.add(new Action(position, startTime, randomtime, targetStage, w));
} }
startTime = startTime + randomtime; startTime = startTime + randomtime;
} }
else if (random >= 30 && random < 35) else if (random >= 40 && random < 45)
{ {
Point2D position = null; Point2D position = null;
DrawObject targetDraw = null; DrawObject targetStage = null;
ArrayList<DrawObject> foodPlaces = new ArrayList<DrawObject>();
for (DrawObject d : objects) for (DrawObject d : objects)
{ {
if (d.getFileName().equals("entrance")) if (d.getFileName().equals("food"))
{ {
position = d.getPosition(); foodPlaces.add(d);
} }
} }
if (position != null)
if (foodPlaces.size() != 0)
{ {
actions.add(new Action(position, startTime, 35, targetDraw)); int r = (int) Math.floor(Math.random() * foodPlaces.size());
startTime = startTime + 35; position = foodPlaces.get(r).getPosition();
targetStage = foodPlaces.get(r);
Waypoint w = getClosestWaypoint(position);
actions.add(new Action(position, startTime, 35, targetStage, w));
startTime = startTime + 20;
} }
startTime = startTime + 35; startTime = startTime + 35;
} }
else if (random > 35) else if (random > 45)
{ {
Point2D position = null; Point2D position = null;
DrawObject targetDrawobj = null; DrawObject targetStage = null;
ArrayList<DrawObject> toilets = new ArrayList<DrawObject>();
for (DrawObject d : objects) for (DrawObject d : objects)
{ {
if (d.getFileName().equals("wc")) if (d.getFileName().equals("wc"))
{ {
position = d.getPosition(); toilets.add(d);
} }
} }
if (position != null) if (toilets.size() != 0)
{ {
actions.add(new Action(position, startTime, 35, targetDrawobj)); int r = (int) Math.floor(Math.random() * toilets.size());
position = toilets.get(r).getPosition();
targetStage = toilets.get(r);
Waypoint w = getClosestWaypoint(position);
actions.add(new Action(position, startTime, 35, targetStage, w));
startTime = startTime + 20;
} }
startTime = startTime + 35; startTime = startTime + 35;
@@ -428,35 +460,69 @@ public class Visitor
} }
} }
public int convertMinutesToHours(int startTime) public Waypoint getClosestWaypoint(Point2D point)
{ {
int time = 0; Waypoint waypoint = null;
int hours = startTime / 60; int distance = 10000;
int minutes = startTime % 60; for (Waypoint w : waypoints)
time = (hours * 100) + minutes; {
return time; if (w.getPosition().distance(point) < distance)
{
waypoint = w;
distance = (int) w.getPosition().distance(point);
}
}
return waypoint;
} }
public int getEndX() public boolean hasCollisionDO(DrawObject object)
{ {
Image image = Images.getImage(filename); Image image = Images.getImage(filename);
return (int) (position.getX() + image.getWidth(null)); Image image2 = Images.getImage(object.getFileName());
Rectangle recta = new Rectangle((int) position.getX(), (int) position.getY(), image.getWidth(null), image.getHeight(null));
Rectangle rectb = new Rectangle((int) object.getPosition().getX(), (int) object.getPosition().getY(), image2.getWidth(null), image2.getHeight(null));
Area a = new Area(recta);
Area b = new Area(rectb);
AffineTransform transA = new AffineTransform();
transA.rotate(rotation, position.getX(), position.getY());
AffineTransform transB = new AffineTransform();
transB.rotate(Math.toRadians(object.getRotation()), object.getPosition().getX(), object.getPosition().getY());
Area aa = a.createTransformedArea(transA);
Area bb = b.createTransformedArea(transB);
if (bb.intersects(aa.getBounds2D()))
{
return true;
}
return false;
} }
public int getEndY() public boolean hasCollision(Visitor v)
{ {
Image image = Images.getImage(filename); Image image = Images.getImage(filename);
return (int) (position.getY() + image.getHeight(null)); Rectangle a = new Rectangle((int) position.getX(), (int) position.getY(), image.getWidth(null), image.getHeight(null));
} Rectangle b = new Rectangle((int) v.position.getX(), (int) v.position.getY(), image.getWidth(null), image.getHeight(null));
public boolean hitTest(DrawObject to2) Area aa = new Area(a);
{ Area bb = new Area(b);
return (getEndX() >= to2.getPosition().getX() && getEndY() >= to2.getPosition().getY() && to2.getEndX() >= position.getX() && to2.getEndY() >= position.getY());
} AffineTransform af = new AffineTransform();
af.rotate(rotation, position.getX(), position.getY());
public boolean hitTestVisitor(Visitor v) AffineTransform bf = new AffineTransform();
{ bf.rotate(v.rotation, v.position.getX(), v.position.getY());
return (getEndX() >= v.position.getX() && getEndY() >= v.position.getY() && v.getEndX() >= position.getX() && v.getEndY() >= position.getY());
Area ra = aa.createTransformedArea(af);
Area rb = bb.createTransformedArea(bf);
if (ra.intersects(rb.getBounds2D()))
{
return true;
}
return false;
} }
} }
+5 -1
View File
@@ -13,6 +13,11 @@ public class Waypoint extends DrawObject
super("waypoint", position); super("waypoint", position);
} }
public Point2D getAccuratePoint()
{
return new Point2D.Double(super.getPosition().getX() + (super.getImageRectangle().getWidth()/2), super.getPosition().getY() + super.getImageRectangle().getHeight());
}
@Override @Override
public String getName() public String getName()
{ {
@@ -36,7 +41,6 @@ public class Waypoint extends DrawObject
public void setSelf(int self) public void setSelf(int self)
{ {
System.out.println(self);
this.self = self; this.self = self;
} }
+16 -4
View File
@@ -3,7 +3,6 @@ import java.awt.BorderLayout;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.Font; import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@@ -61,7 +60,7 @@ public class WaypointPopup extends JFrame {
panel1.add(name); panel1.add(name);
row1.add(panel1); row1.add(panel1);
JTextField tf = new JTextField(10); JTextField tf = new JTextField(wp.getSelf() + "", 10);
row2.add(tf); row2.add(tf);
JPanel panel2 = new JPanel(); JPanel panel2 = new JPanel();
@@ -74,7 +73,21 @@ public class WaypointPopup extends JFrame {
empty2.add(Box.createRigidArea(new Dimension(0, 5))); empty2.add(Box.createRigidArea(new Dimension(0, 5)));
row2.add(empty2); row2.add(empty2);
JTextField tx = new JTextField(8); String optionss = "";
if(wp.getOptions() != null)
{
if(wp.getOptions().length != 0)
{
int[] optionsa = wp.getOptions();
optionss += optionsa[0];
for(int i = 1; i < optionsa.length; i++)
{
optionss += "-" + optionsa[i];
}
}
}
JTextField tx = new JTextField("" + optionss, 8);
row2.add(tx); row2.add(tx);
JPanel help = new JPanel(); JPanel help = new JPanel();
@@ -98,7 +111,6 @@ public class WaypointPopup extends JFrame {
for(int i = 0; i < options.length; i++) for(int i = 0; i < options.length; i++)
{ {
ioptions[i] = Integer.valueOf(options[i]); ioptions[i] = Integer.valueOf(options[i]);
System.out.println(ioptions[i]);
} }
wp.setOptions(ioptions); wp.setOptions(ioptions);
+10 -5
View File
@@ -4,7 +4,6 @@ import java.awt.Color;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
@@ -16,7 +15,6 @@ import Applicatie.Waypoint;
import Applicatie.WaypointPopup; import Applicatie.WaypointPopup;
import Objects.DrawObject; import Objects.DrawObject;
import Objects.Path; import Objects.Path;
import Objects.Entrance;
public class Mouse extends MouseAdapter public class Mouse extends MouseAdapter
{ {
@@ -130,7 +128,7 @@ public class Mouse extends MouseAdapter
{ {
if (SwingUtilities.isRightMouseButton(e)) if (SwingUtilities.isRightMouseButton(e))
{ {
new PathPopup(clickedPath, panel); //new PathPopup(clickedPath, panel);
} }
} }
else else
@@ -169,8 +167,15 @@ public class Mouse extends MouseAdapter
} }
else else
{ {
panel.getDragObject().setPosition(panel.getSelectionPosition()); if (panel.getDragObject() instanceof Waypoint == false)
panel.getDragObject().setRectangleColor(Color.BLACK); {
panel.getDragObject().setPosition(panel.getSelectionPosition());
panel.getDragObject().setRectangleColor(Color.BLACK);
}
else
{
panel.getDragObject().setRectangleColor(Color.BLACK);
}
} }
panel.setSelectionPosition(panel.getSelectedObject().getPosition()); panel.setSelectionPosition(panel.getSelectedObject().getPosition());
} }
+19 -1
View File
@@ -15,6 +15,7 @@ import java.io.Serializable;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import Applicatie.Images; import Applicatie.Images;
import Applicatie.Panel;
public abstract class DrawObject implements Serializable public abstract class DrawObject implements Serializable
{ {
@@ -232,13 +233,30 @@ public abstract class DrawObject implements Serializable
public void setPosition(Point2D position) public void setPosition(Point2D position)
{ {
if(position.getX() < -Panel.getFieldWidth()/2)
{
position.setLocation(-Panel.getFieldWidth()/2, position.getY());
}
if(position.getY() < -Panel.getFieldHeight()/2)
{
position.setLocation(position.getX(), -Panel.getFieldHeight()/2);
}
if(position.getX() > Panel.getFieldWidth()/2 - width)
{
position.setLocation(Panel.getFieldWidth()/2-width, position.getY());
}
if(position.getY() > Panel.getFieldHeight()/2 - height)
{
position.setLocation(position.getX(), Panel.getFieldHeight()/2-height);
}
this.position = position; this.position = position;
} }
public void setPosition(Point2D position, boolean b) public void setPosition(Point2D position, boolean b)
{ {
this.position = position; setPosition(position);
} }
public double getRotation() public double getRotation()
{ {
return rotation; return rotation;
+17 -2
View File
@@ -10,6 +10,7 @@ import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
@@ -23,13 +24,15 @@ import Applicatie.Waypoint;
* @author Wesley de Hek * @author Wesley de Hek
* @version 1.2 * @version 1.2
*/ */
public class Path public class Path implements Serializable
{ {
private static final long serialVersionUID = 5345485798486018597L;
private ArrayList<Point2D> points; private ArrayList<Point2D> points;
private ArrayList<Shape> lines; private ArrayList<Shape> lines;
private Point2D tempPoint; private Point2D tempPoint;
private BufferedImage pathBackground; public transient BufferedImage pathBackground = null;;
private ArrayList<Waypoint> waypoints; private ArrayList<Waypoint> waypoints;
/** /**
@@ -49,6 +52,18 @@ public class Path
e.printStackTrace(); e.printStackTrace();
} }
} }
public void updateImage()
{
try
{
pathBackground = ImageIO.read(new File("images/newPath.png"));
}
catch (IOException e)
{
e.printStackTrace();
}
}
/** /**
* Draws the path. * Draws the path.
-2
View File
@@ -1,2 +0,0 @@
# FestivalPlanner
Festival Planner
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB