Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: jaxe/elements/JEEquation.java


1   /*
2   Jaxe - Editeur XML en Java
3   
4   Copyright (C) 2003 Observatoire de Paris-Meudon
5   
6   Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier conformément aux dispositions de la Licence Publique Générale GNU, telle que publiée par la Free Software Foundation ; version 2 de la licence, ou encore (à votre choix) toute version ultérieure.
7   
8   Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION A UN OBJET PARTICULIER. Pour plus de détail, voir la Licence Publique Générale GNU .
9   
10  Vous devez avoir reçu un exemplaire de la Licence Publique Générale GNU en même temps que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation Inc., 675 Mass Ave, Cambridge, MA 02139, Etats-Unis.
11  */
12  
13  package jaxe.elements;
14  
15  import jaxe.equations.DialogueEquation;
16  import jaxe.JaxeDocument;
17  import jaxe.JaxeElement;
18  import jaxe.JaxeResourceBundle;
19  
20  import java.io.File;
21  import javax.swing.JFrame;
22  import javax.swing.JOptionPane;
23  import javax.swing.text.Position;
24  
25  import org.w3c.dom.*;
26  
27  
28  /**
29   * Equation
30   * Type d'élément Jaxe: 'equation'
31   * paramètre: texteAtt: le nom de l'attribut donnant le texte de l'équation
32   * paramètre: srcAtt: le nom de l'attribut donnant le nom de l'image
33   */
34  public class JEEquation extends JEFichier {
35  
36      public final static String defTexteAtt = "texte";
37      
38      public JEEquation(JaxeDocument doc) {
39          super(doc);
40          alignementY = (float)0.5;
41      }
42  
43      public void init(Position pos, Node noeud) {
44          // l'image est créée si elle n'existe pas
45          // (elle peut avoir été effacée lors d'un couper-coller)
46          Element el = (Element)noeud;
47          Element defbalise = doc.cfg.getBaliseDef(el.getTagName());
48          File fimg;
49          srcAttr = doc.cfg.getParamFromDefinition(defbalise, "srcAtt", defaultSrcAttr);
50          String nomf = el.getAttribute(srcAttr);
51          if (doc.fsave == null)
52              fimg = new File(nomf);
53          else
54              fimg = new File(doc.fsave.getParent() + File.separatorChar + nomf);
55          if (!fimg.exists()) {
56              String texteAtt = doc.cfg.getParamFromDefinition(defbalise, "texteAtt", defTexteAtt);
57              String texteEquation = el.getAttribute(texteAtt);
58              String nomImage = DialogueEquation.creerImage(texteEquation, fimg.getPath(), doc);
59              el.setAttribute(srcAttr, nomImage);
60          }
61          super.init(pos, noeud);
62      }
63      
64      public Element nouvelElement(Element defbalise) {
65          if (doc.fsave == null) {
66              JOptionPane.showMessageDialog(doc.jframe,
67                  JaxeResourceBundle.getRB().getString("equation.SauverAvant"),
68                  JaxeResourceBundle.getRB().getString("erreur.Erreur"), JOptionPane.ERROR_MESSAGE);
69              return(null);
70          }
71          String nombalise = doc.cfg.nomBalise(defbalise);
72          
73          srcAttr = doc.cfg.getParamFromDefinition(defbalise, "srcAtt", defaultSrcAttr);
74          String texteAtt = doc.cfg.getParamFromDefinition(defbalise, "texteAtt", defTexteAtt);
75          
76          Element newel = nouvelElementDOM(doc, nombalise);
77          
78          DialogueEquation dlg = new DialogueEquation(doc, "", null);
79          if (!dlg.afficher())
80              return null;
81          String texte = dlg.getTexte();
82          String nomImage = dlg.getImage();
83          
84          try {
85              newel.setAttribute(texteAtt, texte);
86              newel.setAttribute(srcAttr, nomImage);
87          } catch (DOMException ex) {
88              System.err.println("DOMException: " + ex.getMessage());
89              return null;
90          }
91  
92          return(newel);
93      }
94      
95      public void afficherDialogue(JFrame jframe) {
96          Element el = (Element)noeud;
97  
98          Element defbalise = doc.cfg.getBaliseDef(el.getTagName());
99          String texteAtt = doc.cfg.getParamFromDefinition(defbalise, "texteAtt", defTexteAtt);
100         String texteEquation = el.getAttribute(texteAtt);
101         String nomImage = el.getAttribute(srcAttr);
102         DialogueEquation dlg = new DialogueEquation(doc, texteEquation, nomImage);
103         if (!dlg.afficher())
104             return;
105         texteEquation = dlg.getTexte();
106         nomImage = dlg.getImage();
107         
108         try {
109             el.setAttribute(texteAtt, texteEquation);
110             el.setAttribute(srcAttr, nomImage);
111         } catch (DOMException ex) {
112             System.err.println("DOMException: " + ex.getMessage());
113             return;
114         }
115         
116         majAffichage();
117     }
118     
119     public void effacer() {
120         File fimg;
121         String nomf = ((Element)noeud).getAttribute(srcAttr);
122         if (doc.fsave == null)
123             fimg = new File(nomf);
124         else
125             fimg = new File(doc.fsave.getParent() + File.separatorChar + nomf);
126         if (fimg.exists() && fimg.isFile())
127             fimg.delete();
128     }
129 }