Index: tmp/org.txm.analec.rcp/plugin.xml
===================================================================
--- tmp/org.txm.analec.rcp/plugin.xml	(revision 915)
+++ tmp/org.txm.analec.rcp/plugin.xml	(revision 916)
@@ -30,6 +30,16 @@
                </visibleWhen>
             </command>
             <command
+                  commandId="org.txm.analec.commands.EditVue"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
                   commandId="org.txm.analec.commands.SaveCorpus"
                   style="push">
                <visibleWhen
@@ -246,6 +256,12 @@
             id="org.txm.analec.commands.ImportTEIAnnotations"
             name="%command.name.11">
       </command>
+      <command
+            categoryId="org.txm.rcp.category.txm"
+            defaultHandler="org.txm.analec.commands.EditVue"
+            id="org.txm.analec.commands.EditVue"
+            name="Edit view">
+      </command>
    </extension>
    <extension
          point="org.eclipse.ui.views">
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/AnalecCorpora.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/AnalecCorpora.java	(revision 915)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/AnalecCorpora.java	(revision 916)
@@ -28,7 +28,7 @@
 	 */
 	public static Corpus getCorpus(String name) {
 		File fichierCorpus = new File(Toolbox.getTxmHomePath(), "corpora/"+name+"/analec/"+name+".ec"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		//File fichierVue = new File(Toolbox.getTXMHOMEPATH(), "corpora/"+name+"/analec/"+name+".ecv");
+		File fichierVue = new File(Toolbox.getTxmHomePath(), "corpora/"+name+"/analec/"+name+".ecv");
 		Corpus corpus = null;
 		if (AnalecCorpora.corpora.containsKey(name)) {
 			corpus = AnalecCorpora.corpora.get(name);
@@ -54,17 +54,17 @@
 			Vue vue = getVue(name);
 			
 //TODO: does not work :( 
-//			if (fichierVue.exists()) {
-//				if (!FichiersJava.ouvrirVue(vue, fichierVue)) {
-//					System.out.println("Warning: Fail to open corpus Vue file: "+fichierVue);
-//					//return null;
-//				}
-//			} else {
-//				if (!FichiersJava.enregistrerVue(vue, fichierVue)) {
-//					System.out.println("Warning: Fail to create corpus Vue file: "+fichierVue);
-//					//return null;
-//				}
-//			}
+			if (fichierVue.exists()) {
+				if (!FichiersJava.ouvrirVue(vue, fichierVue)) {
+					System.out.println("Warning: Fail to open corpus Vue file: "+fichierVue);
+					//return null;
+				}
+			} else {
+				if (!FichiersJava.enregistrerVue(vue, fichierVue)) {
+					System.out.println("Warning: Fail to create corpus Vue file: "+fichierVue);
+					//return null;
+				}
+			}
 		}
 		return corpus;
 	}
@@ -98,7 +98,6 @@
 			}
 			Corpus corpus = getCorpus(name);
 			Vue vue = new Vue(corpus);
-			vue.retablirVueParDefaut();
 			vues.put(name, vue);
 		}
 		return vues.get(name);
@@ -106,11 +105,12 @@
 
 	public static boolean saveCorpus(String name) {
 		Corpus corpus = getCorpus(name);
-
+		Vue vue = getVue(name);
 		File dir = new File(Toolbox.getTxmHomePath(), "corpora/"+name+"/analec/"); //$NON-NLS-1$ //$NON-NLS-2$
 		dir.mkdir();
 		File fichierCorpus = new File(dir,name+".ec"); //$NON-NLS-1$
-		return FichiersJava.enregistrerCorpus(corpus, fichierCorpus);
+		File fichierVueCorpus = new File(dir,name+".ecv"); //$NON-NLS-1$
+		return FichiersJava.enregistrerCorpus(corpus, fichierCorpus) && FichiersJava.enregistrerVue(vue, fichierVueCorpus);
 	}
 
 	public static Vue getVue(Corpus corpus) {
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditVue.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditVue.java	(revision 915)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/EditVue.java	(revision 916)
@@ -12,7 +12,6 @@
 
 import visuAnalec.VisuMain;
 import visuAnalec.donnees.Corpus;
-import visuAnalec.donnees.VisuStructure;
 import visuAnalec.util.GMessages;
 import visuAnalec.vue.VisuVue;
 import visuAnalec.vue.Vue;
@@ -20,7 +19,7 @@
 public class EditVue  extends AbstractHandler {
 
 	/** The ID. */
-	public static String ID = "org.txm.analec.commands.LoadAnnotationStructure"; //$NON-NLS-1$
+	public static String ID = EditVue.class.getName(); //$NON-NLS-1$
 	Vue vue;
 	/** The selection. */
 
Index: tmp/org.txm.analec.rcp/src/visuAnalec/vue/VisuVue.java
===================================================================
--- tmp/org.txm.analec.rcp/src/visuAnalec/vue/VisuVue.java	(revision 915)
+++ tmp/org.txm.analec.rcp/src/visuAnalec/vue/VisuVue.java	(revision 916)
@@ -23,412 +23,414 @@
  * @author Bernard
  */
 public class VisuVue extends JFrame implements VueListener, ListSelectionListener, ChangeListener {
-  static private VisuVue instance = null;
-  private Vue vue;
-  // Les données spécifiant la vue (échangées avec vue à l'initialisation et à la validation)
-  private HashMap<Class<? extends Element>, HashMap<String, Boolean>> isTypesAVoir =
-          new HashMap<Class<? extends Element>, HashMap<String, Boolean>>();
-  private HashMap<Class<? extends Element>, HashMap<String, ArrayList<Adresse>>> adressesAVoir =
-          new HashMap<Class<? extends Element>, HashMap<String, ArrayList<Adresse>>>();
-  private HashMap<Class<? extends Element>, HashMap<String, ArrayList<String>>> champsAVoir =
-          new HashMap<Class<? extends Element>, HashMap<String, ArrayList<String>>>();
-  private HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Integer>>> niveauxChampsAVoir =
-          new HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Integer>>>();
-  private HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Integer>>> positionsChampsAVoir =
-          new HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Integer>>>();
-  private HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Boolean>>> modifiabiliteChampsAVoir =
-          new HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Boolean>>>();
-  private HashMap<Class<? extends Element>, HashMap<String, String>> champsId =
-          new HashMap<Class<? extends Element>, HashMap<String, String>>();
-  private HashMap<Class<? extends Element>, HashMap<String, SimpleAttributeSet>> stylesElements =
-          new HashMap<Class<? extends Element>, HashMap<String, SimpleAttributeSet>>();
-  private HashMap<Class<? extends Element>, HashMap<String, HashMap<String, HashMap<String, SimpleAttributeSet>>>> stylesValeursElements =
-          new HashMap<Class<? extends Element>, HashMap<String, HashMap<String, HashMap<String, SimpleAttributeSet>>>>();  // le tableau des types à voir
-  private JTable tableauTypes;
-  private JTabbedPane panneauTabule;
-  VisuVueExtraction visuVueExtraction;
-  VisuVuePresentation visuVuePresentation;
-  VisuVueColoriage visuVueColoriage;
+	static private VisuVue instance = null;
+	private Vue vue;
+	// Les données spécifiant la vue (échangées avec vue à l'initialisation et à la validation)
+	private HashMap<Class<? extends Element>, HashMap<String, Boolean>> isTypesAVoir =
+			new HashMap<Class<? extends Element>, HashMap<String, Boolean>>();
+	private HashMap<Class<? extends Element>, HashMap<String, ArrayList<Adresse>>> adressesAVoir =
+			new HashMap<Class<? extends Element>, HashMap<String, ArrayList<Adresse>>>();
+	private HashMap<Class<? extends Element>, HashMap<String, ArrayList<String>>> champsAVoir =
+			new HashMap<Class<? extends Element>, HashMap<String, ArrayList<String>>>();
+	private HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Integer>>> niveauxChampsAVoir =
+			new HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Integer>>>();
+	private HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Integer>>> positionsChampsAVoir =
+			new HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Integer>>>();
+	private HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Boolean>>> modifiabiliteChampsAVoir =
+			new HashMap<Class<? extends Element>, HashMap<String, HashMap<String, Boolean>>>();
+	private HashMap<Class<? extends Element>, HashMap<String, String>> champsId =
+			new HashMap<Class<? extends Element>, HashMap<String, String>>();
+	private HashMap<Class<? extends Element>, HashMap<String, SimpleAttributeSet>> stylesElements =
+			new HashMap<Class<? extends Element>, HashMap<String, SimpleAttributeSet>>();
+	private HashMap<Class<? extends Element>, HashMap<String, HashMap<String, HashMap<String, SimpleAttributeSet>>>> stylesValeursElements =
+			new HashMap<Class<? extends Element>, HashMap<String, HashMap<String, HashMap<String, SimpleAttributeSet>>>>();  // le tableau des types à voir
+	private JTable tableauTypes;
+	private JTabbedPane panneauTabule;
+	VisuVueExtraction visuVueExtraction;
+	VisuVuePresentation visuVuePresentation;
+	VisuVueColoriage visuVueColoriage;
 
-  static public VisuVue newVisuVue(Container fenetre, Vue vue) {
-    if (instance!=null) instance.fermerFenetre();
-    instance = new VisuVue(fenetre, vue);
-    return instance;
-  }
+	static public VisuVue newVisuVue(Container fenetre, Vue vue) {
+		if (instance!=null) instance.fermerFenetre();
+		instance = new VisuVue(fenetre, vue);
+		return instance;
+	}
 
-  @SuppressWarnings("unchecked")
-  private VisuVue(Container fenetre, Vue vue) {
-    super("Gestion de la vue");
-    Point locFenetre = new Point(fenetre.getX()+20, fenetre.getY()+50);
-    Dimension dimFenetre = new Dimension(fenetre.getWidth(), fenetre.getHeight()-30);
-    setLocation(locFenetre);
-    setSize(dimFenetre);
-    this.vue = vue;
-    vue.addEventListener(this);
-    // initialisation des données spécifiant la vue
-    for (Class<? extends Element> classe : new Class[]{Unite.class, Relation.class, Schema.class}) {
-      isTypesAVoir.put(classe, new HashMap<String, Boolean>());
-      for (String type : vue.getTypes(classe))
-        isTypesAVoir.get(classe).put(type, false);
-      for (String type : vue.getTypesAVoir(classe))
-        isTypesAVoir.get(classe).put(type, true);
-      champsAVoir.put(classe, new HashMap<String, ArrayList<String>>());
-      adressesAVoir.put(classe, new HashMap<String, ArrayList<Adresse>>());
-      positionsChampsAVoir.put(classe, new HashMap<String, HashMap<String, Integer>>());
-      niveauxChampsAVoir.put(classe, new HashMap<String, HashMap<String, Integer>>());
-      modifiabiliteChampsAVoir.put(classe, new HashMap<String, HashMap<String, Boolean>>());
-      for (String type : vue.getTypes(classe)) {
-        champsAVoir.get(classe).put(type, new ArrayList<String>());
-        adressesAVoir.get(classe).put(type, new ArrayList<Adresse>());
-        niveauxChampsAVoir.get(classe).put(type, new HashMap<String, Integer>());
-        positionsChampsAVoir.get(classe).put(type, new HashMap<String, Integer>());
-        modifiabiliteChampsAVoir.get(classe).put(type, new HashMap<String, Boolean>());
-      }
-      for (String type : vue.getTypesAVoir(classe)) {
-        champsAVoir.get(classe).put(type, vue.getListeChamps(classe, type));
-        for (String nom : vue.getNomsChamps(classe, type))
-          adressesAVoir.get(classe).get(type).add(vue.getAdresseChamps(classe, type, nom));
-      }
-      champsId.put(classe, new HashMap<String, String>());
-      for (String type : vue.getTypesAVoir(classe))
-        if (vue.getChampId(classe, type)!=null)
-          champsId.get(classe).put(type, vue.getChampId(classe, type));
-      for (String type : vue.getTypesAVoir(classe)) {
-        positionsChampsAVoir.get(classe).put(type, vue.getPositionsChampsAVoir(classe, type));
-        niveauxChampsAVoir.get(classe).put(type, vue.getNiveauxChampsAVoir(classe, type));
-        modifiabiliteChampsAVoir.get(classe).put(type, new HashMap<String, Boolean>());
-        for (String champ : vue.getNomsChamps(classe, type))
-          modifiabiliteChampsAVoir.get(classe).get(type).put(champ, vue.isChampModifiable(classe, type, champ));
-      }
-      stylesElements.put(classe, new HashMap<String, SimpleAttributeSet>());
-      for (String type : vue.getTypesAVoir(classe))
-        if (vue.getStyleElements(classe, type)!=null)
-          stylesElements.get(classe).put(type, vue.getStyleElements(classe, type));
-      stylesValeursElements.put(classe, new HashMap<String, HashMap<String, HashMap<String, SimpleAttributeSet>>>());
-      for (String type : vue.getTypesAVoir(classe))
-        if (vue.getStyleValeursElements(classe, type)!=null)
-          stylesValeursElements.get(classe).put(type, vue.getStyleValeursElements(classe, type));
-    }
-    // Tableau des types d'éléments à visualiser
-    Box panneauTypes = Box.createVerticalBox();
+	@SuppressWarnings("unchecked")
+	private VisuVue(Container fenetre, Vue vue) {
+		super("Gestion de la vue");
+		if (fenetre != null) {
+			Point locFenetre = new Point(fenetre.getX()+20, fenetre.getY()+50);
+			Dimension dimFenetre = new Dimension(fenetre.getWidth(), fenetre.getHeight()-30);
+			setLocation(locFenetre);
+			setSize(dimFenetre);
+		}
+		this.vue = vue;
+		vue.addEventListener(this);
+		// initialisation des données spécifiant la vue
+		for (Class<? extends Element> classe : new Class[]{Unite.class, Relation.class, Schema.class}) {
+			isTypesAVoir.put(classe, new HashMap<String, Boolean>());
+			for (String type : vue.getTypes(classe))
+				isTypesAVoir.get(classe).put(type, false);
+			for (String type : vue.getTypesAVoir(classe))
+				isTypesAVoir.get(classe).put(type, true);
+			champsAVoir.put(classe, new HashMap<String, ArrayList<String>>());
+			adressesAVoir.put(classe, new HashMap<String, ArrayList<Adresse>>());
+			positionsChampsAVoir.put(classe, new HashMap<String, HashMap<String, Integer>>());
+			niveauxChampsAVoir.put(classe, new HashMap<String, HashMap<String, Integer>>());
+			modifiabiliteChampsAVoir.put(classe, new HashMap<String, HashMap<String, Boolean>>());
+			for (String type : vue.getTypes(classe)) {
+				champsAVoir.get(classe).put(type, new ArrayList<String>());
+				adressesAVoir.get(classe).put(type, new ArrayList<Adresse>());
+				niveauxChampsAVoir.get(classe).put(type, new HashMap<String, Integer>());
+				positionsChampsAVoir.get(classe).put(type, new HashMap<String, Integer>());
+				modifiabiliteChampsAVoir.get(classe).put(type, new HashMap<String, Boolean>());
+			}
+			for (String type : vue.getTypesAVoir(classe)) {
+				champsAVoir.get(classe).put(type, vue.getListeChamps(classe, type));
+				for (String nom : vue.getNomsChamps(classe, type))
+					adressesAVoir.get(classe).get(type).add(vue.getAdresseChamps(classe, type, nom));
+			}
+			champsId.put(classe, new HashMap<String, String>());
+			for (String type : vue.getTypesAVoir(classe))
+				if (vue.getChampId(classe, type)!=null)
+					champsId.get(classe).put(type, vue.getChampId(classe, type));
+			for (String type : vue.getTypesAVoir(classe)) {
+				positionsChampsAVoir.get(classe).put(type, vue.getPositionsChampsAVoir(classe, type));
+				niveauxChampsAVoir.get(classe).put(type, vue.getNiveauxChampsAVoir(classe, type));
+				modifiabiliteChampsAVoir.get(classe).put(type, new HashMap<String, Boolean>());
+				for (String champ : vue.getNomsChamps(classe, type))
+					modifiabiliteChampsAVoir.get(classe).get(type).put(champ, vue.isChampModifiable(classe, type, champ));
+			}
+			stylesElements.put(classe, new HashMap<String, SimpleAttributeSet>());
+			for (String type : vue.getTypesAVoir(classe))
+				if (vue.getStyleElements(classe, type)!=null)
+					stylesElements.get(classe).put(type, vue.getStyleElements(classe, type));
+			stylesValeursElements.put(classe, new HashMap<String, HashMap<String, HashMap<String, SimpleAttributeSet>>>());
+			for (String type : vue.getTypesAVoir(classe))
+				if (vue.getStyleValeursElements(classe, type)!=null)
+					stylesValeursElements.get(classe).put(type, vue.getStyleValeursElements(classe, type));
+		}
+		// Tableau des types d'éléments à visualiser
+		Box panneauTypes = Box.createVerticalBox();
 
-    panneauTypes.add(Box.createVerticalGlue());
-    ModeleTableauTypes donneesTypes = new ModeleTableauTypes();
-    tableauTypes = new JTable(donneesTypes) {
-      @Override
-      public boolean isCellSelected(int row, int col) {
-        if (col==1) {
-          return false;
-        }
-        String classeType = ((ModeleTableauTypes) getModel()).classesTypes[row];
-        return isRowSelected(row)&&isTypesAVoir.get(GVisu.getClasse(classeType)).get(GVisu.getType(classeType));
-      }
-    };
+		panneauTypes.add(Box.createVerticalGlue());
+		ModeleTableauTypes donneesTypes = new ModeleTableauTypes();
+		tableauTypes = new JTable(donneesTypes) {
+			@Override
+			public boolean isCellSelected(int row, int col) {
+				if (col==1) {
+					return false;
+				}
+				String classeType = ((ModeleTableauTypes) getModel()).classesTypes[row];
+				return isRowSelected(row)&&isTypesAVoir.get(GVisu.getClasse(classeType)).get(GVisu.getType(classeType));
+			}
+		};
 
-    tableauTypes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		tableauTypes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
 
-    tableauTypes.getSelectionModel().addListSelectionListener(this);
+		tableauTypes.getSelectionModel().addListSelectionListener(this);
 
-    JScrollPane scroll1 = new JScrollPane(tableauTypes);
+		JScrollPane scroll1 = new JScrollPane(tableauTypes);
 
-    scroll1.setBorder(
-            new TitledBorder("Types d'éléments à visualiser"));
-    panneauTypes.add(scroll1);
-    // les boutons de validation
+		scroll1.setBorder(
+				new TitledBorder("Types d'éléments à visualiser"));
+		panneauTypes.add(scroll1);
+		// les boutons de validation
 
-    panneauTypes.add(Box.createVerticalGlue());
-    JPanel pCommandesValidation = new JPanel(new FlowLayout());
-    JButton valideModifs = new JButton(
-            new GAction("Valider") {
-              public void executer() {
-                validerModifVue();
-              }
-            ;
-    });
+		panneauTypes.add(Box.createVerticalGlue());
+		JPanel pCommandesValidation = new JPanel(new FlowLayout());
+		JButton valideModifs = new JButton(
+				new GAction("Valider") {
+					public void executer() {
+						validerModifVue();
+					}
+					;
+				});
 
-    JButton annuleModifs = new JButton(
-            new GAction("Annuler") {
-              public void executer() {
-                annulerModifVue();
-              }
-            ;
+		JButton annuleModifs = new JButton(
+				new GAction("Annuler") {
+					public void executer() {
+						annulerModifVue();
+					}
+					;
 
-    });
-    pCommandesValidation.add(valideModifs, CENTER_ALIGNMENT);
+				});
+		pCommandesValidation.add(valideModifs, CENTER_ALIGNMENT);
 
-    pCommandesValidation.add(annuleModifs, CENTER_ALIGNMENT);
+		pCommandesValidation.add(annuleModifs, CENTER_ALIGNMENT);
 
-    panneauTypes.add(pCommandesValidation);
-    // Les panneaux tabulés Extraction, Sélection, Présentation, Coloriage
-    panneauTabule = new JTabbedPane();
+		panneauTypes.add(pCommandesValidation);
+		// Les panneaux tabulés Extraction, Sélection, Présentation, Coloriage
+		panneauTabule = new JTabbedPane();
 
-    panneauTabule.addChangeListener(
-            this);
-    visuVueExtraction = new VisuVueExtraction(this, vue, champsAVoir, adressesAVoir);
+		panneauTabule.addChangeListener(
+				this);
+		visuVueExtraction = new VisuVueExtraction(this, vue, champsAVoir, adressesAVoir);
 
-    panneauTabule.add(
-            "Extraction de propriétés", visuVueExtraction);
-    visuVuePresentation = new VisuVuePresentation(this, vue, champsAVoir, champsId,
-            modifiabiliteChampsAVoir, niveauxChampsAVoir, positionsChampsAVoir);
+		panneauTabule.add(
+				"Extraction de propriétés", visuVueExtraction);
+		visuVuePresentation = new VisuVuePresentation(this, vue, champsAVoir, champsId,
+				modifiabiliteChampsAVoir, niveauxChampsAVoir, positionsChampsAVoir);
 
-    panneauTabule.add(
-            "Présentation des champs", visuVuePresentation);
-    visuVueColoriage = new VisuVueColoriage(this, vue, champsAVoir, adressesAVoir,
-            stylesElements, stylesValeursElements);
+		panneauTabule.add(
+				"Présentation des champs", visuVuePresentation);
+		visuVueColoriage = new VisuVueColoriage(this, vue, champsAVoir, adressesAVoir,
+				stylesElements, stylesValeursElements);
 
-    panneauTabule.add(
-            "Coloriage d'éléments", visuVueColoriage);
-    // cadre global de la fenêtre
-    JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panneauTypes, panneauTabule);
+		panneauTabule.add(
+				"Coloriage d'éléments", visuVueColoriage);
+		// cadre global de la fenêtre
+		JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panneauTypes, panneauTabule);
 
-    setContentPane(split);
+		setContentPane(split);
 
-    setVisible(
-            true);
-    split.setDividerLocation(
-            0.25);
-//    visuVueExtraction.agencerPanneaux();
-//
-    // initialisation de la sélection d'un premier type à voir (si possible)
+		setVisible(
+				true);
+		split.setDividerLocation(
+				0.25);
+		//    visuVueExtraction.agencerPanneaux();
+		//
+		// initialisation de la sélection d'un premier type à voir (si possible)
 
 
-    for (int i = 0;
-            i<donneesTypes.getRowCount();
-            i++) {
-      if ((Boolean) donneesTypes.getValueAt(i, 1)) {
-        tableauTypes.setRowSelectionInterval(i, i);
-        tableauTypes.setColumnSelectionInterval(0, 0);
-        break;
-      }
-    }
-    // Fermeture de la fenêtre
+		for (int i = 0;
+				i<donneesTypes.getRowCount();
+				i++) {
+			if ((Boolean) donneesTypes.getValueAt(i, 1)) {
+				tableauTypes.setRowSelectionInterval(i, i);
+				tableauTypes.setColumnSelectionInterval(0, 0);
+				break;
+			}
+		}
+		// Fermeture de la fenêtre
 
-    setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 
-    addWindowListener(
-            new WindowAdapter() {
-              @Override
-              public void windowClosing(WindowEvent evt) {
-                confirmerFermerFenetre();
-              }
-            });
-  }
+		addWindowListener(
+				new WindowAdapter() {
+					@Override
+					public void windowClosing(WindowEvent evt) {
+						confirmerFermerFenetre();
+					}
+				});
+	}
 
-  public void stateChanged(ChangeEvent evt) {
-    if (((JTabbedPane) evt.getSource())!=panneauTabule) return;
-    try {
-      switch (panneauTabule.getSelectedIndex()) {
-        case 0:
-          return;
-        case 1:
-          visuVuePresentation.reinitialiser();
-          return;
-        case 2:
-          visuVueColoriage.reinitialiser();
-          return;
-        default:
-          throw new IndexOutOfBoundsException();
-      }
-    } catch (Throwable ex) {
-      GMessages.erreurFatale(ex);
-    }
-  }
+	public void stateChanged(ChangeEvent evt) {
+		if (((JTabbedPane) evt.getSource())!=panneauTabule) return;
+		try {
+			switch (panneauTabule.getSelectedIndex()) {
+			case 0:
+				return;
+			case 1:
+				visuVuePresentation.reinitialiser();
+				return;
+			case 2:
+				visuVueColoriage.reinitialiser();
+				return;
+			default:
+				throw new IndexOutOfBoundsException();
+			}
+		} catch (Throwable ex) {
+			GMessages.erreurFatale(ex);
+		}
+	}
 
-  private void validerModifVue() {
-    vue.modifierVueParSaisie(isTypesAVoir, adressesAVoir, champsAVoir, champsId, modifiabiliteChampsAVoir,
-            positionsChampsAVoir, niveauxChampsAVoir, stylesElements, stylesValeursElements);
-  }
+	private void validerModifVue() {
+		vue.modifierVueParSaisie(isTypesAVoir, adressesAVoir, champsAVoir, champsId, modifiabiliteChampsAVoir,
+				positionsChampsAVoir, niveauxChampsAVoir, stylesElements, stylesValeursElements);
+	}
 
-  private void annulerModifVue() {
-    fermerFenetre();
-  }
+	private void annulerModifVue() {
+		fermerFenetre();
+	}
 
-  void ajouterChamp(Class<? extends Element> classe, String type, Adresse ad) {
-    String champ = Vue.trouveNomChampParDefaut(ad, champsAVoir.get(classe).get(type));
-    champsAVoir.get(classe).get(type).add(champ);
-    adressesAVoir.get(classe).get(type).add(ad);
-    modifiabiliteChampsAVoir.get(classe).get(type).put(champ, ad.getLongueur()==1);
-    positionsChampsAVoir.get(classe).get(type).put(champ, 0);
-    niveauxChampsAVoir.get(classe).get(type).put(champ, 0);
-  }
+	void ajouterChamp(Class<? extends Element> classe, String type, Adresse ad) {
+		String champ = Vue.trouveNomChampParDefaut(ad, champsAVoir.get(classe).get(type));
+		champsAVoir.get(classe).get(type).add(champ);
+		adressesAVoir.get(classe).get(type).add(ad);
+		modifiabiliteChampsAVoir.get(classe).get(type).put(champ, ad.getLongueur()==1);
+		positionsChampsAVoir.get(classe).get(type).put(champ, 0);
+		niveauxChampsAVoir.get(classe).get(type).put(champ, 0);
+	}
 
-  void renommerChamp(Class<? extends Element> classe, String type, int rg, String newNom) {
-    String oldNom = champsAVoir.get(classe).get(type).get(rg);
-    champsAVoir.get(classe).get(type).set(rg, newNom);
-    if (champsId.get(classe).containsKey(type)&&oldNom.equals(champsId.get(classe).get(type))) {
-      champsId.get(classe).put(type, newNom);
-    }
-    modifiabiliteChampsAVoir.get(classe).get(type).put(newNom,
-            modifiabiliteChampsAVoir.get(classe).get(type).get(oldNom));
-    modifiabiliteChampsAVoir.get(classe).get(type).remove(oldNom);
-    positionsChampsAVoir.get(classe).get(type).put(newNom,
-            positionsChampsAVoir.get(classe).get(type).get(oldNom));
-    positionsChampsAVoir.get(classe).get(type).remove(oldNom);
-    niveauxChampsAVoir.get(classe).get(type).put(newNom,
-            niveauxChampsAVoir.get(classe).get(type).get(oldNom));
-    niveauxChampsAVoir.get(classe).get(type).remove(oldNom);
-    if (stylesValeursElements.get(classe).containsKey(type)
-            &&stylesValeursElements.get(classe).get(type).containsKey(oldNom)) {
-      stylesValeursElements.get(classe).get(type).
-              put(newNom, stylesValeursElements.get(classe).get(type).get(oldNom));
-      stylesValeursElements.get(classe).get(type).remove(oldNom);
-    }
-  }
+	void renommerChamp(Class<? extends Element> classe, String type, int rg, String newNom) {
+		String oldNom = champsAVoir.get(classe).get(type).get(rg);
+		champsAVoir.get(classe).get(type).set(rg, newNom);
+		if (champsId.get(classe).containsKey(type)&&oldNom.equals(champsId.get(classe).get(type))) {
+			champsId.get(classe).put(type, newNom);
+		}
+		modifiabiliteChampsAVoir.get(classe).get(type).put(newNom,
+				modifiabiliteChampsAVoir.get(classe).get(type).get(oldNom));
+		modifiabiliteChampsAVoir.get(classe).get(type).remove(oldNom);
+		positionsChampsAVoir.get(classe).get(type).put(newNom,
+				positionsChampsAVoir.get(classe).get(type).get(oldNom));
+		positionsChampsAVoir.get(classe).get(type).remove(oldNom);
+		niveauxChampsAVoir.get(classe).get(type).put(newNom,
+				niveauxChampsAVoir.get(classe).get(type).get(oldNom));
+		niveauxChampsAVoir.get(classe).get(type).remove(oldNom);
+		if (stylesValeursElements.get(classe).containsKey(type)
+				&&stylesValeursElements.get(classe).get(type).containsKey(oldNom)) {
+			stylesValeursElements.get(classe).get(type).
+			put(newNom, stylesValeursElements.get(classe).get(type).get(oldNom));
+			stylesValeursElements.get(classe).get(type).remove(oldNom);
+		}
+	}
 
-  void supprimerChamp(Class<? extends Element> classe, String type, int rg) {
-    String oldNom = champsAVoir.get(classe).get(type).get(rg);
-    champsAVoir.get(classe).get(type).remove(rg);
-    adressesAVoir.get(classe).get(type).remove(rg);
-    if (champsId.get(classe).containsKey(type)&&oldNom.equals(champsId.get(classe).get(type))) {
-      champsId.get(classe).remove(type);
-      modifiabiliteChampsAVoir.get(classe).get(type).remove(oldNom);
-      positionsChampsAVoir.get(classe).get(type).remove(oldNom);
-      niveauxChampsAVoir.get(classe).get(type).remove(oldNom);
-      if (stylesValeursElements.get(classe).containsKey(type)
-              &&stylesValeursElements.get(classe).get(type).containsKey(oldNom)) {
-        stylesValeursElements.get(classe).get(type).remove(oldNom);
-      }
-    }
-  }
-  String getPropChamp(Class<? extends Element> classe, String type, String champ) {
-    ArrayList<String> champs = champsAVoir.get(classe).get(type);
-    if(champs==null) return "";
-    int ind = champs.indexOf(champ);
-    if(ind<0) return "";
-     String prop = adressesAVoir.get(classe).get(type).get(ind).prop;
-     if(prop==null) return "";
-     return prop;
-   
-  }
+	void supprimerChamp(Class<? extends Element> classe, String type, int rg) {
+		String oldNom = champsAVoir.get(classe).get(type).get(rg);
+		champsAVoir.get(classe).get(type).remove(rg);
+		adressesAVoir.get(classe).get(type).remove(rg);
+		if (champsId.get(classe).containsKey(type)&&oldNom.equals(champsId.get(classe).get(type))) {
+			champsId.get(classe).remove(type);
+			modifiabiliteChampsAVoir.get(classe).get(type).remove(oldNom);
+			positionsChampsAVoir.get(classe).get(type).remove(oldNom);
+			niveauxChampsAVoir.get(classe).get(type).remove(oldNom);
+			if (stylesValeursElements.get(classe).containsKey(type)
+					&&stylesValeursElements.get(classe).get(type).containsKey(oldNom)) {
+				stylesValeursElements.get(classe).get(type).remove(oldNom);
+			}
+		}
+	}
+	String getPropChamp(Class<? extends Element> classe, String type, String champ) {
+		ArrayList<String> champs = champsAVoir.get(classe).get(type);
+		if(champs==null) return "";
+		int ind = champs.indexOf(champ);
+		if(ind<0) return "";
+		String prop = adressesAVoir.get(classe).get(type).get(ind).prop;
+		if(prop==null) return "";
+		return prop;
 
-  public void valueChanged(ListSelectionEvent evt) {
-    if ((ListSelectionModel) evt.getSource()!=tableauTypes.getSelectionModel())
-      return;
-    try {
-      if (evt.getValueIsAdjusting()) {
-        return;
-      }
-      int row = ((ListSelectionModel) evt.getSource()).getMinSelectionIndex();
-      if (row<0) {
-        visuVueExtraction.setTypeSelected(null, null);
-        visuVuePresentation.setTypeSelected(null, null);
-        visuVueColoriage.setTypeSelected(null, null);
-      } else {
-        String classeType = ((ModeleTableauTypes) tableauTypes.getModel()).classesTypes[row];
-        Class<? extends Element> classeSelected = GVisu.getClasse(classeType);
-        String typeSelected = GVisu.getType(classeType);
-        if (isTypesAVoir.get(classeSelected).get(typeSelected)) {
-          visuVueExtraction.setTypeSelected(classeSelected, typeSelected);
-          visuVuePresentation.setTypeSelected(classeSelected, typeSelected);
-          visuVueColoriage.setTypeSelected(classeSelected, typeSelected);
-        } else {
-          visuVueExtraction.setTypeSelected(null, null);
-          visuVuePresentation.setTypeSelected(null, null);
-          visuVueColoriage.setTypeSelected(null, null);
-        }
-      }
-    } catch (Throwable ex) {
-      GMessages.erreurFatale(ex);
-    }
-  }
+	}
 
-  public void traiterEvent(Message evt) {
-    switch (evt.getType()) {
-      case CLEAR_CORPUS:
-        fermerFenetre();
-        return;
-      case CORPUS_SAVED:
-          fermerFenetre();
-          return;
-      case NEW_CORPUS:  // impossible en principe : CLEAR_CORPUS a détruit la fenêtre
-        throw new UnsupportedOperationException("Fenêtre vue présente lors d'un message NEW_CORPUS ???");
-      case MODIF_TEXTE:
-        return;
-      case MODIF_VUE:
-        fermerFenetre();  // ferme même si la modif vient d'ici
-        return;
-      case MODIF_STRUCTURE:
-        fermerFenetre();
-        return;
-      case MODIF_ELEMENT:
-        return;
-      default:
-        throw new UnsupportedOperationException("Cas "+evt.getType()+" oublié dans un switch");
-    }
-  }
+	public void valueChanged(ListSelectionEvent evt) {
+		if ((ListSelectionModel) evt.getSource()!=tableauTypes.getSelectionModel())
+			return;
+		try {
+			if (evt.getValueIsAdjusting()) {
+				return;
+			}
+			int row = ((ListSelectionModel) evt.getSource()).getMinSelectionIndex();
+			if (row<0) {
+				visuVueExtraction.setTypeSelected(null, null);
+				visuVuePresentation.setTypeSelected(null, null);
+				visuVueColoriage.setTypeSelected(null, null);
+			} else {
+				String classeType = ((ModeleTableauTypes) tableauTypes.getModel()).classesTypes[row];
+				Class<? extends Element> classeSelected = GVisu.getClasse(classeType);
+				String typeSelected = GVisu.getType(classeType);
+				if (isTypesAVoir.get(classeSelected).get(typeSelected)) {
+					visuVueExtraction.setTypeSelected(classeSelected, typeSelected);
+					visuVuePresentation.setTypeSelected(classeSelected, typeSelected);
+					visuVueColoriage.setTypeSelected(classeSelected, typeSelected);
+				} else {
+					visuVueExtraction.setTypeSelected(null, null);
+					visuVuePresentation.setTypeSelected(null, null);
+					visuVueColoriage.setTypeSelected(null, null);
+				}
+			}
+		} catch (Throwable ex) {
+			GMessages.erreurFatale(ex);
+		}
+	}
 
-  private void confirmerFermerFenetre() {
-    try {
-      int rep = JOptionPane.showOptionDialog(this, "Valider les modifications ?",
-              "Fermeture de la fenêtre \"Structure des annotations\"", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,
-              null, new Object[]{"Oui", "Non", "Annuler"}, "Non");
-      if (rep==2) {
-        return;
-      }
-      if (rep==0) {
-        validerModifVue();
-      }
-      annulerModifVue();
-    } catch (Throwable ex) {
-      GMessages.erreurFatale(ex);
-    }
-  }
+	public void traiterEvent(Message evt) {
+		switch (evt.getType()) {
+		case CLEAR_CORPUS:
+			fermerFenetre();
+			return;
+		case CORPUS_SAVED:
+			fermerFenetre();
+			return;
+		case NEW_CORPUS:  // impossible en principe : CLEAR_CORPUS a détruit la fenêtre
+			throw new UnsupportedOperationException("Fenêtre vue présente lors d'un message NEW_CORPUS ???");
+		case MODIF_TEXTE:
+			return;
+		case MODIF_VUE:
+			fermerFenetre();  // ferme même si la modif vient d'ici
+			return;
+		case MODIF_STRUCTURE:
+			fermerFenetre();
+			return;
+		case MODIF_ELEMENT:
+			return;
+		default:
+			throw new UnsupportedOperationException("Cas "+evt.getType()+" oublié dans un switch");
+		}
+	}
 
-  private void fermerFenetre() {
-    vue.removeEventListener(this);
-    dispose();
+	private void confirmerFermerFenetre() {
+		try {
+			int rep = JOptionPane.showOptionDialog(this, "Valider les modifications ?",
+					"Fermeture de la fenêtre \"Structure des annotations\"", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,
+					null, new Object[]{"Oui", "Non", "Annuler"}, "Non");
+			if (rep==2) {
+				return;
+			}
+			if (rep==0) {
+				validerModifVue();
+			}
+			annulerModifVue();
+		} catch (Throwable ex) {
+			GMessages.erreurFatale(ex);
+		}
+	}
 
+	private void fermerFenetre() {
+		vue.removeEventListener(this);
+		dispose();
 
-  }
 
-  private class ModeleTableauTypes extends AbstractTableModel {
-    String[] classesTypes;
+	}
 
-    private ModeleTableauTypes() {
-      super();
-      classesTypes = GVisu.getClassesTypes(vue.getTypes(Unite.class), vue.getTypes(Relation.class), vue.getTypes(Schema.class));
-    }
+	private class ModeleTableauTypes extends AbstractTableModel {
+		String[] classesTypes;
 
-    public int getColumnCount() {
-      return 2;
-    }
+		private ModeleTableauTypes() {
+			super();
+			classesTypes = GVisu.getClassesTypes(vue.getTypes(Unite.class), vue.getTypes(Relation.class), vue.getTypes(Schema.class));
+		}
 
-    public int getRowCount() {
-      return classesTypes.length;
-    }
+		public int getColumnCount() {
+			return 2;
+		}
 
-    public Object getValueAt(int row, int col) {
-      String classeType = classesTypes[row];
-      return col==0 ? classeType : isTypesAVoir.get(GVisu.getClasse(classeType)).get(GVisu.getType(classeType));
-    }
+		public int getRowCount() {
+			return classesTypes.length;
+		}
 
-    @Override
-    public String getColumnName(int col) {
-      return col==0 ? "Types d'éléments" : "à voir";
-    }
+		public Object getValueAt(int row, int col) {
+			String classeType = classesTypes[row];
+			return col==0 ? classeType : isTypesAVoir.get(GVisu.getClasse(classeType)).get(GVisu.getType(classeType));
+		}
 
-    @Override
-    public Class getColumnClass(int col) {
-      return col==0 ? String.class : Boolean.class;
-    }
+		@Override
+		public String getColumnName(int col) {
+			return col==0 ? "Types d'éléments" : "à voir";
+		}
 
-    @Override
-    public boolean isCellEditable(int row, int col) {
-      return col==1;
-    }
+		@Override
+		public Class getColumnClass(int col) {
+			return col==0 ? String.class : Boolean.class;
+		}
 
-    @Override
-    public void setValueAt(Object aValue, int row, int col) {
-      if (col==1) {
-        String classeType = classesTypes[row];
-        isTypesAVoir.get(GVisu.getClasse(classeType)).put(GVisu.getType(classeType), (Boolean) aValue);
-        tableauTypes.clearSelection();  // important : à faire même quand aValue est vrai
-        // pour que l'événement "ListSelection change" soit émis dans tous les cas
-        if ((Boolean) aValue) {
-          tableauTypes.setRowSelectionInterval(row, row);
-          tableauTypes.setColumnSelectionInterval(0, 0);
-        }
-      }
-    }
-  }
+		@Override
+		public boolean isCellEditable(int row, int col) {
+			return col==1;
+		}
+
+		@Override
+		public void setValueAt(Object aValue, int row, int col) {
+			if (col==1) {
+				String classeType = classesTypes[row];
+				isTypesAVoir.get(GVisu.getClasse(classeType)).put(GVisu.getType(classeType), (Boolean) aValue);
+				tableauTypes.clearSelection();  // important : à faire même quand aValue est vrai
+				// pour que l'événement "ListSelection change" soit émis dans tous les cas
+				if ((Boolean) aValue) {
+					tableauTypes.setRowSelectionInterval(row, row);
+					tableauTypes.setColumnSelectionInterval(0, 0);
+				}
+			}
+		}
+	}
 }
Index: tmp/org.txm.analec.rcp/src/visuAnalec/fichiers/FichiersJava.java
===================================================================
--- tmp/org.txm.analec.rcp/src/visuAnalec/fichiers/FichiersJava.java	(revision 915)
+++ tmp/org.txm.analec.rcp/src/visuAnalec/fichiers/FichiersJava.java	(revision 916)
@@ -363,26 +363,30 @@
     }
   }
 
+  public static boolean enregistrerVue(Vue vue, File fichier) {
+	    ObjectOutputStream oos = null;
+	    try {
+	      oos = new ObjectOutputStream(new FileOutputStream(fichier));
+	      vue.ecrireJava(oos);
+	    } catch (IOException ex) {
+	      JOptionPane.showMessageDialog(null, ex, "Erreur d'écriture de fichier", JOptionPane.ERROR_MESSAGE);
+	      return false;
+	    } finally {
+	      try {
+	        if (oos!=null) oos.close();
+	        return true;
+	      } catch (IOException ex) {
+	        JOptionPane.showMessageDialog(null, ex, "Erreur de fermeture de fichier écrit", JOptionPane.ERROR_MESSAGE);
+	        return false;
+	      }
+	    }
+	  }
+  
   public static boolean enregistrerVue(Vue vue) {
     File fichier;
     if ((fichier = Fichiers.choisirFichier(Commande.ENREGISTRER,
             "Nom du fichier vue", Fichiers.TypeFichier.VUE))==null) return false;
-    ObjectOutputStream oos = null;
-    try {
-      oos = new ObjectOutputStream(new FileOutputStream(fichier));
-      vue.ecrireJava(oos);
-    } catch (IOException ex) {
-      JOptionPane.showMessageDialog(null, ex, "Erreur d'écriture de fichier", JOptionPane.ERROR_MESSAGE);
-      return false;
-    } finally {
-      try {
-        if (oos!=null) oos.close();
-        return true;
-      } catch (IOException ex) {
-        JOptionPane.showMessageDialog(null, ex, "Erreur de fermeture de fichier écrit", JOptionPane.ERROR_MESSAGE);
-        return false;
-      }
-    }
+    return enregistrerVue(vue, fichier);
   }
   /*permet d'ouvrir un procédure d'affichage du module des chaines de coréférence*/
     public static HashMap<String,Object> ouvrirChaineVue() {
@@ -445,9 +449,6 @@
             oos.close();
             return false;
         }
-    
-
   }
   
-  
 }
Index: tmp/org.txm.oriflamms.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.oriflamms.rcp/META-INF/MANIFEST.MF	(revision 915)
+++ tmp/org.txm.oriflamms.rcp/META-INF/MANIFEST.MF	(revision 916)
@@ -4,7 +4,7 @@
 Bundle-Vendor: Textometrie.org
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 1.0.0.qualifier
-Bundle-Name: Oriflamms
+Bundle-Name: org.txm.oriflamms.rcp
 Bundle-ManifestVersion: 2
 Bundle-Activator: oriflamms.Activator
 Bundle-SymbolicName: org.txm.oriflamms.rcp;singleton:=true
