Index: TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy
===================================================================
--- TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy	(revision 3510)
+++ TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy	(revision 3511)
@@ -160,8 +160,8 @@
 				this.idxstart.add("w_0")
 				pagedWriter.write("<span id=\"w_0\"/>");
 			}
-			pagedWriter.writeEndElements();
-			// write notes
+			
+			// write notes before closing all tags 
 			if (notes.size() > 0) {
 				pagedWriter.writeStartElement("hr", ["id":"notes", "width":"20%", "align":"left"]);
 				pagedWriter.writeEndElement() // </hr>
@@ -181,6 +181,8 @@
 				notes.clear()
 			}
 			
+			pagedWriter.writeEndElements();
+			
 			pagedWriter.close();
 			
 			//println "STACK TO REWRITE: $tags"
Index: TXM/trunk/TXMAlphaPlugins.site/site.xml
===================================================================
--- TXM/trunk/TXMAlphaPlugins.site/site.xml	(revision 3510)
+++ TXM/trunk/TXMAlphaPlugins.site/site.xml	(revision 3511)
@@ -3,15 +3,15 @@
    <description name="TXM Extensions - Alpha" url="https://gitlab.huma-num.fr/txm/txm-software/-/raw/master/dist/0.8.2/ext/alpha">
       This update site contains the Alpha extensions for TXM
    </description>
-   <feature url="features/org.txm.annotation.urs.feature_1.0.0.202104081736.jar" id="org.txm.annotation.urs.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.backtomedia.feature_1.0.0.202104081736.jar" id="org.txm.backtomedia.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.dictionary.feature_1.0.0.202104081736.jar" id="org.txm.dictionary.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.oriflamms.feature_1.0.0.202104081736.jar" id="org.txm.oriflamms.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.svn.feature_1.0.0.202104081736.jar" id="org.txm.svn.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.textsbalance.feature_1.0.0.202104081736.jar" id="org.txm.textsbalance.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.tigersearch.feature_1.0.0.202104081736.jar" id="org.txm.tigersearch.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.translate.feature_1.0.0.202104081736.jar" id="org.txm.translate.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.wordcloud.feature_1.0.0.202104081736.jar" id="org.txm.wordcloud.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.xmleditor.feature_1.0.0.202104081736.jar" id="org.txm.xmleditor.feature" version="1.0.0.202104081736"/>
-   <feature url="features/org.txm.udpipe.feature_1.0.0.202104081736.jar" id="org.txm.udpipe.feature" version="1.0.0.202104081736"/>
+   <feature url="features/org.txm.annotation.urs.feature_1.0.0.202207281752.jar" id="org.txm.annotation.urs.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.backtomedia.feature_1.0.0.202207281752.jar" id="org.txm.backtomedia.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.dictionary.feature_1.0.0.202207281752.jar" id="org.txm.dictionary.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.oriflamms.feature_1.0.0.202207281752.jar" id="org.txm.oriflamms.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.svn.feature_1.0.0.202207281752.jar" id="org.txm.svn.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.textsbalance.feature_1.0.0.202207281752.jar" id="org.txm.textsbalance.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.translate.feature_1.0.0.202207281752.jar" id="org.txm.translate.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.wordcloud.feature_1.0.0.202207281752.jar" id="org.txm.wordcloud.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.xmleditor.feature_1.0.0.202207281752.jar" id="org.txm.xmleditor.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.udpipe.feature_1.0.0.202207281752.jar" id="org.txm.udpipe.feature" version="1.0.0.202207281752"/>
+   <feature url="features/org.txm.treesearch.feature_1.0.0.202207281752.jar" id="org.txm.treesearch.feature" version="1.0.0.202207281752"/>
 </site>
Index: TXM/trunk/org.txm.treesearch.rcp/plugin.xml
===================================================================
--- TXM/trunk/org.txm.treesearch.rcp/plugin.xml	(revision 3510)
+++ TXM/trunk/org.txm.treesearch.rcp/plugin.xml	(revision 3511)
@@ -61,12 +61,12 @@
             allPopups="false"
             locationURI="popup:org.txm.rcp.views.corpora.CorporaView?after=org.txm.rcp.corporaview.annotation">
          <command
-               commandId="org.txm.tigersearch.commands.ComputeTreeSearch"
+               commandId="org.txm.treesearch.command.ComputeTreeSearch"
                icon="icons/functions/Tree.png"
                label="%command.label"
                style="push">
             <visibleWhen
-                  checkEnabled="false">
+                  checkEnabled="true">
                <or>
                   <test
                         forcePluginActivation="true"
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/DeleteFile.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/DeleteFile.java	(revision 3510)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/DeleteFile.java	(revision 3511)
@@ -88,7 +88,7 @@
 	 * open a dialog box to confirm and update views
 	 * 
 	 * @param files the files or directories to delete
-	 * @param definitive definitivelly delete the files FIXME NOT IMPLEMENTED YET
+	 * @param definitive definitively delete the files FIXME NOT IMPLEMENTED YET
 	 */
 	public static void delete(List<?> files, boolean definitive) {
 		
@@ -112,7 +112,7 @@
 									File dest = new File(System.getProperty("java.io.tmpdir"), file.getName());
 									dest.delete();
 									if (!file.renameTo(dest)) {
-										System.out.println(NLS.bind("Fail to move file to the tmp directory: {0}", file));
+										System.out.println(NLS.bind("Fail to move the {0} file to the tmp directory: {1}", file, dest));
 									}
 								}
 							}
Index: TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/views/fileexplorer/MacroExplorer.java
===================================================================
--- TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/views/fileexplorer/MacroExplorer.java	(revision 3510)
+++ TXM/trunk/org.txm.rcp/src/main/java/org/txm/rcp/views/fileexplorer/MacroExplorer.java	(revision 3511)
@@ -300,7 +300,7 @@
 				if (sel instanceof IStructuredSelection) {
 					List<?> objects = ((IStructuredSelection) sel).toList();
 					if (e.keyCode == SWT.DEL) {
-						boolean definitive = (e.stateMask & SWT.SHIFT) != 0;
+						boolean definitive = true; //(e.stateMask & SWT.SHIFT) != 0;
 						DeleteFile.delete(objects, definitive);
 					}
 					else if (e.keyCode == SWT.F5) {
Index: TXM/trunk/org.txm.connlu.core/src/org/txm/conllu/core/function/ImportCoNLLUAnnotations.java
===================================================================
--- TXM/trunk/org.txm.connlu.core/src/org/txm/conllu/core/function/ImportCoNLLUAnnotations.java	(revision 3510)
+++ TXM/trunk/org.txm.connlu.core/src/org/txm/conllu/core/function/ImportCoNLLUAnnotations.java	(revision 3511)
@@ -64,7 +64,7 @@
 					
 					// write previous sentence word properties
 					if (sentenceProperties.size() > 0) {
-						storeSentenceProperties(sentenceProperties, processor, propertiesPrefix, headPropertiesToProject, depsPropertiesToProject);
+						storeSentenceProperties(sentenceProperties, processor, propertiesPrefix, headPropertiesToProject, depsPropertiesToProject, udPropertiesToImport);
 					}
 					
 					sent_id = line.substring(12).trim();
@@ -150,7 +150,7 @@
 		
 		// IF ANY write previous sentence word properties 
 		if (sentenceProperties.size() > 0) {
-			storeSentenceProperties(sentenceProperties, processor, propertiesPrefix, headPropertiesToProject, depsPropertiesToProject);
+			storeSentenceProperties(sentenceProperties, processor, propertiesPrefix, headPropertiesToProject, depsPropertiesToProject, udPropertiesToImport);
 		}
 		
 		if (nWords2 == 0) {
@@ -251,7 +251,7 @@
 		//System.out.println("Result "+sentenceProperties);
 	}
 	
-	private static void storeSentenceProperties(LinkedHashMap<String, HashMap<String, String>> sentenceProperties, XMLTXMWordPropertiesInjection processor, String propertiesPrefix, Set<String> headPropertiesToProject, Set<String> depsPropertiesToProject) throws IOException, XMLStreamException {
+	private static void storeSentenceProperties(LinkedHashMap<String, HashMap<String, String>> sentenceProperties, XMLTXMWordPropertiesInjection processor, String propertiesPrefix, Set<String> headPropertiesToProject, Set<String> depsPropertiesToProject, Set<String> udPropertiesToImport) throws IOException, XMLStreamException {
 		
 		buildPropertiesProjections(sentenceProperties, headPropertiesToProject, depsPropertiesToProject);
 		
@@ -261,6 +261,8 @@
 			
 			for (String p : propertyNames) {
 				
+				if (udPropertiesToImport != null && udPropertiesToImport.size() > 0 && !udPropertiesToImport.contains(p)) continue; // keep only the sentence properties to import
+				
 				if (p.startsWith("#")) continue; //property already prefixed with #, do not add the prefix
 				
 				String value = properties.get(p);
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/ImportTEIAnnotations.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/ImportTEIAnnotations.java	(revision 3510)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/ImportTEIAnnotations.java	(revision 3511)
@@ -32,8 +32,13 @@
 
 	@Option(name="directory",usage="the directory containing the XML-TEI-URS annotations files", widget="Folder", required=true, def="annotations")
 	File directory;
+	
 	@Option(name="aamFile",usage="The Glozz model file", widget="FileOpen", required=false, def="model.aam")
 	File aamFile;
+	
+	@Option(name="evFile",usage="The Analec view file", widget="FileOpen", required=false, def="view.ev")
+	File evFile;
+	
 	//@Option(name="standoffAnnotations",usage="select this if the directory contains standoff annotation files", widget="Boolean", required=true, def="false")
 	//boolean standoffAnnotations;
 	@Option(name="resetAnnotations",usage="Remove the old annotations", widget="Boolean", required=true, def="false")
@@ -66,7 +71,7 @@
 							analecCorpus.clearAnnot();
 						}
 						
-						if (!importer(monitor, directory, aamFile, true, mainCorpus, analecCorpus, vue)) {
+						if (!importer(monitor, directory, aamFile, evFile, true, mainCorpus, analecCorpus, vue)) {
 							Log.warning(Messages.ImportTEIAnnotations_2);
 							return Status.CANCEL_STATUS;
 						} else {
@@ -111,7 +116,7 @@
 	 * @return
 	 * @throws Exception
 	 */
-	public static boolean importer(IProgressMonitor monitor, File annotationDirectory, File aamFile, boolean standoffAnnotations, MainCorpus mainCorpus, Corpus analecCorpus, Vue vue) throws Exception {
+	public static boolean importer(IProgressMonitor monitor, File annotationDirectory, File aamFile, File evFile, boolean standoffAnnotations, MainCorpus mainCorpus, Corpus analecCorpus, Vue vue) throws Exception {
 //		if (!standoffAnnotations) { // use stax because files are too big for DOM process
 //			AnalecAnnotationsImporter importer = new AnalecAnnotationsImporter(monitor, annotationDirectory, mainCorpus, analecCorpus, vue);
 //			boolean ret = importer.process();
@@ -124,7 +129,7 @@
 //			return ret;
 //		}
 		//TODO: DOMAnalecAnnotationsImporter not finished
-		URSAnnotationsImporter importer = new URSAnnotationsImporter(monitor, annotationDirectory, aamFile, mainCorpus, analecCorpus, vue);
+		URSAnnotationsImporter importer = new URSAnnotationsImporter(monitor, annotationDirectory, aamFile, evFile, mainCorpus, analecCorpus, vue);
 		boolean ret = importer.process();
 		
 		if (ret) {
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/URSAnnotationTEIExporter.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/URSAnnotationTEIExporter.java	(revision 3510)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/export/URSAnnotationTEIExporter.java	(revision 3511)
@@ -16,6 +16,7 @@
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.osgi.util.NLS;
+import org.txm.annotation.urs.URSCorpora;
 import org.txm.importer.PersonalNamespaceContext;
 import org.txm.importer.StaxIdentityParser;
 import org.txm.scripts.importer.StaxStackWriter;
@@ -36,6 +37,7 @@
 import visuAnalec.elements.Schema;
 import visuAnalec.elements.Unite;
 import visuAnalec.fichiers.FichiersGlozz;
+import visuAnalec.fichiers.FichiersJava;
 import visuAnalec.vue.Vue;
 
 /**
@@ -77,6 +79,7 @@
 	 * 1- Copy the XML-TXM files
 	 * 2- Write the annotations
 	 * 3- Write the structure
+	 * 4- Write the view
 	 * 
 	 * @return true if success
 	 * @throws Exception
@@ -117,6 +120,10 @@
 		FichiersGlozz.ModelGlozzPrinter gp = new FichiersGlozz.ModelGlozzPrinter(analecCorpus.getStructure(), model);
 		gp.ecrireModel();
 		model.close();
+		
+		//FichiersGlozz.exporterModeleGlozz(analecCorpus.getStructure());
+		File fichierVueCorpus = new File(outputDirectory, mainCorpus.getName()+".ev");
+		FichiersJava.enregistrerVue(analecVue, fichierVueCorpus);
 
 		//		File xmltxmStructureFile = new File(outputDirectory, mainCorpus.getName()+"-structure.xml");
 		//		StaxStackWriter writer = new StaxStackWriter(xmltxmStructureFile);
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/URSAnnotationsImporter.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/URSAnnotationsImporter.java	(revision 3510)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/imports/URSAnnotationsImporter.java	(revision 3511)
@@ -33,6 +33,7 @@
 import visuAnalec.elements.Schema;
 import visuAnalec.elements.Unite;
 import visuAnalec.fichiers.FichiersGlozz;
+import visuAnalec.fichiers.FichiersJava;
 import visuAnalec.vue.Vue;
 
 public class URSAnnotationsImporter {
@@ -51,11 +52,14 @@
 	
 	protected File aamFile;
 	
+	protected File evFile;
+	
 	protected static PersonalNamespaceContext Nscontext = new PersonalNamespaceContext();
 	
-	public URSAnnotationsImporter(IProgressMonitor monitor, File outputDirectory, File aamFile, MainCorpus mainCorpus, Corpus analecCorpus, Vue analecVue) {
+	public URSAnnotationsImporter(IProgressMonitor monitor, File outputDirectory, File aamFile, File evFile, MainCorpus mainCorpus, Corpus analecCorpus, Vue analecVue) {
 		this.annotationsDirectory = outputDirectory;
 		this.aamFile = aamFile;
+		this.evFile = evFile;
 		this.mainCorpus = mainCorpus;
 		this.analecCorpus = analecCorpus;
 		this.analecVue = analecVue;
@@ -72,16 +76,28 @@
 			Log.warning(NLS.bind("Error: annotationsDirectory is not a directory: {0}.", annotationsDirectory.getAbsolutePath()));
 			return false;
 		}
-		if (!aamFile.exists()) {
-			Log.warning(NLS.bind("Warning: aamFile does not exist: {0}.", aamFile.getAbsolutePath()));
-		}
+		
+		if (aamFile == null || !aamFile.exists() || aamFile.isDirectory()) {
+			Log.warning(NLS.bind("Warning: aamFile does not exist: {0}.", aamFile));
+		} 
 		else {
-			
 			if (!FichiersGlozz.importerModeleGlozz(analecCorpus, aamFile)) {
 				Log.warning(NLS.bind("Error while importing Glozz model: {0}", aamFile));
 				return false;
 			}
 		}
+		
+		if (evFile == null || !evFile.exists() || evFile.isDirectory()) {
+			Log.warning(NLS.bind("Warning: evFile does not exist: {0}.", evFile));
+		}
+		else {
+			Vue vue = URSCorpora.getVue(analecCorpus);
+			if (!FichiersJava.ouvrirVue(vue, evFile)) {
+				Log.warning(NLS.bind("Error while importing View: {0}", evFile));
+				return false;
+			}
+		}
+		
 		File[] ursFiles = annotationsDirectory.listFiles(new FilenameFilter() {
 			
 			@Override
