Statistiques
| Révision :

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

Historique | Voir | Annoter | Télécharger (16,17 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 javax.swing.table.TableModel;
12 481 mdecorde
import visuAnalec.Message.*;
13 481 mdecorde
import visuAnalec.chaines.*;
14 481 mdecorde
import visuAnalec.donnees.*;
15 481 mdecorde
import visuAnalec.fichiers.*;
16 481 mdecorde
import visuAnalec.statistiques.*;
17 481 mdecorde
import visuAnalec.util.*;
18 481 mdecorde
import visuAnalec.util.GMessages.*;
19 481 mdecorde
import visuAnalec.vue.*;
20 481 mdecorde
import visuAnalec.vue.Vue.*;
21 481 mdecorde
22 481 mdecorde
@SuppressWarnings("serial")
23 481 mdecorde
public class VisuMain extends JFrame implements VueListener {
24 481 mdecorde
  private Corpus corpus;
25 481 mdecorde
  private Vue vue;
26 481 mdecorde
  private PanneauEditeur panneauEditeur;
27 481 mdecorde
  private String nomCorpus = "";
28 481 mdecorde
  private String nomVue = "";
29 481 mdecorde
  private static String[] args;
30 481 mdecorde
  VisuMain() {
31 481 mdecorde
    super();
32 481 mdecorde
    corpus = new Corpus();
33 481 mdecorde
    vue = new Vue(corpus);
34 481 mdecorde
    panneauEditeur = new PanneauEditeur(vue);
35 481 mdecorde
    vue.addEventListener(this);
36 481 mdecorde
    // Cadre global de la fenêtre
37 481 mdecorde
    setContentPane(panneauEditeur);
38 481 mdecorde
    // Menus
39 481 mdecorde
    JMenuBar menuBar = new JMenuBar();
40 481 mdecorde
    setJMenuBar(menuBar);
41 481 mdecorde
42 481 mdecorde
    // Menu corpus
43 481 mdecorde
    JMenu corpusMenu = new JMenu("Documents");
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.add(new GAction("Importer un document CoNLL...") {
173 481 mdecorde
      public void executer() {
174 481 mdecorde
        if (!sauvegarde()) return;
175 481 mdecorde
        corpus.fermer();
176 481 mdecorde
        FichiersCoNLL.importerCoNLL(corpus);
177 481 mdecorde
     }
178 481 mdecorde
    });
179 481 mdecorde
    corpusMenu.insertSeparator(corpusMenu.getMenuComponentCount());
180 481 mdecorde
    corpusMenu.add(new GAction("Quitter") {
181 481 mdecorde
      public void executer() {
182 481 mdecorde
        fermerFenetre();
183 481 mdecorde
      }
184 481 mdecorde
    });
185 481 mdecorde
186 481 mdecorde
    // Menu structure
187 481 mdecorde
    JMenu structureMenu = new JMenu("Structure");
188 481 mdecorde
    menuBar.add(structureMenu);
189 481 mdecorde
    structureMenu.add(new GAction("Gestion de la structure...") {
190 481 mdecorde
      public void executer() {
191 481 mdecorde
        VisuStructure visuStructure = VisuStructure.newVisuStructure(getContentPane(), corpus);
192 481 mdecorde
        visuStructure.setExtendedState(NORMAL);
193 481 mdecorde
        visuStructure.setVisible(true);
194 481 mdecorde
        visuStructure.agencer();
195 481 mdecorde
      }
196 481 mdecorde
    });
197 481 mdecorde
    structureMenu.add(new GAction("Ouvrir...") {
198 481 mdecorde
      public void executer() {
199 481 mdecorde
        if (!fusionStructure()) return;
200 481 mdecorde
        FichiersJava.ouvrirStructure(corpus);
201 481 mdecorde
      }
202 481 mdecorde
    });
203 481 mdecorde
    structureMenu.add(item = new JMenuItem(new GAction("Enregistrer...") {
204 481 mdecorde
      public void executer() {
205 481 mdecorde
        FichiersJava.enregistrerStructure(corpus);
206 481 mdecorde
        setTitre();
207 481 mdecorde
      }
208 481 mdecorde
    }));
209 481 mdecorde
    structureMenu.add(new GAction("Importer un modèle Glozz...") {
210 481 mdecorde
      public void executer() {
211 481 mdecorde
        if (!fusionStructure()) return;
212 481 mdecorde
        FichiersGlozz.importerModeleGlozz(corpus);
213 481 mdecorde
        //       System.out.println(corpus.getStructure());
214 481 mdecorde
      }
215 481 mdecorde
    });
216 481 mdecorde
    structureMenu.add(new GAction("Exporter un modèle Glozz...") {
217 481 mdecorde
      public void executer() {
218 481 mdecorde
        FichiersGlozz.exporterModeleGlozz(corpus.getStructure());
219 481 mdecorde
      }
220 481 mdecorde
    });
221 481 mdecorde
222 481 mdecorde
    // Menu vue
223 481 mdecorde
    JMenu vueMenu = new JMenu("Vue");
224 481 mdecorde
    menuBar.add(vueMenu);
225 481 mdecorde
    vueMenu.add(new GAction("Gestion de la vue...") {
226 481 mdecorde
      public void executer() {
227 481 mdecorde
        VisuVue.newVisuVue(getContentPane(), vue);
228 481 mdecorde
      }
229 481 mdecorde
    });
230 481 mdecorde
    vueMenu.add(new GAction("Ouvrir (.ecv)...") {
231 481 mdecorde
      public void executer() {
232 481 mdecorde
        FichiersJava.ouvrirVue(vue);
233 481 mdecorde
      }
234 481 mdecorde
    });
235 481 mdecorde
    vueMenu.add(new GAction("Enregistrer (.ecv)...") {
236 481 mdecorde
      public void executer() {
237 481 mdecorde
        if (FichiersJava.enregistrerVue(vue)) {
238 481 mdecorde
          nomVue = Fichiers.getNomFichierCourant(Fichiers.TypeFichier.VUE);
239 481 mdecorde
          setTitre();
240 481 mdecorde
        }
241 481 mdecorde
      }
242 481 mdecorde
    });
243 481 mdecorde
    vueMenu.add(new GAction("Rétablir la vue par défaut") {
244 481 mdecorde
      public void executer() {
245 481 mdecorde
        nomVue = "";
246 481 mdecorde
        vue.retablirVueParDefaut();
247 481 mdecorde
      }
248 481 mdecorde
    });
249 481 mdecorde
250 481 mdecorde
    // Menu texte
251 481 mdecorde
    JMenu texteMenu = new JMenu("Texte");
252 481 mdecorde
    menuBar.add(texteMenu);
253 481 mdecorde
    texteMenu.add(new GAction("Modifier le texte") {
254 481 mdecorde
      public void executer() {
255 481 mdecorde
        panneauEditeur.initModifierTexte();
256 481 mdecorde
      }
257 481 mdecorde
    });
258 481 mdecorde
    texteMenu.insertSeparator(texteMenu.getMenuComponentCount());
259 481 mdecorde
    texteMenu.add(item = new JMenuItem(new GAction("Rechercher...") {
260 481 mdecorde
      public void executer() {
261 481 mdecorde
        panneauEditeur.initRechercherTexte();
262 481 mdecorde
      }
263 481 mdecorde
    }));
264 481 mdecorde
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, ActionEvent.CTRL_MASK));
265 481 mdecorde
    texteMenu.add(item = new JMenuItem(new GAction("Suivant") {
266 481 mdecorde
      public void executer() {
267 481 mdecorde
        panneauEditeur.rechercherSuivantTexte();
268 481 mdecorde
      }
269 481 mdecorde
    }));
270 481 mdecorde
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, ActionEvent.CTRL_MASK));
271 481 mdecorde
    texteMenu.insertSeparator(texteMenu.getMenuComponentCount());
272 481 mdecorde
    texteMenu.add(new GAction("Style du document...") {
273 481 mdecorde
      public void executer() {
274 481 mdecorde
        panneauEditeur.saisirStyleTexte(vue);
275 481 mdecorde
      }
276 481 mdecorde
    });
277 481 mdecorde
    texteMenu.add(new GAction("Exporter format RTF...") {
278 481 mdecorde
      public void executer() {
279 481 mdecorde
        FichiersTexte.exporterTexteRTF(panneauEditeur);
280 481 mdecorde
      }
281 481 mdecorde
    });
282 481 mdecorde
    texteMenu.add(new GAction("Exporter format HTML...") {
283 481 mdecorde
      public void executer() {
284 481 mdecorde
        FichiersTexte.exporterTexteHTML(panneauEditeur);
285 481 mdecorde
      }
286 481 mdecorde
    });
287 481 mdecorde
288 481 mdecorde
289 481 mdecorde
    // Menu unités
290 481 mdecorde
    JMenu unitesMenu = new JMenu("Unités");
291 481 mdecorde
    menuBar.add(unitesMenu);
292 481 mdecorde
    unitesMenu.add(new GAction("Gestion des unités") {
293 481 mdecorde
      public void executer() {
294 481 mdecorde
        panneauEditeur.initGestionUnites();
295 481 mdecorde
      }
296 481 mdecorde
    });
297 481 mdecorde
    unitesMenu.add(new GAction("Export des unités") {
298 481 mdecorde
      public void executer() {
299 481 mdecorde
        String type;
300 481 mdecorde
        String[] types = vue.getTypesUnitesAVoir();
301 481 mdecorde
        if(types==null||types.length==0) return;
302 481 mdecorde
        if(types.length==1) type = types[0];
303 481 mdecorde
        else type = (String) JOptionPane.showInputDialog(VisuMain.this,
304 481 mdecorde
       "Type des unités à exporter", "Choix du type d'unités",
305 481 mdecorde
       JOptionPane.QUESTION_MESSAGE, null, types, "");
306 481 mdecorde
        if(type==null) return;
307 481 mdecorde
        type = type.trim();
308 481 mdecorde
        if(type.isEmpty()) return;
309 481 mdecorde
        TableModel donnees = vue.tableauUnites(type);
310 481 mdecorde
        if(donnees!=null)  FichiersTableur.exporterTable(donnees);
311 481 mdecorde
      }
312 481 mdecorde
    });
313 481 mdecorde
    unitesMenu.insertSeparator(unitesMenu.getMenuComponentCount());
314 481 mdecorde
    unitesMenu.add(new GAction("Création d'unités typographiques") {
315 481 mdecorde
      public void executer() {
316 481 mdecorde
        GMessages.pasImplemente();
317 481 mdecorde
      }
318 481 mdecorde
    });
319 481 mdecorde
    unitesMenu.add(new GAction("Création d'unités de constituance") {
320 481 mdecorde
      public void executer() {
321 481 mdecorde
        GMessages.pasImplemente();
322 481 mdecorde
      }
323 481 mdecorde
    });
324 481 mdecorde
325 481 mdecorde
    // Menu relations
326 481 mdecorde
    JMenu relationsMenu = new JMenu("Relations");
327 481 mdecorde
    menuBar.add(relationsMenu);
328 481 mdecorde
    relationsMenu.add(new GAction("Gestion des relations") {
329 481 mdecorde
      public void executer() {
330 481 mdecorde
        panneauEditeur.initGestionRelations();
331 481 mdecorde
      }
332 481 mdecorde
    });
333 481 mdecorde
    relationsMenu.add(new GAction("Visualisation d'arborescences") {
334 481 mdecorde
      public void executer() {
335 481 mdecorde
        GMessages.pasImplemente();
336 481 mdecorde
      }
337 481 mdecorde
    });
338 481 mdecorde
    relationsMenu.add(new GAction("Saisie d'arborescences") {
339 481 mdecorde
      public void executer() {
340 481 mdecorde
        GMessages.pasImplemente();
341 481 mdecorde
      }
342 481 mdecorde
    });
343 481 mdecorde
    relationsMenu.add(new GAction("Création d'arborescences") {
344 481 mdecorde
      public void executer() {
345 481 mdecorde
        GMessages.pasImplemente();
346 481 mdecorde
      }
347 481 mdecorde
    });
348 481 mdecorde
349 481 mdecorde
    // Menu schémas
350 481 mdecorde
    JMenu schemasMenu = new JMenu("Schémas");
351 481 mdecorde
    menuBar.add(schemasMenu);
352 481 mdecorde
    schemasMenu.add(new GAction("Gestion des schémas") {
353 481 mdecorde
      public void executer() {
354 481 mdecorde
        panneauEditeur.initGestionSchemas();
355 481 mdecorde
      }
356 481 mdecorde
    });
357 481 mdecorde
    schemasMenu.add(new GAction("Visualisation de chaînes") {
358 481 mdecorde
      public void executer() {
359 481 mdecorde
        new VisuChaines(getContentPane(), vue, panneauEditeur);
360 481 mdecorde
      }
361 481 mdecorde
    });
362 481 mdecorde
363 481 mdecorde
    // Menu règles
364 481 mdecorde
    JMenu reglesMenu = new JMenu("Règles");
365 481 mdecorde
    menuBar.add(reglesMenu);
366 481 mdecorde
    // Menu Stats
367 481 mdecorde
    JMenu statsMenu = new JMenu("Statistiques");
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
    sauvegarde();
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 MODIF_VUE:
437 481 mdecorde
        switch (((VueEvent) evt).getModif()) {
438 481 mdecorde
          case VUE_DEFAUT:
439 481 mdecorde
            nomVue = "";
440 481 mdecorde
            setTitre();
441 481 mdecorde
            return;
442 481 mdecorde
          case NEW_VUE:
443 481 mdecorde
            nomVue = Fichiers.getNomFichierCourant(Fichiers.TypeFichier.VUE);
444 481 mdecorde
            setTitre();
445 481 mdecorde
            return;
446 481 mdecorde
          case EXTRACTION:
447 481 mdecorde
            setTitre();
448 481 mdecorde
            return;
449 481 mdecorde
          default:
450 481 mdecorde
            throw new UnsupportedOperationException("Cas "+((VueEvent) evt).getModif()+" oublié dans un switch");
451 481 mdecorde
        }
452 481 mdecorde
      case MODIF_TEXTE:
453 481 mdecorde
      case MODIF_STRUCTURE:
454 481 mdecorde
      case MODIF_ELEMENT:
455 481 mdecorde
        setTitre();
456 481 mdecorde
        return;
457 481 mdecorde
      default:
458 481 mdecorde
        throw new UnsupportedOperationException("Cas "+evt.getType()+" oublié dans un switch");
459 481 mdecorde
    }
460 481 mdecorde
  }
461 481 mdecorde
  private void setTitre() {
462 481 mdecorde
    String titre = "Analec 1.5";
463 481 mdecorde
    if (!nomCorpus.isEmpty()) {
464 481 mdecorde
      titre += " : "+nomCorpus;
465 481 mdecorde
      if (corpus.isModifie()) titre += "*";
466 481 mdecorde
      if (nomVue.isEmpty()) {
467 481 mdecorde
        if (vue.isModifiee()) titre += " - vue modifiée*";
468 481 mdecorde
        else titre += " - vue par défaut";
469 481 mdecorde
      } else {
470 481 mdecorde
        titre += " - vue : "+nomVue;
471 481 mdecorde
        if (vue.isModifiee()) titre += "*";
472 481 mdecorde
      }
473 481 mdecorde
    }
474 481 mdecorde
    setTitle(titre);
475 481 mdecorde
  }
476 481 mdecorde
  public static void main(String[] args) {
477 481 mdecorde
    VisuMain.args = args;
478 481 mdecorde
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
479 481 mdecorde
      public void run() {
480 481 mdecorde
        try {
481 481 mdecorde
          // Fenêtre
482 481 mdecorde
          lancerVisuAnalec();
483 481 mdecorde
        } catch (Throwable ex) {
484 481 mdecorde
          GMessages.erreurFatale(ex);
485 481 mdecorde
        }
486 481 mdecorde
      }
487 481 mdecorde
    });
488 481 mdecorde
  }
489 481 mdecorde
  public static void lancerVisuAnalec() throws IOException, ClassNotFoundException {
490 481 mdecorde
    // Fenêtre
491 481 mdecorde
    VisuMain fenetre = new VisuMain();
492 481 mdecorde
    fenetre.setTitre();
493 481 mdecorde
    Rectangle rmax = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
494 481 mdecorde
    fenetre.setLocation(50, 50);
495 481 mdecorde
    fenetre.setSize(rmax.width-100, rmax.height-100);
496 481 mdecorde
    fenetre.setVisible(true);
497 481 mdecorde
    fenetre.panneauEditeur.agencerPanneaux();
498 481 mdecorde
    fenetre.traiterArguments(args);
499 481 mdecorde
//    System.out.println(fenetre.corpus.getStructure().toString());
500 481 mdecorde
//   new GMessages.GProgression(fenetre);
501 481 mdecorde
  }
502 481 mdecorde
  private void traiterArguments(String[] args) throws IOException, ClassNotFoundException {
503 481 mdecorde
    if (args.length==0) return;
504 481 mdecorde
    FichiersJava.ouvrirCorpusVue(corpus, vue, args[0]);
505 481 mdecorde
  }
506 481 mdecorde
}