From 9d853babdc7f3854cb54c3d9930bad5ae7c62c47 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Wed, 8 Apr 2015 16:38:55 +0200 Subject: [PATCH] Combined Agenda --- Agenda/AddEventPanel.java | 4 +- Agenda/AddStagePanel.java | 4 +- Agenda/Agenda.java | 16 +++-- Agenda/EditEventPanel.java | 4 +- Agenda/EditStagePanel.java | 8 +-- Agenda/Event.java | 10 +-- Agenda/MenuBar.java | 4 +- Agenda/PanelArtSta.java | 2 +- Agenda/Stage.java | 41 +++++++++++++ Agenda/Window.java | 12 +++- Applicatie/ControlPanel.java | 2 +- Applicatie/MenuBar.java | 22 +------ Applicatie/Panel.java | 111 ++++++++-------------------------- Applicatie/SaveLoad.java | 6 +- Applicatie/Visitor.java | 109 +++++++-------------------------- Applicatie/WaypointPopup.java | 73 +++------------------- Listeners/Mouse.java | 47 ++++---------- Objects/DrawObject.java | 19 +++++- Objects/Path.java | 26 +++----- Objects/Stage.java | 17 +----- 20 files changed, 180 insertions(+), 357 deletions(-) create mode 100644 Agenda/Stage.java diff --git a/Agenda/AddEventPanel.java b/Agenda/AddEventPanel.java index 527b862..eb767e6 100644 --- a/Agenda/AddEventPanel.java +++ b/Agenda/AddEventPanel.java @@ -205,9 +205,9 @@ public class AddEventPanel extends JFrame{ String stageName = (String)stage2.getSelectedItem(); - AgendaStage stage = null; + Stage stage = null; - for(AgendaStage s : agenda.getStages()) + for(Stage s : agenda.getStages()) { if (s.getName().equals(stageName)) { diff --git a/Agenda/AddStagePanel.java b/Agenda/AddStagePanel.java index 14cb2cc..d18177e 100644 --- a/Agenda/AddStagePanel.java +++ b/Agenda/AddStagePanel.java @@ -58,7 +58,7 @@ public class AddStagePanel extends JFrame{ String description = descriptionTF.getText(); boolean alreadyExists = false; - for (AgendaStage stage : agenda.getStages()) + for (Stage stage : agenda.getStages()) { if (stage.getName().equals(name)) { @@ -70,7 +70,7 @@ public class AddStagePanel extends JFrame{ } else if ( alreadyExists == false ) { - AgendaStage s = new AgendaStage(name,description); + Stage s = new Stage(name,description); agenda.addStage(s); JOptionPane.showMessageDialog(null, "Stage added!"); setVisible(false); diff --git a/Agenda/Agenda.java b/Agenda/Agenda.java index 71576f7..3d7a9a8 100644 --- a/Agenda/Agenda.java +++ b/Agenda/Agenda.java @@ -17,17 +17,17 @@ public class Agenda implements Serializable { private static final long serialVersionUID = 1; - private ArrayList stages; + private ArrayList stages; private ArrayList events; private ArrayList artists; public Agenda() { - stages = new ArrayList(); + stages = new ArrayList(); events = new ArrayList(); artists = new ArrayList(); } - public void addStage(AgendaStage stage){ + public void addStage(Stage stage){ stages.add(stage); } @@ -47,11 +47,12 @@ public class Agenda implements Serializable { { return artists; } - public ArrayList getStages() + public ArrayList getStages() { return stages; } + /* public void saveAgenda() { JFileChooser fileChooser = new JFileChooser(); @@ -179,7 +180,7 @@ public class Agenda implements Serializable { { boolean exists = false; String name = e.getStage().getName(); - for (AgendaStage s : stages) + for (Stage s : stages) { if ( s.getName().equals(name) ) { exists = true; @@ -202,7 +203,8 @@ public class Agenda implements Serializable { } catch (IOException e) { e.printStackTrace(); } - } + } + */ public void clearAgenda() { @@ -211,10 +213,12 @@ public class Agenda implements Serializable { artists.clear(); } + /* public void fillAllLists() { loadAgenda(); fillStages(); fillArtists(); } + */ } diff --git a/Agenda/EditEventPanel.java b/Agenda/EditEventPanel.java index 9d8c51b..4133503 100644 --- a/Agenda/EditEventPanel.java +++ b/Agenda/EditEventPanel.java @@ -221,9 +221,9 @@ public class EditEventPanel extends JFrame{ String stageName = (String)stage2.getSelectedItem(); - AgendaStage stage = null; + Stage stage = null; - for(AgendaStage s : agenda.getStages()) + for(Stage s : agenda.getStages()) { if (s.getName().equals(stageName)) { diff --git a/Agenda/EditStagePanel.java b/Agenda/EditStagePanel.java index fd5ae50..cf62338 100644 --- a/Agenda/EditStagePanel.java +++ b/Agenda/EditStagePanel.java @@ -18,7 +18,7 @@ public class EditStagePanel extends JFrame{ private static final long serialVersionUID = 1; - public EditStagePanel(Agenda agenda, AgendaStage sta) + public EditStagePanel(Agenda agenda, Stage sta) { super("Stage editscreen!"); setDefaultCloseOperation(HIDE_ON_CLOSE); @@ -59,7 +59,7 @@ public class EditStagePanel extends JFrame{ String description = descriptionTF.getText(); boolean alreadyExists = false; - for (AgendaStage stage : agenda.getStages()) + for (Stage stage : agenda.getStages()) { if (stage.getName().equals(name) && !stage.equals(sta)) { @@ -101,10 +101,10 @@ public class EditStagePanel extends JFrame{ if(JOptionPane.showConfirmDialog(null, "Are you sure you want to remove this stage?", "Remove Stage", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION) { - Iterator it = agenda.getStages().iterator(); + Iterator it = agenda.getStages().iterator(); while(it.hasNext()) { - AgendaStage s = it.next(); + Stage s = it.next(); if(s.equals(sta)) { it.remove(); diff --git a/Agenda/Event.java b/Agenda/Event.java index c873c43..cc89824 100644 --- a/Agenda/Event.java +++ b/Agenda/Event.java @@ -19,13 +19,13 @@ public class Event implements Serializable { private int stopHour; private int stopMinute; private Artist artist; - private AgendaStage stage; + private Stage stage; private String description; private int expectedPopularity; public Event(String eventName, int startYear, int startMonth, int startDay, int startHour, int startMinute, int endYear, int endMonth, - int endDay, int endHour, int endMinute, Artist artist, AgendaStage stage, + int endDay, int endHour, int endMinute, Artist artist, Stage stage, String description, int expectedPopularity) { this.eventName = eventName; this.startDate = new GregorianCalendar(startYear, startMonth - 1, @@ -43,7 +43,7 @@ public class Event implements Serializable { } public Event(String eventName, GregorianCalendar startDate, - GregorianCalendar endDate, Artist artist, AgendaStage stage, + GregorianCalendar endDate, Artist artist, Stage stage, String description, int expectedPopularity) { this.eventName = eventName; this.startDate = startDate; @@ -86,7 +86,7 @@ public class Event implements Serializable { return this.description; } - public AgendaStage getStage() { + public Stage getStage() { return this.stage; } @@ -132,7 +132,7 @@ public class Event implements Serializable { this.expectedPopularity = popularity; } - public void setStage(AgendaStage stage) { + public void setStage(Stage stage) { this.stage = stage; } diff --git a/Agenda/MenuBar.java b/Agenda/MenuBar.java index 84f451f..347abf2 100644 --- a/Agenda/MenuBar.java +++ b/Agenda/MenuBar.java @@ -63,7 +63,7 @@ public class MenuBar extends JMenuBar { open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK)); open.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - w.getAgenda().loadAgenda(); + Applicatie.SaveLoad.load(w.getPanel()); Window.updatePanel(); } }); @@ -72,7 +72,7 @@ public class MenuBar extends JMenuBar { save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)); save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - w.getAgenda().saveAgenda(); + Applicatie.SaveLoad.save(w.getPanel()); Window.updatePanel(); } }); diff --git a/Agenda/PanelArtSta.java b/Agenda/PanelArtSta.java index b695bd0..fa54cb1 100644 --- a/Agenda/PanelArtSta.java +++ b/Agenda/PanelArtSta.java @@ -105,7 +105,7 @@ public class PanelArtSta extends JPanel implements Panel{ else { dataStage = new Object[1]; - dataStage[0] = new AgendaStage("Geen Stages", "Geen Stages"); + dataStage[0] = new Stage("Geen Stages", "Geen Stages"); stages.setEnabled(false); } } diff --git a/Agenda/Stage.java b/Agenda/Stage.java new file mode 100644 index 0000000..301a11b --- /dev/null +++ b/Agenda/Stage.java @@ -0,0 +1,41 @@ +package Agenda; +import java.io.Serializable; + +public class Stage implements Serializable { + + private static final long serialVersionUID = 1; + + private String name; + private String description; + + public Stage(String name, String description) + { + this.name = name; + this.description = description; + } + + public String getName() + { + return this.name; + } + + public String getDescription() + { + return this.description; + } + + public void setDescription(String description) + { + this.description = description; + } + + public void setName(String name) + { + this.name = name; + } + + public String toString() + { + return name; + } +} diff --git a/Agenda/Window.java b/Agenda/Window.java index fef9a21..9bb7959 100644 --- a/Agenda/Window.java +++ b/Agenda/Window.java @@ -36,14 +36,16 @@ public class Window extends JFrame { private static GregorianCalendar date; private static Agenda agenda; private static String currentPanel = "table"; + private Applicatie.Panel ap; - public Window() + public Window(Applicatie.Panel ap) { /* * Initialize window */ super("Agenda"); - agenda = new Agenda(); + this.ap = ap; + agenda = ap.getAgenda(); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { @@ -231,6 +233,12 @@ public class Window extends JFrame { public void setAgenda(Agenda a) { agenda = a; + ap.setAgenda(a); + } + + public Applicatie.Panel getPanel() + { + return ap; } diff --git a/Applicatie/ControlPanel.java b/Applicatie/ControlPanel.java index d78de55..b371fb7 100644 --- a/Applicatie/ControlPanel.java +++ b/Applicatie/ControlPanel.java @@ -115,7 +115,7 @@ public class ControlPanel extends JPanel peopleButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { - p.addVisitors(); + p.addVisitors(1); } }); peoplePanel.add(peopleButton); diff --git a/Applicatie/MenuBar.java b/Applicatie/MenuBar.java index 3147952..debad55 100644 --- a/Applicatie/MenuBar.java +++ b/Applicatie/MenuBar.java @@ -28,16 +28,6 @@ public class MenuBar extends JMenuBar }); file.add(item); - JMenuItem agenda = new JMenuItem("Open Agenda"); - agenda.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - new Agenda.Window(); - } - }); - file.add(agenda); - item = new JMenuItem("Open"); item.addActionListener(new ActionListener() { @@ -60,22 +50,12 @@ public class MenuBar extends JMenuBar 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.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - new Agenda.Window(); + new Agenda.Window(w.getPanel()); } }); file.add(item); diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index a0d2451..8ba48a7 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -23,12 +23,10 @@ import java.util.GregorianCalendar; import java.util.Iterator; import javax.imageio.ImageIO; -import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.Timer; import Agenda.Agenda; -import Agenda.AgendaStage; import Listeners.Mouse; import Listeners.MouseMotion; import Listeners.MouseWheel; @@ -73,7 +71,7 @@ public class Panel extends JPanel implements ActionListener Point lastMousePosition = new Point(0, 0); Point2D selectionPosition = new Point(0, 0); Images images = new Images(); - Timer t; + javax.swing.Timer t; SimpleDateFormat formatter; GregorianCalendar date; @@ -146,8 +144,9 @@ public class Panel extends JPanel implements ActionListener addMouseMotionListener(new MouseMotion(this)); addMouseWheelListener(new MouseWheel(this)); - + addFocusListener(new WindowFocusListener(this)); + t = new Timer(1000 / 10, this); } @@ -167,26 +166,7 @@ public class Panel extends JPanel implements ActionListener switch (index) { case 0: - ArrayList stages = agenda.getStages(); - Object[] s = new Object[stages.size()]; - AgendaStage stage = null; - if (stages.size() != 0) - { - for (int i = 0; i < stages.size(); i++) - { - s[i] = stages.get(i); - } - - stage = (AgendaStage) JOptionPane.showInputDialog(null, "Select the right Stage", "Select Stage", JOptionPane.PLAIN_MESSAGE, null, s, "stage"); - } - if (stage != null) - { - return new Stage(null, stage); - } - else - { - return null; - } + return new Stage(null); case 1: return new Toilet(null); case 2: @@ -211,18 +191,6 @@ public class Panel extends JPanel implements ActionListener { waypoints.add(w); } - - public Waypoint getWaypoint(int i) - { - for(Waypoint w : waypoints) - { - if(w.getSelf() == i) - { - return w; - } - } - return null; - } public ArrayList getWaypoints() { @@ -231,27 +199,14 @@ public class Panel extends JPanel implements ActionListener public void addVisitors() { - ArrayList entrances = new ArrayList<>(); - for(DrawObject object : objects) { - if(object instanceof Entrance) { - entrances.add(object); - } - } - 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)); - } - else { - JOptionPane.showMessageDialog(this, "You don't have an entrance"); - } + visitors.add(new Visitor("visitor", new Point(100, 300), agenda, objects)); } public void addVisitors(int count) { for (int i = 0; i < count; i++) { - addVisitors(); + visitors.add(new Visitor("visitor", new Point(100, 300), agenda, objects)); } } @@ -563,27 +518,13 @@ public class Panel extends JPanel implements ActionListener { if (path.containsPoint(point)) { - setcurrentPath(path); setClickedOption("Path"); - return true; } } return false; } - - public Path getClickedPath(Point2D point) - { - for (Path path : paths) - { - if (path.containsPoint(point)) - { - return path; - } - } - return null; - } /** * Remove a path from the list. @@ -616,17 +557,17 @@ public class Panel extends JPanel implements ActionListener { this.agenda = agenda; } - + public static int getFieldWidth() { return width; } - + public static int getFieldHeight() { return height; } - + @Override public void actionPerformed(ActionEvent e) { @@ -642,7 +583,7 @@ public class Panel extends JPanel implements ActionListener for (Visitor v : visitors) { - v.update(objects, currentTime, visitors, paths, this); + v.update(objects, currentTime, visitors, paths); } repaint(); @@ -669,25 +610,25 @@ public class Panel extends JPanel implements ActionListener this.height = height; paths.clear(); objects.clear(); + visitors.clear(); cameraScale = 1; switch (terrainIndex) { - case 0: - background = grass; - break; - case 1: - background = grass2; - break; - case 2: - background = sand; - break; - case 3: - background = sand2; - break; - case 4: - background = stone; - break; - + case 0: + background = grass; + break; + case 1: + background = grass2; + break; + case 2: + background = sand; + break; + case 3: + background = sand2; + break; + case 4: + background = stone; + break; } repaint(); } diff --git a/Applicatie/SaveLoad.java b/Applicatie/SaveLoad.java index a1e22c5..ecc541f 100644 --- a/Applicatie/SaveLoad.java +++ b/Applicatie/SaveLoad.java @@ -11,6 +11,7 @@ import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.filechooser.FileFilter; +import Agenda.Agenda; import Objects.DrawObject; public class SaveLoad { @@ -66,6 +67,7 @@ public class SaveLoad { try { FileOutputStream fos = new FileOutputStream(file); ObjectOutputStream oos = new ObjectOutputStream(fos); + oos.writeObject(panel.getAgenda()); for (DrawObject object : panel.objects) { oos.writeObject(object); } @@ -124,8 +126,10 @@ public class SaveLoad { ois = new ObjectInputStream(fis); Object object; - object = ois.readObject(); + Agenda a = (Agenda) ois.readObject(); + panel.setAgenda(a); try { + object = ois.readObject(); panel.clearObjects(); while (object != null) { panel.objects.add((DrawObject) object); diff --git a/Applicatie/Visitor.java b/Applicatie/Visitor.java index 2cbdd43..91378e4 100644 --- a/Applicatie/Visitor.java +++ b/Applicatie/Visitor.java @@ -28,7 +28,6 @@ public class Visitor Agenda agenda; ArrayList objects; int target; - int finalTarget; public Visitor(String filename, Point2D position, Agenda agenda, ArrayList objects) { @@ -42,8 +41,7 @@ public class Visitor this.objects = objects; fillActions(); System.out.println(actions.size()); - target = 1; - finalTarget = 2; + target = 0; } public void draw(Graphics2D g2) @@ -65,17 +63,17 @@ public class Visitor public DrawObject getEntrance() { - for (DrawObject o : objects) + for(DrawObject o : objects) { - if (o instanceof Entrance) + if(o instanceof Entrance) { return o; } } return null; } - - public void update(ArrayList objects, int currentTime, ArrayList visitors, ArrayList paths, Panel panel) + + public void update(ArrayList objects, int currentTime, ArrayList visitors, ArrayList paths) { DrawObject target = getEntrance(); for (Action a : actions) @@ -87,76 +85,7 @@ public class Visitor } - // moveToTarget(target, objects, visitors, paths); - move(target, panel); - } - - public void move(DrawObject tar, Panel panel) - { - Point2D targetPoint = panel.getWaypoint(target).getPosition(); - - double newRot = Math.atan2(targetPoint.getY() - position.getY(), targetPoint.getX() - position.getX()); - - int difx = (int) (targetPoint.getX() - position.getX()); - int dify = (int) (targetPoint.getY() - position.getY()); - int distance = (int) Math.sqrt((difx * difx) + (dify * dify)); - - if (rotation > newRot && distance > 10) - { - rotation -= 0.15; - } - else if (rotation < newRot && distance > 10) - { - rotation += 0.15; - } - - Point2D oldPosition = position; - - // face direction - float directionX = (float) Math.cos(rotation); - float directionY = (float) Math.sin(rotation); - - if (distance > 10) - { - position = new Point2D.Double((position.getX() + directionX * speed), (position.getY() + directionY * speed)); - } - - boolean possible = true; - for (DrawObject object : objects) - { - if (object instanceof Entrance || object instanceof Waypoint) - { - continue; - } - if (hitTest(object)) - { - possible = false; - } - } - if (possible == false) - { - position = oldPosition; - rotation += 0.2; - } - if(checkIfOnWaypoint(panel)) - { - for(int i : panel.getWaypoint(target).getOptions()) - { - if(i == finalTarget) - { - target = finalTarget; - } - } - } - } - - public boolean checkIfOnWaypoint(Panel panel) - { - if (panel.getWaypoint(target).contains(position)) - { - return true; - } - return false; + moveToTarget(target, objects, visitors, paths); } public void moveToTarget(DrawObject target, ArrayList objects, ArrayList visitors, ArrayList paths) @@ -171,7 +100,7 @@ public class Visitor break; } Shape containsShape = p.containsPointShape(position); - if (containsShape != null) + if(containsShape != null) { tar = new Point2D.Double(containsShape.getBounds().getCenterX(), containsShape.getBounds().getCenterY()); } @@ -279,23 +208,27 @@ public class Visitor } } lastShape = values.get(lastdistance); - + Point2D.Double target2 = new Point2D.Double(lastShape.getBounds().getCenterX(), lastShape.getBounds().getCenterY()); - + double newRot = Math.atan2(target2.getY() - position.getY(), target2.getX() - position.getX()); int difx = (int) (target2.getX() - position.getX()); int dify = (int) (target2.getY() - position.getY()); int distance = (int) Math.sqrt((difx * difx) + (dify * dify)); - if (rotation > newRot && distance > 10) - { - rotation -= 0.15; - } - else if (rotation < newRot && distance > 10) - { - rotation += 0.15; - } + System.out.println(rotation); + System.out.println(newRot); + System.out.println("--------------"); +// if (rotation > newRot && distance > 10) +// { +// rotation -= 0.15; +// } +// else if (rotation < newRot && distance > 10) +// { +// rotation += 0.15; +// } + rotation = newRot; Point2D oldPosition = position; diff --git a/Applicatie/WaypointPopup.java b/Applicatie/WaypointPopup.java index dee0671..f5e88cf 100644 --- a/Applicatie/WaypointPopup.java +++ b/Applicatie/WaypointPopup.java @@ -1,13 +1,10 @@ package Applicatie; import java.awt.BorderLayout; -import java.awt.Dimension; import java.awt.FlowLayout; -import java.awt.Font; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.Box; -import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; @@ -19,68 +16,25 @@ import Objects.DrawObject; public class WaypointPopup extends JFrame { private static final long serialVersionUID = 1; - private JLabel title; - public WaypointPopup(DrawObject w, Panel panel) + public WaypointPopup(DrawObject w) { - super("Edit WayPoint"); + super("Artist editscreen!"); Waypoint wp = (Waypoint) w; setDefaultCloseOperation(HIDE_ON_CLOSE); JPanel content = new JPanel(new BorderLayout()); - JPanel north = new JPanel(); - if(wp.getSelf() == 0) - { - title = new JLabel("Edit WayPoint"); - } - else - { - title = new JLabel("Edit WayPoint " + wp.getSelf()); - } - title.setFont(new Font("Dialog", Font.BOLD, 24)); - north.add(title); - content.add(north, BorderLayout.NORTH); - JPanel center = new JPanel(new FlowLayout()); - JPanel row1 = new JPanel(); - row1.setLayout(new BoxLayout(row1, BoxLayout.Y_AXIS)); - JPanel row2 = new JPanel(); - row2.setLayout(new BoxLayout(row2, BoxLayout.Y_AXIS)); - JPanel south = new JPanel(); + JPanel south = new JPanel(new FlowLayout()); + JPanel center = new JPanel(new GridLayout(5,2)); content.add(south, BorderLayout.SOUTH); content.add(center, BorderLayout.CENTER); - center.add(row1); - center.add(row2); - - JPanel empty = new JPanel(); - empty.add(Box.createRigidArea(new Dimension(0, 20))); - row2.add(empty); JPanel panel1 = new JPanel(); JLabel name = new JLabel("Waypoint"); - name.setFont(new Font("Dialog", Font.PLAIN, 20)); panel1.add(name); - row1.add(panel1); + center.add(panel1); - JTextField tf = new JTextField(10); - row2.add(tf); - - JPanel panel2 = new JPanel(); - JLabel options = new JLabel("Options"); - options.setFont(new Font("Dialog", Font.PLAIN, 20)); - panel2.add(options); - row1.add(panel2); - - JPanel empty2 = new JPanel(); - empty2.add(Box.createRigidArea(new Dimension(0, 5))); - row2.add(empty2); - - JTextField tx = new JTextField(8); - row2.add(tx); - - JPanel help = new JPanel(); - JLabel example = new JLabel("example: '1-2-3'"); - example.setFont(new Font("Dialog", Font.PLAIN, 12)); - help.add(example); - row2.add(help); + JTextField tf = new JTextField(5); + center.add(tf); JButton edit = new JButton("Done"); edit.addActionListener(new ActionListener() @@ -90,23 +44,14 @@ public class WaypointPopup extends JFrame { public void actionPerformed(ActionEvent e) { wp.setSelf(Integer.valueOf(tf.getText())); - panel.addWaypoint(wp); dispose(); - String options[] = tx.getText().split("-"); - int ioptions[] = new int[options.length]; - for(int i = 0; i < options.length; i++) - { - ioptions[i] = Integer.valueOf(options[i]); - } - wp.setOptions(ioptions); - } }); south.add(edit); setContentPane(content); setVisible(true); - setSize(300,250); + setSize(500,320); } } diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index 95f38c5..f77a8f6 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -10,8 +10,6 @@ import java.awt.image.BufferedImage; import javax.swing.SwingUtilities; import Applicatie.Panel; -import Applicatie.PathPopup; - import Applicatie.Waypoint; import Applicatie.WaypointPopup; import Objects.DrawObject; @@ -47,17 +45,14 @@ public class Mouse extends MouseAdapter if (e.getX() >= panel.getScrollfactor() && e.getX() < last + image.getWidth() + panel.getScrollfactor()) { DrawObject tempDrawObj = panel.createNewDrawObject(i); - if (tempDrawObj != null) - { - tempDrawObj.setPosition(clickPoint); - if (!panel.getObjects().isEmpty()) - panel.clearObjectSelection(); - panel.setDragObject(tempDrawObj); - panel.getDragObject().setSelected(true); - panel.getPP().setSelected(tempDrawObj); - panel.setSelectedObject(tempDrawObj); - selectedObject = tempDrawObj; - } + tempDrawObj.setPosition(clickPoint); + if (!panel.getObjects().isEmpty()) + panel.clearObjectSelection(); + panel.setDragObject(tempDrawObj); + panel.getDragObject().setSelected(true); + panel.getPP().setSelected(tempDrawObj); + panel.setSelectedObject(tempDrawObj); + selectedObject = tempDrawObj; break; } i++; @@ -76,10 +71,8 @@ public class Mouse extends MouseAdapter { if (SwingUtilities.isRightMouseButton(e)) { - if (o instanceof Waypoint) - { + if(o instanceof Waypoint){ new WaypointPopup(o); - } } if (o == selectedObject) @@ -125,19 +118,7 @@ public class Mouse extends MouseAdapter } } - Path clickedPath = panel.getClickedPath(clickPoint); - if (clickedPath != null) - { - if (SwingUtilities.isRightMouseButton(e)) - { - new PathPopup(clickedPath, panel); - } - } - else - { - panel.checkPath(clickPoint); - } - + panel.checkPath(clickPoint); } if (panel.getDragObject() == null && selectedObject != null) { @@ -149,19 +130,15 @@ public class Mouse extends MouseAdapter } else { // Making path. - panel.getCurrentPath().addPoint(new Point2D.Double(clickPoint.getX(), clickPoint.getY())); - } panel.repaint(); } public void mouseReleased(MouseEvent e) { - if (panel.getDragObject() != null) - { - if (panel.getDragObject().getRectangleColor() != Color.RED) - { + if(panel.getDragObject() != null) { + if(panel.getDragObject().getRectangleColor() != Color.RED) { panel.getDragObject().setPosition(panel.getDragObject().getPosition(), true); panel.getPP().update(); panel.setDragObject(null); diff --git a/Objects/DrawObject.java b/Objects/DrawObject.java index d07d397..6580c79 100644 --- a/Objects/DrawObject.java +++ b/Objects/DrawObject.java @@ -15,6 +15,7 @@ import java.io.Serializable; import javax.swing.ImageIcon; import Applicatie.Images; +import Applicatie.Panel; public abstract class DrawObject implements Serializable { @@ -232,11 +233,27 @@ public abstract class DrawObject implements Serializable 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; } public void setPosition(Point2D position, boolean b) { - this.position = position; + setPosition(position); } public double getRotation() diff --git a/Objects/Path.java b/Objects/Path.java index 010303b..15b3de0 100644 --- a/Objects/Path.java +++ b/Objects/Path.java @@ -14,7 +14,6 @@ import java.util.ArrayList; import javax.imageio.ImageIO; -import Applicatie.Panel; import Applicatie.Waypoint; /** @@ -96,7 +95,7 @@ public class Path } return null; } - + /** * Check if one of the lines contains the given point. * @@ -115,13 +114,12 @@ public class Path } return false; } - - + public boolean intersectsRect(Rectangle2D rect) { - for (Shape line : getPath()) + for(Shape line : getPath()) { - if (line.intersects(rect)) + if(line.intersects(rect)) { return true; } @@ -146,23 +144,13 @@ public class Path lines.add(stroke.createStrokedShape(line)); } return lines; - } - - public void addWaypoint(int i, Panel panel) + + public void addWaypoint(Waypoint w) { - for (Waypoint w : panel.getWaypoints()) - { - if (w.getSelf() == i) - { - waypoints.add(w); - return; - } - } - + waypoints.add(w); } - /** * Add a point to the path. * diff --git a/Objects/Stage.java b/Objects/Stage.java index 7252c15..c006d71 100644 --- a/Objects/Stage.java +++ b/Objects/Stage.java @@ -2,16 +2,11 @@ package Objects; import java.awt.geom.Point2D; -import Agenda.AgendaStage; - public class Stage extends DrawObject { - AgendaStage stage; - - public Stage(Point2D position, AgendaStage st) + public Stage(Point2D position) { super("stage", position); - stage = st; } @Override @@ -20,14 +15,4 @@ public class Stage extends DrawObject return "Stage"; } - public AgendaStage getStage() - { - return stage; - } - - public void setStage(AgendaStage stage) - { - this.stage = stage; - } - }