summaryrefslogtreecommitdiff
path: root/sources/serialize/VSSerialize.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/serialize/VSSerialize.java')
-rw-r--r--sources/serialize/VSSerialize.java301
1 files changed, 0 insertions, 301 deletions
diff --git a/sources/serialize/VSSerialize.java b/sources/serialize/VSSerialize.java
deleted file mode 100644
index 891c5b5..0000000
--- a/sources/serialize/VSSerialize.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright (c) 2008 Paul C. Buetow, vs@dev.buetow.org
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * All icons of the icons/ folder are under a Creative Commons
- * Attribution-Noncommercial-Share Alike License a CC-by-nc-sa.
- *
- * The icon's homepage is http://code.google.com/p/ultimate-gnome/
- */
-
-package serialize;
-
-import java.io.*;
-import java.util.HashMap;
-import javax.swing.*;
-
-import prefs.*;
-import simulator.*;
-
-/**
- * The class VSSerialize, this class helps do serialize/deserialize a saved
- * simulator!
- *
- * @author Paul C. Buetow
- */
-public final class VSSerialize {
- /** The serial version uid */
- private static final long serialVersionUID = 1L;
-
- /** True if debug mode of serialization/deserialization */
- public static final boolean DEBUG = true;
-
- /** The last filename used for saveing/opening*/
- public static String LAST_FILENAME = null;
-
- /** For temp object storage */
- private static HashMap<String,Object> objects;
-
- /** Holds the current VSSerialize object */
- private static VSSerialize serialize;
-
- /**
- * Creates the VSSerialize object.
- */
- public VSSerialize() {
- init();
- }
-
- /**
- * Initializes the helper.
- */
- private void init() {
- this.serialize = this;
- objects = new HashMap<String,Object>();
- }
-
- /**
- * Gets the current VSSerialize object.
- *
- * @return The current serialize object
- */
- public static VSSerialize getSerialize() {
- return serialize;
- }
-
- /**
- * Sets an object.
- *
- * @param key The object key
- * @param object The object itself
- */
- public void setObject(String key, Object object) {
- if (DEBUG)
- System.out.println("setObject("+key+")");
-
- objects.put(key, object);
- }
-
- /**
- * Sets an object.
- *
- * @param num The object number
- * @param key The object key
- * @param object The object itself
- */
- public void setObject(int num, String key, Object object) {
- if (DEBUG)
- System.out.println("setObject("+key+":"+num+")");
-
- objects.put(key + ":" + num, object);
- }
-
- /**
- * Checks if an object exists.
- *
- * @param num The object number
- * @param key The object key
- *
- * @return true, if the object exists. false, if the object does not exist
- */
- public boolean objectExists(int num, String key) {
- return null != objects.get(key + ":" + num);
- }
-
- /**
- * Gets an object.
- *
- * @param num The object number
- * @param key The object key
- *
- * @return The object itself
- */
- public Object getObject(int num, String key) {
- Object object = objects.get(key + ":" + num);
-
- if (object == null) {
- System.err.println("No such deserialization helper key "
- + key + ":" + num);
- System.exit(1);
- }
-
- return object;
- }
-
- /**
- * Gets an object.
- *
- * @param key The object key
- *
- * @return The object itself
- */
- public Object getObject(String key) {
- Object object = objects.get(key);
-
- if (object == null) {
- System.err.println("No such deserialization helper key " + key);
- System.exit(1);
- }
-
- return object;
- }
-
- /**
- * Saves the given simulator to the given filename.
- *
- * @param filename The filename
- * @param simulator The simulator
- */
- public void saveSimulator(String filename, VSSimulator simulator) {
- if (filename == null) {
- saveSimulator(simulator);
- return;
- }
-
- LAST_FILENAME = filename;
-
- try {
- FileOutputStream fileOutputStream =
- new FileOutputStream(filename);
- ObjectOutputStream objectOutputStream =
- new ObjectOutputStream(fileOutputStream);
-
- VSSerializablePrefs prefs = (VSSerializablePrefs)
- simulator.getPrefs();
- prefs.serialize(this, objectOutputStream);
- simulator.serialize(this, objectOutputStream);
-
- } catch (IOException e) {
- //e.printStackTrace();
-
- } finally {
- //objectOutputStream.close();
- }
- }
-
- /**
- * Saves the given simulator to a file choosen by the file chooser.
- *
- * @param simulator The simulator
- */
- public void saveSimulator(VSSimulator simulator) {
- VSPrefs prefs = simulator.getPrefs();
- VSSimulatorFrame simulatorFrame = simulator.getSimulatorFrame();
-
- String saveText = prefs.getString("lang.en.save");
- JFileChooser fileChooser = new JFileChooser(
- new File(".").getPath());
- fileChooser.setMultiSelectionEnabled(false);
- fileChooser.addChoosableFileFilter(createFileFilter(prefs));
- fileChooser.setApproveButtonText(saveText);
-
- if (fileChooser.showOpenDialog(simulatorFrame) ==
- JFileChooser.APPROVE_OPTION) {
- String fileName = fileChooser.getSelectedFile().getAbsolutePath();
- System.out.println(saveText + ": " + fileName);
- saveSimulator(fileName, simulator);
- }
- }
-
- /**
- * Opens a simulator from the given filename.
- *
- * @param filename The filename.
- * @param simulatorFrame The simulator frame
- *
- * @return The simulator object, and null if no success
- */
- public VSSimulator openSimulator(String filename,
- VSSimulatorFrame simulatorFrame) {
- VSSimulator simulator = null;
- simulatorFrame.resetCurrentSimulator();
- LAST_FILENAME = filename;
-
- try {
- FileInputStream fileInputStream =
- new FileInputStream(filename);
- ObjectInputStream objectInputStream =
- new ObjectInputStream(fileInputStream);
-
- VSDefaultPrefs prefs = new VSDefaultPrefs();
- prefs.deserialize(this, objectInputStream);
- //prefs.useDefaultStrings(true);
- prefs.addWithDefaults();
-
- this.setObject("prefs", prefs);
-
- simulator = new VSSimulator(prefs, simulatorFrame);
- simulatorFrame.addSimulator(simulator);
- simulator.deserialize(this, objectInputStream);
-
- } catch (Exception e) {
- //e.printStackTrace();
-
- } finally {
- //objectInputStream.close();
- }
-
- return simulator;
- }
-
- /**
- * Opens a simulator from a file selected from a file chooser.
- *
- * @param simulatorFrame The simulator frame
- *
- * @return The simulator object, and null if no success
- */
- public VSSimulator openSimulator(VSSimulatorFrame simulatorFrame) {
- VSPrefs prefs = simulatorFrame.getPrefs();
-
- String openText = prefs.getString("lang.en.open");
- JFileChooser fileChooser = new JFileChooser(
- new File(".").getPath());
- fileChooser.setMultiSelectionEnabled(false);
- fileChooser.addChoosableFileFilter(createFileFilter(prefs));
- fileChooser.setApproveButtonText(openText);
-
- if (fileChooser.showOpenDialog(simulatorFrame) ==
- JFileChooser.APPROVE_OPTION) {
- String fileName = fileChooser.getSelectedFile().getAbsolutePath();
- System.out.println(openText + ": " + fileName);
- return openSimulator(fileName, simulatorFrame);
- }
-
- return null;
- }
-
- /**
- * Creates a file filter for the file choosers
- *
- * @param prefs The default prefs
- */
- private javax.swing.filechooser.FileFilter createFileFilter(
- final VSPrefs prefs) {
- return new javax.swing.filechooser.FileFilter() {
- public boolean accept(File file) {
- if (file.isDirectory())
- return true;
- return file.getName().toLowerCase().endsWith(".dat");
- }
-
- public String getDescription() {
- return prefs.getString("lang.en.dat");
- }
- };
- }
-
-}