// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea // Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ package graphtea.plugins.main.saveload; import graphtea.graph.atributeset.GraphAttrSet; import graphtea.graph.graph.AbstractGraphRenderer; import graphtea.graph.graph.GraphModel; import graphtea.graph.graph.SubGraph; import graphtea.platform.core.BlackBoard; import graphtea.platform.plugin.PluginMethods; import graphtea.plugins.main.saveload.image.Image; import graphtea.plugins.main.saveload.matrix.CopyAsMatrix; import graphtea.plugins.main.saveload.matrix.LoadMatrix; import graphtea.plugins.main.saveload.matrix.Matrix; import graphtea.plugins.main.saveload.matrix.SaveMatrix; import java.io.File; import java.io.IOException; /** * @author azin azadi */ public class SaveLoadPluginMethods implements PluginMethods { private BlackBoard blackboard; public SaveLoadPluginMethods(BlackBoard blackboard) { this.blackboard = blackboard; } //************************ G E N E R A L *********************************** //************************ S A V E *********************************** /** * saves the current graph as matrix * * @see graphtea.plugins.main.saveload.matrix.SaveMatrix#saveMatrix(graphtea.graph.graph.GraphModel,java.io.File) */ public void saveAsMatrix(File file) throws IOException { SaveMatrix.saveMatrix(getGraph(), file); } /** * @see graphtea.plugins.main.saveload.matrix.SaveMatrix#saveMatrix(graphtea.graph.graph.GraphModel,java.io.File) */ public void saveAsMatrix(GraphModel g, File file) throws IOException { SaveMatrix.saveMatrix(g, file); } public String Graph2MatrixString(GraphModel g) { return (Matrix.Matrix2String(Matrix.graph2Matrix(g))); } public String Graph2MatrixHTML(GraphModel g){ return (Matrix.Matrix2HTML(Matrix.graph2Matrix(g))); } /** * saves the current graph as a (format) image. format e.g. jpeg, png, ... */ public void saveAsImage(File file, String format) { format = format.replaceAll(".", ""); Image.save(Image.Graph2Image(blackboard.getData(AbstractGraphRenderer.EVENT_KEY), getGraph()), file, format); } /** * saves g in file as a (jpeg) image */ public void saveAsImage(GraphModel g, File file, String extension) { graphtea.plugins.main.saveload.image.SaveImage.saveImage(g, file, extension); } //************************ L O A D *********************************** /** * loads the matrix saved in file to the current graph * * @param file The given file */ public GraphModel loadMatrix(File file) throws IOException { return LoadMatrix.loadMatrix(file); } /** * copies the Vertices and Edges as a graph to clipboard * * @param sd The given selected subgraph */ //todo: move this to ccp (Rousbeh) public void copySelectedAsMatrix(SubGraph sd) { CopyAsMatrix.copyAsMatrix(getGraph(), sd); } private GraphModel getGraph() { return blackboard.getData(GraphAttrSet.name); } /** * Return the extension portion of the file's name . * * @see #getExtension * @see javax.swing.filechooser.FileFilter#accept */ public static String getExtension(File f) { if (f != null) { String filename = f.getName(); int i = filename.lastIndexOf('.'); if (i > 0 && i < filename.length() - 1) { return filename.substring(i + 1).toLowerCase(); } } return null; } }