Explorar el Código

New IO(work in progress)

Jeroen hace 10 años
padre
commit
649dda3098

+ 39 - 4
src/gui/menubar/MenuBar.java

@@ -1,20 +1,26 @@
 package gui.menubar;
 
 import gui.frames.MainFrame;
+import gui.simulator.DrawEngine;
 import gui.simulator.SimIo;
 import gui.simulator.SimulatorDialogPane;
 import gui.simulator.SimulatorPane;
+import gui.simulator.Terrain;
+import gui.simulator.WalkingPathArrayList;
 
 import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
+import javax.swing.JPanel;
 import javax.swing.KeyStroke;
 
 import agenda.Agenda;
@@ -26,6 +32,8 @@ public class MenuBar extends JMenuBar{
 
 	private MainFrame mainFrame;
 	private Agenda agenda;
+	private JPanel simPanel;
+	private Terrain terrain;
 
 	//add agenda because Database needs it to acces all inserted acts
 	public MenuBar(MainFrame frame, Agenda agenda){
@@ -122,9 +130,26 @@ public class MenuBar extends JMenuBar{
 
 			public void actionPerformed(ActionEvent e) {
 				try {
-					SimulatorPane pane = SimIo.readIo();
-					if(pane != null){
-						mainFrame.setSimulatorpanel(pane);
+//					simPanel = mainFrame.getSimulatorpanel();
+//					System.out.println("Simpanel " + simPanel);
+//					terrain = ((SimulatorPane) simPanel).getTerrain();
+//					System.out.println(terrain);
+					List <Object> list = new ArrayList<Object>();
+					 list = (List<Object>) SimIo.readIo();
+					System.out.println(list);
+					if(list != null){
+						mainFrame.setLength((int)list.get(0));
+						mainFrame.setTerainWidth((int)list.get(1));
+						mainFrame.setTerrain((SimulatorPane.Terrains)list.get(2));
+						simPanel = new SimulatorPane(mainFrame.getAgenda(), mainFrame.getLength(), mainFrame.getTerainWidth(), mainFrame.getTerrain());
+						
+						terrain = ((SimulatorPane) simPanel).getTerrain();
+						terrain.setEntities((List<DrawEngine>)list.get(3));
+						System.out.println(list.get(3));
+						terrain.setPaths((WalkingPathArrayList)list.get(4));
+						((SimulatorPane) simPanel).setTerrain(terrain);
+						
+						mainFrame.setSimulatorpanel(simPanel);
 						System.out.println("read simulator");
 					}
 				} catch (IOException ee) {
@@ -138,7 +163,17 @@ public class MenuBar extends JMenuBar{
 			@Override
 			public void actionPerformed(ActionEvent arg0) {
 				try {
-					SimIo.writeIo(mainFrame.getSimulatorpanel());
+					simPanel = mainFrame.getSimulatorpanel();
+					terrain = ((SimulatorPane) simPanel).getTerrain();
+					if(simPanel != null){
+						List<Object> objectlist = new ArrayList<Object>();
+						objectlist.add(mainFrame.getLength());
+						objectlist.add(mainFrame.getTerainWidth());
+						objectlist.add(mainFrame.getTerrain());
+						objectlist.add(terrain.getEntities());
+						objectlist.add(terrain.getPaths());
+						SimIo.writeIo(objectlist);
+					}
 				} catch (IOException e1) {
 					e1.printStackTrace();
 				}

+ 4 - 4
src/gui/simulator/DrawEngine.java

@@ -11,7 +11,7 @@ import java.awt.geom.Rectangle2D;
  * Created by gjoosen on 07/03/15.
  * Edited by master D Mathijssen on 17-3-2015 and some other days
  */
-public abstract class DrawEngine {
+public abstract class DrawEngine{
 
     private Images.ImageType image;
     private double x, y, rotation, scale;
@@ -22,11 +22,11 @@ public abstract class DrawEngine {
     private Rectangle2D.Double walkArea;
 
     public DrawEngine(){
-
+    	
     }
-
+    
     public DrawEngine(Images.ImageType image, int x, int y, double scale, double distanceToOtherObjects, SimulatorPane.Objects objecttype, Terrain terrain, Rectangle2D.Double walkArea, boolean drawWalkArea){
-        this.image = image;
+    	this.image = image;
         this.type = objecttype;
         this.x = x;
         this.y = y;

+ 14 - 10
src/gui/simulator/SimIo.java

@@ -6,30 +6,30 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
 
 import javax.swing.JFileChooser;
-import javax.swing.JPanel;
 
 
 public class SimIo {
 
-	public static void writeIo(JPanel panel) throws IOException
+	public static void writeIo(List<Object> list) throws IOException
 	{
 		JFileChooser fileChooser = new JFileChooser(); 
 		if(fileChooser.showSaveDialog(null)
 				== fileChooser.APPROVE_OPTION) {
 			java.io.File file = fileChooser.getSelectedFile();
-
 			ObjectOutputStream output = null;
 			try{
 				output = new ObjectOutputStream(new FileOutputStream(file));
-				
+
 			}catch(IOException e){ 
 				System.out.println("Could not open file." + e);
 			}
 			try{
-			    
-				output.writeObject(panel);
+				output.writeObject(list);
 				output.close();
 			}catch(IOException e){
 				System.out.println("Writing error.  " + e);
@@ -38,8 +38,10 @@ public class SimIo {
 
 	}
 
-	public static SimulatorPane readIo() throws IOException
+	public static List<Object> readIo() throws IOException
 	{
+		List<Object> objectlist = new ArrayList<Object>();
+
 		JFileChooser fileChooser = new JFileChooser();
 		if(fileChooser.showOpenDialog(null)
 				== fileChooser.APPROVE_OPTION) {
@@ -53,11 +55,13 @@ public class SimIo {
 				System.out.println("There was a problem opening the file. " + e);
 
 			}
-			SimulatorPane pane = null;
+			objectlist = null;
 			try{
-				pane = (SimulatorPane)input.readObject();
+
+				objectlist = (List<Object>) input.readObject();
+
 				input.close();
-				return pane;
+				return objectlist;
 			}catch(Exception e){
 				System.out.println("There was a issue reading this file: " + e);
 			}

+ 8 - 0
src/gui/simulator/SimulatorPane.java

@@ -16,6 +16,7 @@ public class SimulatorPane extends JPanel{
 	
 	private Agenda agenda;
 	private Terrain terrain;
+
 	private Timer framestimer, updatetimer;
 	
 	//terrain type enums
@@ -67,5 +68,12 @@ public class SimulatorPane extends JPanel{
 		}
 	}
 	
+	public Terrain getTerrain() {
+		return terrain;
+	}
+	
+	public void setTerrain(Terrain terrain) {
+		this.terrain = terrain;
+	}
 	
 }

+ 12 - 0
src/gui/simulator/Terrain.java

@@ -555,4 +555,16 @@ public class Terrain extends JPanel {
 		}
 	}
 
+	public void setEntities(List<DrawEngine> entities) {
+		this.entities = entities;
+	}
+
+	public void setPaths(WalkingPathArrayList paths) {
+		this.paths = paths;
+	}
+
+	public WalkingPathArrayList getPaths() {
+		return paths;
+	}
+
 }

+ 2 - 2
src/gui/simulator/WalkingPathArrayList.java

@@ -1,10 +1,10 @@
 package gui.simulator;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 
-public class WalkingPathArrayList extends ArrayList<WalkingPath>{
+public class WalkingPathArrayList extends ArrayList<WalkingPath> implements Serializable{
 	public WalkingPathArrayList getWalkingPadType(SimulatorPane.Objects type){
 		WalkingPathArrayList returnlist = new WalkingPathArrayList();
 		for(WalkingPath wp:this){

+ 3 - 3
src/gui/simulator/facilities/WayPoint.java

@@ -2,12 +2,12 @@ package gui.simulator.facilities;
 
 import gui.simulator.DrawEngine;
 import gui.simulator.Images;
-import gui.simulator.Images.ImageType;
 import gui.simulator.SimulatorPane;
-import gui.simulator.SimulatorPane.Objects;
 import gui.simulator.Terrain;
 
-public class WayPoint extends DrawEngine{
+import java.io.Serializable;
+
+public class WayPoint extends DrawEngine implements Serializable{
 
 	private static String facilityName = "WayPoint";