/*
* @(#)EditorGraph.java 3.3 23-APR-04
*
* Copyright (c) 2001-2005, Gaudenz Alder
*
* See LICENSE file in distribution for licensing details of this source file
*/
package com.jgraph.example;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import javax.swing.JFrame;
import org.jgraph.JGraph;
/**
* An example to demonstrate the use of serialization in JGraph. As of version
* 5.7.5, the JGraph object is fully serializable. In a real-world situation,
* the graph must be prepared for serialization as shown in GraphEdX. Writing
* the graph to a file using the XMLEncoder is also demonstrated there.
*
* @version 1.0 06-DEC-05
* @author Gaudenz Alder
*/
public class SerialGraph {
public static String FILENAME = "test.tmp";
/**
* @param args
*/
public static void main(String[] args) {
JGraph graph = new JGraph();
writeObject(graph, FILENAME);
graph = (JGraph) readObject(FILENAME);
JFrame frame = new JFrame("SerialGraph");
frame.getContentPane().add(graph);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public static void writeObject(Object object, String filename) {
try {
ObjectOutputStream out = new ObjectOutputStream(
new BufferedOutputStream(new FileOutputStream(filename)));
out.writeObject(object);
out.flush();
out.close();
File file = new File(filename);
System.out.println("File size is " + file.length() + " byte(s)");
} catch (Exception e) {
e.printStackTrace();
}
}
public static Object readObject(String filename) {
try {
ObjectInputStream in = new ObjectInputStream(
new BufferedInputStream(new FileInputStream(filename)));
Object object = in.readObject();
in.close();
File file = new File(filename);
file.delete();
return object;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}