107 lines
3.0 KiB
Java
107 lines
3.0 KiB
Java
package ecoparasite.svg;
|
|
|
|
import ecoparasite.representation.ValeursXY;
|
|
import ecoparasite.svg.elements.Element;
|
|
|
|
import java.io.FileWriter;
|
|
import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashSet;
|
|
import java.util.UUID;
|
|
|
|
public class SVGFactory {
|
|
|
|
static final private String EXPORT_PATH = "export/";
|
|
static final private String EXTENSION = ".svg";
|
|
|
|
/**
|
|
* Permet la création du fichier SVG
|
|
* @param mesElements un array des elements à ajouter dans le svg
|
|
* @return True si la création est un succès, False sinon
|
|
*/
|
|
public static boolean createSVG(ArrayList<Element> mesElements){
|
|
|
|
String code = createSVGCode(mesElements);
|
|
|
|
try {
|
|
createFile(code);
|
|
} catch (Exception e) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Permet la création du fichier SVG (Polymorphisme pour ajouter un nom de fichier)
|
|
* @param mesElements un Array des elements à ajouter dans le SVG
|
|
* @param filename une String représentant le nom du fichier choisi
|
|
* @return True si la création est un succès, False sinon
|
|
*/
|
|
public static boolean createSVG(ArrayList<Element> mesElements, String filename) {
|
|
|
|
String code = createSVGCode(mesElements);
|
|
|
|
try {
|
|
createFile(code,filename);
|
|
} catch (Exception e) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Fonction basique de transformation des éléments en code SVG
|
|
* @param mesElements un array contenant les éléments à mettre dans le svg
|
|
* @return une String contenant la totalité du code SVG de notre graphique
|
|
*/
|
|
public static String createSVGCode(ArrayList<Element> mesElements){
|
|
|
|
String code = "<svg height=\"800\" width=\"800\" >";
|
|
|
|
for (Element e : mesElements){
|
|
|
|
code += e.toSVG();
|
|
|
|
}
|
|
|
|
code += "</svg>";
|
|
|
|
return code;
|
|
}
|
|
|
|
/**
|
|
* fonction qui créer le fichier, ici avec une ID random comme nom de fichier
|
|
* @param data une String contenant le contenue du fichier désiré (ici pour le SVG)
|
|
* @throws IOException Déclenché par un échec de la création du fichier
|
|
*/
|
|
public static void createFile(String data) throws IOException {
|
|
String id = UUID.randomUUID().toString();
|
|
createFile(data,id);
|
|
}
|
|
|
|
/**
|
|
* Permet la création du fichier
|
|
* @param data une String contenant le contenue du fichier désiré
|
|
* @param filename une String contenant le nom du fichier voulu
|
|
* @throws IOException Déclenché par un échec de la création du fichier
|
|
*/
|
|
public static void createFile(String data, String filename) throws IOException {
|
|
|
|
// create a FileWriter object with the file name
|
|
FileWriter writer = new FileWriter(EXPORT_PATH + filename + EXTENSION);
|
|
|
|
// write the string to the file
|
|
writer.write(data);
|
|
|
|
// close the writer
|
|
writer.close();
|
|
|
|
System.out.println("Successfully wrote text to file.");
|
|
|
|
}
|
|
|
|
}
|