view java/src/uk/ac/qmul/eecs/ccmi/pdsupport/PdPersistenceManager.java @ 1:e3935c01cde2 tip

moved license of PdPersistenceManager to the beginning of the file
author Fiore Martin <f.martin@qmul.ac.uk>
date Tue, 08 Jul 2014 19:52:03 +0100
parents 78b7fc5391a2
children
line wrap: on
line source
/*  
accessPD - An accessible PD patches editor
 
Copyright (C) 2014  Fiore Martin

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 3 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, see <http://www.gnu.org/licenses/>.
*/
package uk.ac.qmul.eecs.ccmi.pdsupport;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.nio.charset.Charset;

import uk.ac.qmul.eecs.ccmi.gui.Diagram;
import uk.ac.qmul.eecs.ccmi.gui.Edge;
import uk.ac.qmul.eecs.ccmi.gui.Node;

public class PdPersistenceManager {
	private static PdPersistenceManager singleton;
	public final static String PD_EXTENSION = ".pd";
	
	public static PdPersistenceManager getInstance(){
		if(singleton == null){
			singleton = new PdPersistenceManager();
		}
		
		return singleton;
	}
	
	public void encodeDiagramInstance(Diagram diagram, String newName, OutputStream out){
		OutputStreamWriter writer = new OutputStreamWriter(out, Charset.forName("US-ASCII"));
		
		PrintWriter printWriter = new PrintWriter(writer);
		
		printWriter.print("#N canvas 0 0 550 400 10;\r\n");
		
		
		int index = 0;
		for(Node n : diagram.getCollectionModel().getNodes()){
			PdObject pdObj = (PdObject)n;
			
			pdObj.setOrderNumber(index++);
			printWriter.print(pdObj.toPdFile()+";\r\n");
		}
		
		for(Edge e : diagram.getCollectionModel().getEdges()){
			PdConnection pdCon = (PdConnection)e;
			printWriter.print(pdCon.toPdFile()+";\r\n");
		}
		
		printWriter.close();
	}

	public Diagram decodeDiagramInstance(InputStream in) throws IOException {
		return null;
	}
	
	public void encodeDiagramInstance(Diagram diagram, OutputStream out) throws IOException{
		encodeDiagramInstance(diagram, diagram.getName(),out);
	}
	
	
	
}