From: <had...@us...> - 2008-10-15 09:35:13
|
Revision: 4062 http://fudaa.svn.sourceforge.net/fudaa/?rev=4062&view=rev Author: hadouxad Date: 2008-10-15 09:34:59 +0000 (Wed, 15 Oct 2008) Log Message: ----------- mise en place du calque Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZebliCalquePersist.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZebliCalqueSaver.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-10-15 07:36:30 UTC (rev 4061) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-10-15 09:34:59 UTC (rev 4062) @@ -21,6 +21,7 @@ import java.awt.image.BufferedImage; import java.awt.print.PageFormat; import java.awt.print.Printable; +import java.io.File; import java.util.Map; import javax.swing.Action; @@ -76,7 +77,7 @@ * @author Guillaume Desnoix , Axel von Arnim, Fred deniger */ public class ZEbliCalquesPanel extends BuPanel implements EbliFilleCalquesInterface, BCalqueContextuelListener, - CtuluImageProducer, BCalqueSaverTargetInterface, EbliFindable, ActionListener { + CtuluImageProducer, BCalqueSaverTargetInterface, EbliFindable, ActionListener, ZebliCalqueSaver { protected class AnimAdapter extends EbliAnimationSourceAbstract { @@ -247,6 +248,10 @@ private BGroupeCalque gcDonnees_; + public BGroupeCalque getGcDonnees() { + return gcDonnees_; + } + public void setGcDonnees_(BGroupeCalque gcDonnees_) { this.gcDonnees_ = gcDonnees_; @@ -900,4 +905,12 @@ return null; } + public void loadCalque(File f, Map params) { + return; + } + + public void saveCalque(File _f) { + + } + } \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZebliCalquePersist.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZebliCalquePersist.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZebliCalquePersist.java 2008-10-15 09:34:59 UTC (rev 4062) @@ -0,0 +1,128 @@ +package org.fudaa.ebli.calque; + +import java.io.File; +import java.io.IOException; +import java.util.Map; + +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ebli.courbe.EGGroupPersist; + +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; + + +/** + * Classe qui gere les diff\xE9rents fichiers pour la persistance du calque. Doit + * recevoir en parametre le path du repertoire dans lequel sera sauvegard\xE9 le + * calque. + * + * @author Adrien Hadoux + * + */ +public class ZebliCalquePersist { + + /** + * Path du repertoire dans lequel seront enregistr\xE9 toute les courbes, groupes et + * model... + */ + String directoryPath_; + Map parameters_; + + + private XStream parser_; + + private static String MAINFILE = "descriptorCalque"; + private static String SPECIFIQUEFILE="specificDatas.xml"; + + + + public ZebliCalquePersist(String directoryPath_, Map parameters) throws IOException { + this.directoryPath_ = directoryPath_; + parameters_ = parameters; + } + + + + /** + * Recupere le parser adequat. + * @return + */ + private XStream getParser(){ + if(parser_==null) + parser_=initXmlParser(); + return parser_; + } + + /** + * Init le parser avec les alias adequats. + * @return + */ + private XStream initXmlParser(){ + XStream xstream = new XStream(new DomDriver()); + //-- creation des alias pour que ce soit + parlant dans le xml file --// + xstream.alias("Groupe", EGGroupPersist.class); + + return xstream; + } + + + /** + * Retourne le path vers le fiochier principal des courbes + * @return + */ + private String getMainFilePath(){ + return directoryPath_+File.separator+MAINFILE; + } + + + /** + * Retourne le chemin vers le fichier de datats specifiques. + * @return + */ + private String getSpecifiqueDataFilePath(){ + return directoryPath_+File.separator+SPECIFIQUEFILE; + } + + /** + * Enrtegistre le calque au format persistant xml. + * + * @param parameters + * des parametres supplementaires utiles. + * @throws IOException + */ + public void savePersitCalqueXml(ZEbliCalquesPanel panelTopersist) { + + // -- etape 1: on sauvegarde les datas du panel au format zip dans le main + // path principale --// + panelTopersist.saveCalque(new File(getMainFilePath())); + + // -- etape 2: data specifiques --// + + // on sauvegarde l'instance de la classe zebli pour pouvoir la rejouer par + // la suite + + } + + /** + * Methode qui remplit le panel fournit en parametre avec les donn\xE9es + * sauvegardees. + * + * @param panelToFill + */ + public ZEbliCalquesPanel loadPersitCalqueXml(CtuluUI ui) { + + // -- Init: on init la creation du zeblicalquePanel avec l'ui + ZEbliCalquesPanel newPanel = new ZEbliCalquesPanel(ui); + + // -- etape 1 on lit les donn\xE9es sp\xE9cifiques pour conn\xE2itre le type d'objet + // \xE0 cr\xE9er --// + + // -- etape 2: on lit les donn\xE9es zip et on remplit dans le calque + // pr\xE9alablement cr\xE9\xE9 + newPanel.loadCalque(new File(getMainFilePath()), parameters_); + + return newPanel; + } + + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZebliCalqueSaver.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZebliCalqueSaver.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZebliCalqueSaver.java 2008-10-15 09:34:59 UTC (rev 4062) @@ -0,0 +1,35 @@ +package org.fudaa.ebli.calque; + +import java.io.File; +import java.util.Map; + + +/** + * Interface utilis\xE9e par le ZebliCalquePanel poru gerer sa persistance + * + * @author Adrien Hadoux + * + */ +public interface ZebliCalqueSaver { + + /** + * Methode qui permet de sauver un calque dans le fichier sp\xE9cifi\xE9. Cette + * methode doit etre overrid\xE9 a haut niveau (Fudaa) dans les classes + * h\xE9riti\xE8res de zebliCalquePanel + * + * @param f + */ + public void saveCalque(File f); + + /** + * Methode qui permet de charger un un calque a partir des donn\xE9es de ce + * fichier. Cette methode doit etre overrid\xE9 a haut niveau (Fudaa) dans les + * classes h\xE9riti\xE8res de zebliCalquePanel + * + * @param f + * @return + */ + public void loadCalque(File f, Map params); + + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |