Source code: com/diaam/lgpl/ts/ActionSauvegarde.java
1 /*
2 * $Log: ActionSauvegarde.java,v $
3 * Revision 1.1 2000/11/10 15:31:30 vonarnim
4 * - deplacement (et nouvelle version) de TerminalStandard dans ctulu
5 *
6 * Revision 1.1 1999/11/25 12:28:22 Herve_AGNOUX
7 * Initial revision
8 *
9 */
10 /*
11 -- TerminalStandard v111999
12
13 Fichier : TerminalStandard.java
14 Auteur : Hervé AGNOUX, hagnoux@mail.club-internet.fr
15 License LGPL.
16 */
17 package com.diaam.lgpl.ts;
18
19 import java.awt.event.ActionEvent;
20 import java.io.File;
21 import java.io.FileWriter;
22 import java.io.IOException;
23
24 import javax.swing.text.BadLocationException;
25 import javax.swing.text.Document;
26
27 /**
28 * Pour proposer à l'utilisateur une sauvegarde d'un document ShSh.
29 * Pour l'utilisation, voir la doc de swing. Cette classe n'est pas
30 * trés élaborée, mais c'est pas grave. Cela viendra plus tard.
31 * @author <a href="h_agnoux.html">Hervé AGNOUX</a>,
32 * hagnoux@mail.club-internet.fr
33 * @version 111999
34 */
35 public class ActionSauvegarde extends javax.swing.AbstractAction
36 {
37 /**
38 * Le fichier de sauvegarde par défaut est "log.txt".
39 */
40 public File fichierDeSauvegarde = new File("log.txt");
41
42 private ShSh monShell;
43 private Exception pasDeBol;
44
45 /**
46 * @param shell le ShSh dont il faudra sauvegarder le document.
47 */
48 public ActionSauvegarde(ShSh shell)
49 {
50 this(shell, "Sauvegarde");
51 }
52
53 /**
54 * @param shell le ShSh dont il faudra sauvegarder le document.
55 * @param name le nom de l'action que l'on veut voir à l'écran.
56 */
57 public ActionSauvegarde(ShSh shell, String name)
58 {
59 super(name);
60 monShell = shell;
61 }
62
63 /**
64 * L'action se déclenche ! Elle ne fait rien de mal : elle sauvegarde
65 * le contenu du document dans un fichier texte, c'est tout.
66 * @param ae RAS. (non utilisé)
67 */
68 public void actionPerformed(ActionEvent ae)
69 {
70 pasDeBol = null;
71 try
72 {
73 FileWriter fw;
74
75 fw = null;
76 try
77 {
78 Document d;
79 String s;
80
81 d = monShell.getDocument();
82 s = d.getText(0, d.getLength());
83 fw = new FileWriter(fichierDeSauvegarde);
84 fw.write(s);
85 }
86 finally
87 {
88 if (fw != null)
89 fw.close();
90 }
91 }
92 catch (IOException ioe)
93 {
94 pasDeBol = ioe;
95 }
96 catch (BadLocationException ble)
97 {
98 pasDeBol = ble;
99 }
100 }
101
102 /**
103 * En cas que actionPerformed se passe mal, l'appli pourra
104 * trouver ici l'exception dénonciatrice. (A mon avis ça ne sert à rien)
105 * @return le blême.
106 */
107 public Exception gargl()
108 {
109 return pasDeBol;
110 }
111 }
112