Statistiques
| Révision :

root / tmp / org.txm.analec.rcp / src / visuAnalec / VisuMain.java @ 2394

Historique | Voir | Annoter | Télécharger (16,36 ko)

1 481 mdecorde
package visuAnalec;
2 481 mdecorde
3 481 mdecorde
/**
4 481 mdecorde
 *
5 481 mdecorde
 * @author bernard
6 481 mdecorde
 */
7 481 mdecorde
import javax.swing.*;
8 481 mdecorde
import java.awt.event.*;
9 481 mdecorde
import java.awt.*;
10 481 mdecorde
import java.io.*;
11 481 mdecorde
import visuAnalec.Message.*;
12 481 mdecorde
import visuAnalec.chaines.*;
13 481 mdecorde
import visuAnalec.donnees.*;
14 481 mdecorde
import visuAnalec.fichiers.*;
15 481 mdecorde
import visuAnalec.statistiques.*;
16 481 mdecorde
import visuAnalec.util.*;
17 481 mdecorde
import visuAnalec.util.GMessages.*;
18 481 mdecorde
import visuAnalec.vue.*;
19 481 mdecorde
import visuAnalec.vue.Vue.*;
20 481 mdecorde
21 481 mdecorde
@SuppressWarnings("serial")
22 481 mdecorde
public class VisuMain extends JFrame implements VueListener {
23 481 mdecorde
  private Corpus corpus;
24 481 mdecorde
  private Vue vue;
25 481 mdecorde
  private PanneauEditeur panneauEditeur;
26 481 mdecorde
  private String nomCorpus = "";
27 481 mdecorde
  private String nomVue = "";
28 481 mdecorde
  private static String[] args;
29 481 mdecorde
  VisuMain() {
30 481 mdecorde
    super();
31 481 mdecorde
    corpus = new Corpus();
32 481 mdecorde
    vue = new Vue(corpus);
33 481 mdecorde
    panneauEditeur = new PanneauEditeur(vue);
34 481 mdecorde
    vue.addEventListener(this);
35 481 mdecorde
    // Cadre global de la fenêtre
36 481 mdecorde
    setContentPane(panneauEditeur);
37 481 mdecorde
    // Menus
38 481 mdecorde
    JMenuBar menuBar = new JMenuBar();
39 481 mdecorde
    setJMenuBar(menuBar);
40 481 mdecorde
41 481 mdecorde
    // Menu corpus
42 481 mdecorde
    JMenu corpusMenu = new JMenu("Documents");
43 481 mdecorde
    corpusMenu.setMnemonic(KeyEvent.VK_D);
44 481 mdecorde
    menuBar.add(corpusMenu);
45 481 mdecorde
    corpusMenu.add(new GAction("Ouvrir...") {
46 481 mdecorde
      public void executer() {
47 481 mdecorde
        if (!sauvegarde()) return;
48 481 mdecorde
        corpus.fermer();
49 481 mdecorde
        FichiersJava.ouvrirCorpusVue(corpus, vue, "");
50 481 mdecorde
        //       System.out.println(corpus.getStructure());
51 481 mdecorde
      }
52 481 mdecorde
    });
53 481 mdecorde
    JMenuItem item;
54 481 mdecorde
    corpusMenu.add(item = new JMenuItem(new GAction("Enregistrer") {
55 481 mdecorde
      public void executer() {
56 481 mdecorde
        if (corpus.isVide()) return;
57 481 mdecorde
        if (!nomCorpus.isEmpty()) {
58 481 mdecorde
          File fichier = Fichiers.getFichierCourant(Fichiers.TypeFichier.DOC_ANALEC);
59 481 mdecorde
          if (FichiersJava.enregistrerCorpus(corpus, fichier)) setTitre();
60 481 mdecorde
        } else if (FichiersJava.enregistrerCorpusSous(corpus)) {
61 481 mdecorde
          nomCorpus = Fichiers.getNomFichierCourant(Fichiers.TypeFichier.DOC_ANALEC);
62 481 mdecorde
          setTitre();
63 481 mdecorde
        }
64 481 mdecorde
      }
65 481 mdecorde
    }));
66 481 mdecorde
    corpusMenu.add(new GAction("Enregistrer sous...") {
67 481 mdecorde
      public void executer() {
68 481 mdecorde
        if (FichiersJava.enregistrerCorpusSous(corpus)) {
69 481 mdecorde
          nomCorpus = Fichiers.getNomFichierCourant(Fichiers.TypeFichier.DOC_ANALEC);
70 481 mdecorde
          setTitre();
71 481 mdecorde
        }
72 481 mdecorde
      }
73 481 mdecorde
    });
74 481 mdecorde
    corpusMenu.add(new GAction("Fermer") {
75 481 mdecorde
      public void executer() {
76 481 mdecorde
        if (!sauvegarde()) return;
77 481 mdecorde
        corpus.fermer();
78 481 mdecorde
      }
79 481 mdecorde
    });
80 481 mdecorde
    corpusMenu.insertSeparator(corpusMenu.getMenuComponentCount());
81 481 mdecorde
    corpusMenu.add(new GAction("Fusionner des annotations") {
82 481 mdecorde
      public void executer() {
83 481 mdecorde
        if (!sauvegarde()) return;
84 481 mdecorde
        FichiersJava.fusionnerAnnot(corpus);
85 481 mdecorde
      }
86 481 mdecorde
    });
87 481 mdecorde
    corpusMenu.add(new GAction("Concaténer deux documents") {
88 481 mdecorde
      public void executer() {
89 481 mdecorde
        if (!sauvegarde()) return;
90 481 mdecorde
        FichiersJava.concatenerDocuments(corpus);
91 481 mdecorde
      }
92 481 mdecorde
    });
93 481 mdecorde
    corpusMenu.add(new GAction("Concaténer un corpus") {
94 481 mdecorde
      public void executer() {
95 481 mdecorde
        if (!sauvegarde()) return;
96 481 mdecorde
        corpus.fermer();
97 481 mdecorde
        FichiersJava.concatenerCorpus(corpus);
98 481 mdecorde
      }
99 481 mdecorde
    });
100 481 mdecorde
    corpusMenu.add(new GAction("Extraire un type d'un corpus") {
101 481 mdecorde
      public void executer() {
102 481 mdecorde
        if (!sauvegarde()) return;
103 481 mdecorde
        String type = JOptionPane.showInputDialog("Nom du type d'unité à extraire");
104 481 mdecorde
        if (type==null) return;
105 481 mdecorde
        corpus.fermer();
106 481 mdecorde
        FichiersJava.extraireTypeCorpus(type, corpus);
107 481 mdecorde
      }
108 481 mdecorde
    });
109 481 mdecorde
    corpusMenu.insertSeparator(corpusMenu.getMenuComponentCount());
110 481 mdecorde
    corpusMenu.add(new GAction("Importer du texte brut...") {
111 481 mdecorde
      public void executer() {
112 481 mdecorde
        if (!sauvegarde()) return;
113 481 mdecorde
        int rep = 0;
114 481 mdecorde
        if (!corpus.getStructure().isVide()) {
115 481 mdecorde
          rep = JOptionPane.showOptionDialog(null, "Utiliser la structure actuelle pour le nouveau document ?",
116 481 mdecorde
                  "Structure déjà présente", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,
117 481 mdecorde
                  null, new Object[]{"Oui", "Non", "Annuler"}, "Oui");
118 481 mdecorde
          if (rep==2) return;
119 481 mdecorde
        }
120 481 mdecorde
        if (rep==0) corpus.fermerConserverStructure();
121 481 mdecorde
        else corpus.fermer();
122 481 mdecorde
        FichiersTexte.importerTexte(corpus);
123 481 mdecorde
      }
124 481 mdecorde
    });
125 481 mdecorde
    corpusMenu.add(new GAction("Importer des données Excel...") {
126 481 mdecorde
      public void executer() {
127 481 mdecorde
        if (!sauvegarde()) return;
128 481 mdecorde
        corpus.fermer();
129 481 mdecorde
        FichiersTableur.importerExcel(corpus);
130 481 mdecorde
      }
131 481 mdecorde
    });
132 481 mdecorde
    corpusMenu.add(new GAction("Importer des données Syntex...") {
133 481 mdecorde
      public void executer() {
134 481 mdecorde
        if (!sauvegarde()) return;
135 481 mdecorde
        corpus.fermer();
136 481 mdecorde
        FichiersSyntex.importerSyntex(corpus);
137 481 mdecorde
      }
138 481 mdecorde
    });
139 481 mdecorde
    corpusMenu.add(new GAction("Importer des données Glozz...") {
140 481 mdecorde
      public void executer() {
141 481 mdecorde
        if (!sauvegarde()) return;
142 481 mdecorde
        corpus.fermer();
143 481 mdecorde
        FichiersGlozz.importerGlozz(corpus);
144 481 mdecorde
      }
145 481 mdecorde
    });
146 481 mdecorde
    corpusMenu.add(new GAction("Exporter des données Glozz...") {
147 481 mdecorde
      public void executer() {
148 481 mdecorde
        FichiersGlozz.exporterGlozz(corpus);
149 481 mdecorde
      }
150 481 mdecorde
    });
151 481 mdecorde
    corpusMenu.add(new GAction("Convertir un corpus Glozz...") {
152 481 mdecorde
      public void executer() {
153 481 mdecorde
        if (!sauvegarde()) return;
154 481 mdecorde
        corpus.fermer();
155 481 mdecorde
        FichiersGlozz.convertirCorpusGlozz(corpus);
156 481 mdecorde
      }
157 481 mdecorde
    });
158 481 mdecorde
   corpusMenu.add(new GAction("Exporter un corpus TEI...") {
159 481 mdecorde
      public void executer() {
160 481 mdecorde
        if (!sauvegarde()) return;
161 481 mdecorde
        corpus.fermer();
162 481 mdecorde
        FichiersTEI.exporterCorpusTEI(corpus);
163 481 mdecorde
      }
164 481 mdecorde
    });
165 481 mdecorde
   corpusMenu.add(new GAction("Convertir un corpus TEI...") {
166 481 mdecorde
      public void executer() {
167 481 mdecorde
        if (!sauvegarde()) return;
168 481 mdecorde
        corpus.fermer();
169 481 mdecorde
        FichiersTEI.convertirCorpusTEI(corpus);
170 481 mdecorde
     }
171 481 mdecorde
    });
172 481 mdecorde
    corpusMenu.insertSeparator(corpusMenu.getMenuComponentCount());
173 481 mdecorde
    corpusMenu.add(new GAction("Quitter") {
174 481 mdecorde
      public void executer() {
175 481 mdecorde
        fermerFenetre();
176 481 mdecorde
      }
177 481 mdecorde
    });
178 481 mdecorde
179 481 mdecorde
    // Menu structure
180 481 mdecorde
    JMenu structureMenu = new JMenu("Structure");
181 481 mdecorde
    structureMenu.setMnemonic(KeyEvent.VK_S);
182 481 mdecorde
    menuBar.add(structureMenu);
183 481 mdecorde
    structureMenu.add(new GAction("Gestion de la structure...") {
184 481 mdecorde
      public void executer() {
185 481 mdecorde
        VisuStructure visuStructure = VisuStructure.newVisuStructure(getContentPane(), corpus);
186 481 mdecorde
        visuStructure.setExtendedState(NORMAL);
187 481 mdecorde
        visuStructure.setVisible(true);
188 481 mdecorde
        visuStructure.agencer();
189 481 mdecorde
      }
190 481 mdecorde
    });
191 481 mdecorde
    structureMenu.add(new GAction("Ouvrir...") {
192 481 mdecorde
      public void executer() {
193 481 mdecorde
        if (!fusionStructure()) return;
194 481 mdecorde
        FichiersJava.ouvrirStructure(corpus);
195 481 mdecorde
      }
196 481 mdecorde
    });
197 481 mdecorde
    structureMenu.add(item = new JMenuItem(new GAction("Enregistrer...") {
198 481 mdecorde
      public void executer() {
199 481 mdecorde
        FichiersJava.enregistrerStructure(corpus);
200 481 mdecorde
        setTitre();
201 481 mdecorde
      }
202 481 mdecorde
    }));
203 481 mdecorde
    structureMenu.add(new GAction("Importer un modèle Glozz...") {
204 481 mdecorde
      public void executer() {
205 481 mdecorde
        if (!fusionStructure()) return;
206 481 mdecorde
        FichiersGlozz.importerModeleGlozz(corpus);
207 481 mdecorde
        //       System.out.println(corpus.getStructure());
208 481 mdecorde
      }
209 481 mdecorde
    });
210 481 mdecorde
    structureMenu.add(new GAction("Exporter un modèle Glozz...") {
211 481 mdecorde
      public void executer() {
212 481 mdecorde
        FichiersGlozz.exporterModeleGlozz(corpus.getStructure());
213 481 mdecorde
      }
214 481 mdecorde
    });
215 481 mdecorde
216 481 mdecorde
    // Menu vue
217 481 mdecorde
    JMenu vueMenu = new JMenu("Vue");
218 481 mdecorde
    menuBar.add(vueMenu);
219 481 mdecorde
    vueMenu.add(new GAction("Gestion de la vue...") {
220 481 mdecorde
      public void executer() {
221 481 mdecorde
        VisuVue.newVisuVue(getContentPane(), vue);
222 481 mdecorde
      }
223 481 mdecorde
    });
224 481 mdecorde
    vueMenu.add(new GAction("Ouvrir (.ecv)...") {
225 481 mdecorde
      public void executer() {
226 481 mdecorde
        FichiersJava.ouvrirVue(vue);
227 481 mdecorde
      }
228 481 mdecorde
    });
229 481 mdecorde
    vueMenu.add(new GAction("Enregistrer (.ecv)...") {
230 481 mdecorde
      public void executer() {
231 481 mdecorde
        if (FichiersJava.enregistrerVue(vue)) {
232 481 mdecorde
          nomVue = Fichiers.getNomFichierCourant(Fichiers.TypeFichier.VUE);
233 481 mdecorde
          setTitre();
234 481 mdecorde
        }
235 481 mdecorde
      }
236 481 mdecorde
    });
237 481 mdecorde
    vueMenu.add(new GAction("Rétablir la vue par défaut") {
238 481 mdecorde
      public void executer() {
239 481 mdecorde
        nomVue = "";
240 481 mdecorde
        vue.retablirVueParDefaut();
241 481 mdecorde
      }
242 481 mdecorde
    });
243 481 mdecorde
244 481 mdecorde
    // Menu texte
245 481 mdecorde
    JMenu texteMenu = new JMenu("Texte");
246 481 mdecorde
    texteMenu.setMnemonic(KeyEvent.VK_T);
247 481 mdecorde
    menuBar.add(texteMenu);
248 481 mdecorde
    texteMenu.add(new GAction("Modifier le texte") {
249 481 mdecorde
      public void executer() {
250 481 mdecorde
        panneauEditeur.initModifierTexte();
251 481 mdecorde
      }
252 481 mdecorde
    });
253 481 mdecorde
    texteMenu.insertSeparator(texteMenu.getMenuComponentCount());
254 481 mdecorde
    texteMenu.add(item = new JMenuItem(new GAction("Rechercher...") {
255 481 mdecorde
      public void executer() {
256 481 mdecorde
        panneauEditeur.initRechercherTexte();
257 481 mdecorde
      }
258 481 mdecorde
    }));
259 481 mdecorde
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, ActionEvent.CTRL_MASK));
260 481 mdecorde
    texteMenu.add(item = new JMenuItem(new GAction("Suivant") {
261 481 mdecorde
      public void executer() {
262 481 mdecorde
        panneauEditeur.rechercherSuivantTexte();
263 481 mdecorde
      }
264 481 mdecorde
    }));
265 481 mdecorde
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, ActionEvent.CTRL_MASK));
266 481 mdecorde
    texteMenu.insertSeparator(texteMenu.getMenuComponentCount());
267 481 mdecorde
    texteMenu.add(new GAction("Style du document...") {
268 481 mdecorde
      public void executer() {
269 481 mdecorde
        panneauEditeur.saisirStyleTexte(vue);
270 481 mdecorde
      }
271 481 mdecorde
    });
272 481 mdecorde
    texteMenu.add(new GAction("Exporter format RTF...") {
273 481 mdecorde
      public void executer() {
274 481 mdecorde
        FichiersTexte.exporterTexteRTF(panneauEditeur);
275 481 mdecorde
      }
276 481 mdecorde
    });
277 481 mdecorde
    texteMenu.add(new GAction("Exporter format HTML...") {
278 481 mdecorde
      public void executer() {
279 481 mdecorde
        FichiersTexte.exporterTexteHTML(panneauEditeur);
280 481 mdecorde
      }
281 481 mdecorde
    });
282 481 mdecorde
283 481 mdecorde
284 481 mdecorde
    // Menu unités
285 481 mdecorde
    JMenu unitesMenu = new JMenu("Unités");
286 481 mdecorde
    unitesMenu.setMnemonic(KeyEvent.VK_U);
287 481 mdecorde
    menuBar.add(unitesMenu);
288 481 mdecorde
    unitesMenu.add(new GAction("Gestion des unités") {
289 481 mdecorde
      public void executer() {
290 481 mdecorde
        panneauEditeur.initGestionUnites();
291 481 mdecorde
      }
292 481 mdecorde
    });
293 481 mdecorde
    unitesMenu.add(new GAction("Création d'unités typographiques") {
294 481 mdecorde
      public void executer() {
295 481 mdecorde
        GMessages.pasImplemente();
296 481 mdecorde
      }
297 481 mdecorde
    });
298 481 mdecorde
    unitesMenu.add(new GAction("Création d'unités de constituance") {
299 481 mdecorde
      public void executer() {
300 481 mdecorde
        GMessages.pasImplemente();
301 481 mdecorde
      }
302 481 mdecorde
    });
303 481 mdecorde
304 481 mdecorde
    // Menu relations
305 481 mdecorde
    JMenu relationsMenu = new JMenu("Relations");
306 481 mdecorde
    relationsMenu.setMnemonic(KeyEvent.VK_R);
307 481 mdecorde
    relationsMenu.setMnemonic(KeyEvent.VK_R);
308 481 mdecorde
    menuBar.add(relationsMenu);
309 481 mdecorde
    relationsMenu.add(new GAction("Gestion des relations") {
310 481 mdecorde
      public void executer() {
311 481 mdecorde
        panneauEditeur.initGestionRelations();
312 481 mdecorde
      }
313 481 mdecorde
    });
314 481 mdecorde
    relationsMenu.add(new GAction("Visualisation d'arborescences") {
315 481 mdecorde
      public void executer() {
316 481 mdecorde
        GMessages.pasImplemente();
317 481 mdecorde
      }
318 481 mdecorde
    });
319 481 mdecorde
    relationsMenu.add(new GAction("Saisie d'arborescences") {
320 481 mdecorde
      public void executer() {
321 481 mdecorde
        GMessages.pasImplemente();
322 481 mdecorde
      }
323 481 mdecorde
    });
324 481 mdecorde
    relationsMenu.add(new GAction("Création d'arborescences") {
325 481 mdecorde
      public void executer() {
326 481 mdecorde
        GMessages.pasImplemente();
327 481 mdecorde
      }
328 481 mdecorde
    });
329 481 mdecorde
330 481 mdecorde
    // Menu schémas
331 481 mdecorde
    JMenu schemasMenu = new JMenu("Schémas");
332 481 mdecorde
    schemasMenu.setMnemonic(KeyEvent.VK_H);
333 481 mdecorde
    menuBar.add(schemasMenu);
334 481 mdecorde
    schemasMenu.add(new GAction("Gestion des schémas") {
335 481 mdecorde
      public void executer() {
336 481 mdecorde
        panneauEditeur.initGestionSchemas();
337 481 mdecorde
      }
338 481 mdecorde
    });
339 481 mdecorde
    schemasMenu.add(new GAction("Création de schémas à partir des annotations") {
340 481 mdecorde
      public void executer() {
341 481 mdecorde
        new VisuConversion(getContentPane(), vue, panneauEditeur);
342 481 mdecorde
      }
343 481 mdecorde
    });
344 481 mdecorde
    schemasMenu.add(new GAction("Visualisation de la suite d'occurences") {
345 481 mdecorde
      public void executer() {
346 481 mdecorde
        new VisuChaines(getContentPane(), vue, panneauEditeur);
347 481 mdecorde
      }
348 481 mdecorde
    });
349 481 mdecorde
    schemasMenu.add(new GAction("Visualisation des chaines de coréférences") {
350 481 mdecorde
      public void executer() {
351 481 mdecorde
        new VisuCoref(getContentPane(), vue, panneauEditeur);
352 481 mdecorde
      }
353 481 mdecorde
    });
354 481 mdecorde
    schemasMenu.add(new GAction("Statistique Générale") {
355 481 mdecorde
      public void executer() {
356 481 mdecorde
        new VisuStatGenerale(getContentPane(), vue, panneauEditeur);
357 481 mdecorde
      }
358 481 mdecorde
    });
359 481 mdecorde
360 481 mdecorde
    // Menu règles
361 481 mdecorde
    JMenu reglesMenu = new JMenu("Règles");
362 481 mdecorde
    reglesMenu.setMnemonic(KeyEvent.VK_G);
363 481 mdecorde
    menuBar.add(reglesMenu);
364 481 mdecorde
365 481 mdecorde
    // Menu Stats
366 481 mdecorde
    JMenu statsMenu = new JMenu("Statistiques");
367 481 mdecorde
    statsMenu.setMnemonic(KeyEvent.VK_A);
368 481 mdecorde
    menuBar.add(statsMenu);
369 481 mdecorde
    statsMenu.add(new GAction("Fréquences...") {
370 481 mdecorde
      public void executer() {
371 481 mdecorde
        new VisuStatsFrequences(getContentPane(), vue, panneauEditeur);
372 481 mdecorde
      }
373 481 mdecorde
    });
374 481 mdecorde
    statsMenu.add(new GAction("Corrélations...") {
375 481 mdecorde
      public void executer() {
376 481 mdecorde
        new VisuStatsCorrelations(getContentPane(), vue, panneauEditeur);
377 481 mdecorde
      }
378 481 mdecorde
    });
379 481 mdecorde
    statsMenu.add(new GAction("Représentations géométriques...") {
380 481 mdecorde
      @SuppressWarnings("ResultOfObjectAllocationIgnored")
381 481 mdecorde
      public void executer() {
382 481 mdecorde
        new VisuStatsGeometrie(getContentPane(), vue, panneauEditeur);
383 481 mdecorde
      }
384 481 mdecorde
    });
385 481 mdecorde
    // Fermeture de la fenêtre
386 481 mdecorde
    setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
387 481 mdecorde
    addWindowListener(new WindowAdapter() {
388 481 mdecorde
      @Override
389 481 mdecorde
      public void windowClosing(WindowEvent evt) {
390 481 mdecorde
        fermerFenetre();
391 481 mdecorde
      }
392 481 mdecorde
    });
393 481 mdecorde
394 481 mdecorde
  }
395 481 mdecorde
  public void premierPlan() {
396 481 mdecorde
    if ((getExtendedState()&Frame.ICONIFIED)>0) {
397 481 mdecorde
      setExtendedState(getExtendedState()&~Frame.ICONIFIED);
398 481 mdecorde
    }
399 481 mdecorde
    toFront();
400 481 mdecorde
401 481 mdecorde
  }
402 481 mdecorde
  private void fermerFenetre() {
403 481 mdecorde
    if (sauvegarde()) System.exit(0);
404 481 mdecorde
  }
405 481 mdecorde
  boolean sauvegarde() {
406 481 mdecorde
    if (!corpus.isModifie()) return true;
407 481 mdecorde
    int rep = JOptionPane.showOptionDialog(this, "Sauvegarder le document en cours ?",
408 481 mdecorde
            "Document modifié", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,
409 481 mdecorde
            null, new Object[]{"Oui", "Non", "Annuler"}, "Non");
410 481 mdecorde
    if (rep==2) {
411 481 mdecorde
      return false;
412 481 mdecorde
    }
413 481 mdecorde
    if (rep==0) {
414 481 mdecorde
      FichiersJava.enregistrerCorpusSous(corpus);
415 481 mdecorde
    }
416 481 mdecorde
    return true;
417 481 mdecorde
  }
418 481 mdecorde
  boolean fusionStructure() {
419 481 mdecorde
    if (corpus.getStructure().isVide()) return true;
420 481 mdecorde
    int rep = JOptionPane.showOptionDialog(this, "La nouvelle structure va être fusionnée avec la structure courante",
421 481 mdecorde
            "Structure déjà présente", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,
422 481 mdecorde
            null, new Object[]{"Poursuivre", "Annuler"}, "Poursuivre");
423 481 mdecorde
    return rep==0;
424 481 mdecorde
  }
425 481 mdecorde
  public void traiterEvent(Message evt) {
426 481 mdecorde
    switch (evt.getType()) {
427 481 mdecorde
      case CLEAR_CORPUS:
428 481 mdecorde
        nomCorpus = "";
429 481 mdecorde
        Fichiers.removeFichierCourant(Fichiers.TypeFichier.DOC_ANALEC);
430 481 mdecorde
        setTitre();
431 481 mdecorde
        return;
432 481 mdecorde
      case NEW_CORPUS:
433 481 mdecorde
        nomCorpus = Fichiers.getNomFichierCourant(Fichiers.TypeFichier.DOC_ANALEC);
434 481 mdecorde
        setTitre();
435 481 mdecorde
        return;
436 481 mdecorde
      case CORPUS_SAVED:
437 481 mdecorde
          return;
438 481 mdecorde
      case MODIF_VUE:
439 481 mdecorde
        switch (((VueEvent) evt).getModif()) {
440 481 mdecorde
          case VUE_DEFAUT:
441 481 mdecorde
            nomVue = "";
442 481 mdecorde
            setTitre();
443 481 mdecorde
            return;
444 481 mdecorde
          case NEW_VUE:
445 481 mdecorde
            nomVue = Fichiers.getNomFichierCourant(Fichiers.TypeFichier.VUE);
446 481 mdecorde
            setTitre();
447 481 mdecorde
            return;
448 481 mdecorde
          case EXTRACTION:
449 481 mdecorde
            setTitre();
450 481 mdecorde
            return;
451 481 mdecorde
          default:
452 481 mdecorde
            throw new UnsupportedOperationException("Cas "+((VueEvent) evt).getModif()+" oublié dans un switch");
453 481 mdecorde
        }
454 481 mdecorde
      case MODIF_TEXTE:
455 481 mdecorde
      case MODIF_STRUCTURE:
456 481 mdecorde
      case MODIF_ELEMENT:
457 481 mdecorde
        setTitre();
458 481 mdecorde
        return;
459 481 mdecorde
      default:
460 481 mdecorde
        throw new UnsupportedOperationException("Cas "+evt.getType()+" oublié dans un switch");
461 481 mdecorde
    }
462 481 mdecorde
  }
463 481 mdecorde
  private void setTitre() {
464 481 mdecorde
    String titre = "Analec 1.4";
465 481 mdecorde
    if (!nomCorpus.isEmpty()) {
466 481 mdecorde
      titre += " : "+nomCorpus;
467 481 mdecorde
      if (corpus.isModifie()) titre += "*";
468 481 mdecorde
      if (nomVue.isEmpty()) {
469 481 mdecorde
        if (vue.isModifiee()) titre += " - vue modifiée*";
470 481 mdecorde
        else titre += " - vue par défaut";
471 481 mdecorde
      } else {
472 481 mdecorde
        titre += " - vue : "+nomVue;
473 481 mdecorde
        if (vue.isModifiee()) titre += "*";
474 481 mdecorde
      }
475 481 mdecorde
    }
476 481 mdecorde
    setTitle(titre);
477 481 mdecorde
  }
478 481 mdecorde
  public static void main(String[] args) {
479 481 mdecorde
    VisuMain.args = args;
480 481 mdecorde
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
481 481 mdecorde
      public void run() {
482 481 mdecorde
        try {
483 481 mdecorde
          // Fenêtre
484 481 mdecorde
          lancerVisuAnalec();
485 481 mdecorde
        } catch (Throwable ex) {
486 481 mdecorde
          GMessages.erreurFatale(ex);
487 481 mdecorde
        }
488 481 mdecorde
      }
489 481 mdecorde
    });
490 481 mdecorde
  }
491 481 mdecorde
//    try {
492 481 mdecorde
//      // Fenêtre
493 481 mdecorde
//      lancerVisuAnalec(args);
494 481 mdecorde
//    } catch (Throwable ex) {
495 481 mdecorde
//      GMessages.erreurFatale(ex);
496 481 mdecorde
//    }
497 481 mdecorde
//  }
498 481 mdecorde
  public static void lancerVisuAnalec() throws IOException, ClassNotFoundException {
499 481 mdecorde
    // Fenêtre
500 481 mdecorde
    VisuMain fenetre = new VisuMain();
501 481 mdecorde
    fenetre.setTitre();
502 481 mdecorde
    Rectangle rmax = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
503 481 mdecorde
    fenetre.setLocation(50, 50);
504 481 mdecorde
    fenetre.setSize(rmax.width-100, rmax.height-100);
505 481 mdecorde
    fenetre.setVisible(true);
506 481 mdecorde
    fenetre.panneauEditeur.agencerPanneaux();
507 481 mdecorde
    fenetre.traiterArguments(args);
508 481 mdecorde
//    System.out.println(fenetre.corpus.getStructure().toString());
509 481 mdecorde
//   new GMessages.GProgression(fenetre);
510 481 mdecorde
  }
511 481 mdecorde
  private void traiterArguments(String[] args) throws IOException, ClassNotFoundException {
512 481 mdecorde
    if (args.length==0) return;
513 481 mdecorde
    FichiersJava.ouvrirCorpusVue(corpus, vue, args[0]);
514 481 mdecorde
  }
515 481 mdecorde
}