Index: tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java
===================================================================
--- tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java	(revision 1967)
+++ tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java	(revision 1968)
@@ -625,7 +625,9 @@
 	}
 
 	public void setURL(String url) {
-		super.setURL(url);
+		if (!this.browser.isDisposed()) {
+			super.setURL(url);
+		}
 	}
 
 	/**
Index: tmp/org.txm.analec.rcp/src/org/txm/annotation/urs/Messages.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/annotation/urs/Messages.java	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/annotation/urs/Messages.java	(revision 1968)
@@ -14,7 +14,6 @@
 	public static String DoInstallStep_2;
 	public static String DoInstallStep_5;
 	public static String DoInstallStep_6;
-	public static String DoInstallStep_7;
 	public static String DoInstallStep_9;
 	public static String EditStructure_0;
 	public static String ExportGlozzCorpus_0;
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/ReferentialDensityMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/ReferentialDensityMacro.groovy	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/ReferentialDensityMacro.groovy	(revision 1968)
@@ -9,7 +9,9 @@
 import groovy.transform.Field
 import org.txm.rcp.swt.widget.parameters.*
 import org.txm.annotation.urs.*
+import visuAnalec.elements.*
 import org.txm.searchengine.cqp.corpus.*
+import org.txm.macro.urs.AnalecUtils
 
 if (!(corpusViewSelection instanceof CQPCorpus)) {
 	println "Corpora selection is not a Corpus"
@@ -24,9 +26,14 @@
 strict_inclusion
 @Field @Option(name="limit_distance", usage="Unit distance to structure limit (0 = no selection, 1 = first after limit, -1 = last before limit, etc.)", widget="Integer", required=true, def="0")
 limit_distance
+
+@Field @Option(name="debug", usage="Show internal variable content", widget="StringArray", metaVar="OFF	ON	ALL	REALLY ALL", required=true, def="OFF")
+debug
+
 if (!ParametersDialog.open(this)) return;
-// END OF PARAMETERS
+if (debug == "OFF") debug = 0; else if (debug == "ON") debug = 1; else if (debug == "ALL") debug = 2 else if (debug == "REALLY ALL") debug = 3
 
+
 CQPCorpus corpus = corpusViewSelection
 def analecCorpus = URSCorpora.getCorpus(corpus);
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/StabilityScoreMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/StabilityScoreMacro.groovy	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/StabilityScoreMacro.groovy	(revision 1968)
@@ -12,7 +12,15 @@
 import org.txm.annotation.urs.*
 import org.txm.searchengine.cqp.corpus.*
 import org.apache.commons.lang.StringUtils;
+import org.txm.macro.urs.AnalecUtils
+import visuAnalec.elements.*
+import org.txm.searchengine.cqp.CQPSearchEngine
 
+if (!(corpusViewSelection instanceof CQPCorpus)) {
+	println "Corpora selection is not a Corpus"
+	return;
+}
+
 @Field @Option(name="schema_ursql", usage="TYPE@PROP=REGEX", widget="String", required=true, def="CHAINE")
 String schema_ursql
 
@@ -28,15 +36,13 @@
 @Field @Option(name="word_property", usage="", widget="String", required=false, def="word")
 String word_property
 
-if (!(corpusViewSelection instanceof CQPCorpus)) {
-	println "Corpora selection is not a Corpus"
-	return;
-}
+@Field @Option(name="debug", usage="Show internal variable content", widget="StringArray", metaVar="OFF	ON	ALL	REALLY ALL", required=true, def="OFF")
+debug
 
-// Open the parameters input dialog box
 if (!ParametersDialog.open(this)) return;
-// END OF PARAMETERS
+if (debug == "OFF") debug = 0; else if (debug == "ON") debug = 1; else if (debug == "ALL") debug = 2 else if (debug == "REALLY ALL") debug = 3
 
+
 def corpus = corpusViewSelection
 def analecCorpus = URSCorpora.getCorpus(corpus)
 
@@ -65,8 +71,8 @@
 	
 	def allUnites = schema.getUnitesSousjacentesNonTriees()
 
-	def units = AnalecUtils.filterElements(false, allUnites, unit_ursql)
-
+	def units = AnalecUtils.filterElements(debug, allUnites, unit_ursql)
+	def nUnites = units.size()
 	for (def unit : units) {
 	
 		String forme =  null;
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/SchemasMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/SchemasMacro.groovy	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/SchemasMacro.groovy	(revision 1968)
@@ -10,11 +10,19 @@
 import groovy.transform.Field
 import org.txm.rcp.swt.widget.parameters.*
 import org.txm.annotation.urs.*
+import visuAnalec.elements.*
 import org.txm.searchengine.cqp.corpus.*
+import org.txm.macro.urs.AnalecUtils
 import org.txm.Toolbox
 import org.txm.rcp.commands.*
 import org.apache.commons.lang.StringUtils
+import org.txm.searchengine.cqp.CQPSearchEngine
 
+if (!(corpusViewSelection instanceof CQPCorpus)) {
+	println "Corpus view selection is not a Corpus"
+	return;
+}
+
 // BEGINNING OF PARAMETERS
 @Field @Option(name="schema_ursql", usage="TYPE@PROP=VALUE", widget="String", required=true, def="CHAINE")
 String schema_ursql
@@ -34,15 +42,13 @@
 @Field @Option(name="buildCQL", usage="générer la requête des unités", widget="Boolean", required=true, def='false')
 def buildCQL
 
+@Field @Option(name="debug", usage="Show internal variable content", widget="StringArray", metaVar="OFF	ON	ALL	REALLY ALL", required=true, def="OFF")
+debug
 
-if (!(corpusViewSelection instanceof CQPCorpus)) {
-	println "Corpus view selection is not a Corpus"
-	return;
-}
-
 if (!ParametersDialog.open(this)) return;
-// END OF PARAMETERS
+if (debug == "OFF") debug = 0; else if (debug == "ON") debug = 1; else if (debug == "ALL") debug = 2 else if (debug == "REALLY ALL") debug = 3
 
+
 CQPCorpus corpus = corpusViewSelection
 def analecCorpus = URSCorpora.getCorpus(corpus)
 
@@ -72,7 +78,7 @@
 for (def schema : schemas) {
 
 	def allUnites = schema.getUnitesSousjacentesNonTriees()
-	def units = AnalecUtils.filterElements(false, allUnites, unit_ursql)
+	def units = AnalecUtils.filterElements(debug, allUnites, unit_ursql)
 	
 	print schema.getProps().toString()+ ": "
 	def first = true
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/MeanDistanceMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/MeanDistanceMacro.groovy	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/MeanDistanceMacro.groovy	(revision 1968)
@@ -10,11 +10,18 @@
 import groovy.transform.Field
 import org.txm.rcp.swt.widget.parameters.*
 import org.txm.annotation.urs.*
+import org.txm.macro.urs.AnalecUtils
+import visuAnalec.elements.*
 import org.txm.searchengine.cqp.corpus.*
 import org.txm.Toolbox
 import org.txm.rcp.commands.*
-import org.txm.macro.urs.AnalecUtils
+import org.txm.statsengine.r.core.RWorkspace
 
+if (!(corpusViewSelection instanceof CQPCorpus)) {
+	println "Corpora selection is not a Corpus"
+	return;
+}
+
 @Field @Option(name="schema_ursql", usage="TYPE@PROP=REGEX", widget="String", required=true, def="CHAINE")
 String schema_ursql
 
@@ -27,13 +34,11 @@
 @Field @Option(name="unit_ursql", usage="TYPE@PROP=REGEX", widget="String", required=false, def="MENTION")
 String unit_ursql
 
-if (!(corpusViewSelection instanceof CQPCorpus)) {
-	println "Corpora selection is not a Corpus"
-	return;
-}
+@Field @Option(name="debug", usage="Show internal variable content", widget="StringArray", metaVar="OFF	ON	ALL	REALLY ALL", required=true, def="OFF")
+debug
 
 if (!ParametersDialog.open(this)) return;
-// END OF PARAMETERS
+if (debug == "OFF") debug = 0; else if (debug == "ON") debug = 1; else if (debug == "ALL") debug = 2 else if (debug == "REALLY ALL") debug = 3
 
 def corpus = corpusViewSelection
 def analecCorpus = URSCorpora.getCorpus(corpus)
@@ -58,7 +63,7 @@
 
 	def allUnites = schema.getUnitesSousjacentesNonTriees()
 	
-	def units = AnalecUtils.filterElements(false, allUnites, unit_ursql)
+	def units = AnalecUtils.filterElements(debug, allUnites, unit_ursql)
 	
 	int nUnites = units.size();
 		
@@ -122,12 +127,12 @@
 
 // execute R script
 r.plot(PNGFile, "png(file = \"${PNGFilePath}\"); "+script)
-r.plot(SVGFile, "svg(file = \"${SVGFilePath}\"); "+script)
+r.plot(SVGFile, "svglite(file = \"${SVGFilePath}\"); "+script)
 
 //display the SVG results graphic
 monitor.syncExec(new Runnable() {
 	@Override
-	public void run() { OpenSVGGraph.OpenSVGFile(SVGFilePath, corpusName+" Longueur des chaînes") }
+	public void run() { OpenBrowser.openfile(SVGFilePath, corpusName+" Longueur des chaînes") }
 })
 
 return ["result":coef, "data":lens]
\ No newline at end of file
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/InterDistanceMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/InterDistanceMacro.groovy	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/InterDistanceMacro.groovy	(revision 1968)
@@ -8,11 +8,18 @@
 import org.kohsuke.args4j.*
 import groovy.transform.Field
 import org.txm.*
+import org.txm.macro.urs.AnalecUtils
+import visuAnalec.elements.*
 import org.txm.rcp.swt.widget.parameters.*
 import org.txm.annotation.urs.*
 import org.txm.searchengine.cqp.corpus.*
 import org.apache.commons.lang.StringUtils;
 
+if (!(corpusViewSelection instanceof CQPCorpus)) {
+	println "Corpora selection is not a Corpus"
+	return;
+}
+
 // BEGINNING OF PARAMETERS
 @Field @Option(name="schema_ursql", usage="TYPE@PROP=REGEX", widget="String", required=true, def="CHAINE")
 String schema_ursql
@@ -26,12 +33,11 @@
 @Field @Option(name="unit_ursql", usage="TYPE@PROP=REGEX", widget="String", required=false, def="MENTION")
 String unit_ursql
 
-if (!(corpusViewSelection instanceof CQPCorpus)) {
-	println "Corpora selection is not a Corpus"
-	return;
-}
+@Field @Option(name="debug", usage="Show internal variable content", widget="StringArray", metaVar="OFF	ON	ALL	REALLY ALL", required=true, def="OFF")
+debug
 
 if (!ParametersDialog.open(this)) return;
+if (debug == "OFF") debug = 0; else if (debug == "ON") debug = 1; else if (debug == "ALL") debug = 2 else if (debug == "REALLY ALL") debug = 3
 
 CQPCorpus corpus = corpusViewSelection
 def analecCorpus = URSCorpora.getCorpus(corpus)
@@ -54,7 +60,7 @@
 	
 	def allUnites = schema.getUnitesSousjacentesNonTriees()
 
-	def units = AnalecUtils.filterElements(false, allUnites, unit_ursql)
+	def units = AnalecUtils.filterElements(debug, allUnites, unit_ursql)
 	
 	Collections.sort(units)
 		
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/NatureOfTheFirstUnitMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/NatureOfTheFirstUnitMacro.groovy	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/NatureOfTheFirstUnitMacro.groovy	(revision 1968)
@@ -8,11 +8,19 @@
 import org.kohsuke.args4j.*
 import groovy.transform.Field
 import org.txm.*
+import org.txm.macro.urs.AnalecUtils
+import visuAnalec.elements.*
 import org.txm.rcp.swt.widget.parameters.*
 import org.txm.annotation.urs.*
 import org.txm.searchengine.cqp.corpus.*
+import org.txm.searchengine.cqp.CQPSearchEngine
 import org.apache.commons.lang.StringUtils;
 
+if (!(corpusViewSelection instanceof CQPCorpus)) {
+	println "Corpora selection is not a Corpus"
+	return;
+}
+
 // BEGINNING OF PARAMETERS
 @Field @Option(name="schema_ursql", usage="TYPE@PROP=REGEX", widget="String", required=true, def="CHAINE")
 String schema_ursql
@@ -26,15 +34,13 @@
 @Field @Option(name="word_property", usage="", widget="String", required=false, def="CATEGORIE")
 String word_property
 
-if (!(corpusViewSelection instanceof CQPCorpus)) {
-	println "Corpora selection is not a Corpus"
-	return;
-}
+@Field @Option(name="debug", usage="Show internal variable content", widget="StringArray", metaVar="OFF	ON	ALL	REALLY ALL", required=true, def="OFF")
+debug
 
-// Open the parameters input dialog box
 if (!ParametersDialog.open(this)) return;
-// END OF PARAMETERS
+if (debug == "OFF") debug = 0; else if (debug == "ON") debug = 1; else if (debug == "ALL") debug = 2 else if (debug == "REALLY ALL") debug = 3
 
+
 CQPCorpus corpus = corpusViewSelection
 def analecCorpus = URSCorpora.getCorpus(corpus)
 
@@ -61,7 +67,7 @@
 	
 	def allUnites = schema.getUnitesSousjacentesNonTriees()
 	
-	def units = AnalecUtils.filterElements(false, allUnites, unit_ursql)
+	def units = AnalecUtils.filterElements(debug, allUnites, unit_ursql)
 	
 	int nUnites = units.size();
 	
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/NumberOfSchemaMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/NumberOfSchemaMacro.groovy	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/NumberOfSchemaMacro.groovy	(revision 1968)
@@ -9,8 +9,14 @@
 import groovy.transform.Field
 import org.txm.rcp.swt.widget.parameters.*
 import org.txm.annotation.urs.*
+import visuAnalec.elements.*
 import org.txm.searchengine.cqp.corpus.*
+import org.txm.macro.urs.AnalecUtils
 
+if (!(corpusViewSelection instanceof CQPCorpus)) {
+	println "Corpora selection is not a Corpus"
+	return;
+}
 
 // BEGINNING OF PARAMETERS
 @Field @Option(name="schema_ursql", usage="TYPE@PROP=REGEX", widget="String", required=true, def="CHAINE")
@@ -22,15 +28,13 @@
 @Field @Option(name="unit_ursql", usage="TYPE@PROP=REGEX", widget="String", required=false, def="MENTION")
 String unit_ursql
 
-if (!(corpusViewSelection instanceof CQPCorpus)) {
-	println "Corpora selection is not a Corpus"
-	return;
-}
+@Field @Option(name="debug", usage="Show internal variable content", widget="StringArray", metaVar="OFF	ON	ALL	REALLY ALL", required=true, def="OFF")
+debug
 
-// Open the parameters input dialog box
 if (!ParametersDialog.open(this)) return;
-// END OF PARAMETERS
+if (debug == "OFF") debug = 0; else if (debug == "ON") debug = 1; else if (debug == "ALL") debug = 2 else if (debug == "REALLY ALL") debug = 3
 
+
 CQPCorpus corpus = corpusViewSelection
 def analecCorpus = URSCorpora.getCorpus(corpus)
 
Index: tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/GrammaticalCategoryMacro.groovy
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/GrammaticalCategoryMacro.groovy	(revision 1967)
+++ tmp/org.txm.analec.rcp/src/org/txm/macro/urs/exploit/mesures1/GrammaticalCategoryMacro.groovy	(revision 1968)
@@ -8,6 +8,8 @@
 import org.kohsuke.args4j.*
 import groovy.transform.Field
 import org.txm.*
+import org.txm.macro.urs.AnalecUtils
+import visuAnalec.elements.*
 import org.txm.rcp.swt.widget.parameters.*
 import org.txm.annotation.urs.*
 import org.txm.searchengine.cqp.*
@@ -29,9 +31,11 @@
 String unit_ursql
 
 @Field @Option(name="property", usage="", widget="String", required=false, def="CATEGORIE")
-
 String property
 
+@Field @Option(name="debug", usage="Show internal variable content", widget="StringArray", metaVar="OFF	ON	ALL	REALLY ALL", required=true, def="OFF")
+debug
+
 if (!(corpusViewSelection instanceof CQPCorpus)) {
 	println "Corpora selection is not a Corpus"
 	return;
@@ -39,6 +43,8 @@
 
 // Open the parameters input dialog box
 if (!ParametersDialog.open(this)) return;
+if (debug == "OFF") debug = 0; else if (debug == "ON") debug = 1; else if (debug == "ALL") debug = 2 else if (debug == "REALLY ALL") debug = 3
+
 // END OF PARAMETERS
 
 MainCorpus corpus = corpusViewSelection
@@ -70,7 +76,7 @@
 		
 	def allUnites = schema.getUnitesSousjacentesNonTriees()
 
-	def units = AnalecUtils.filterElements(false, allUnites, unit_ursql)
+	def units = AnalecUtils.filterElements(debug, allUnites, unit_ursql)
 	
 	for (def unit : units) { // no need to sort units
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenSVGGraph.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenSVGGraph.java	(revision 1967)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenSVGGraph.java	(revision 1968)
@@ -117,8 +117,13 @@
 		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
 		IWorkbenchPage page = window.getActivePage();
 		try {
-			SVGGraphicEditor editor = (SVGGraphicEditor) page.openEditor(editorInput, "org.txm.rcp.editors.SVGGraphicEditor"); //$NON-NLS-1$
-			return editor;
+			IEditorPart e = page.openEditor(editorInput, "org.txm.rcp.editors.SVGGraphicEditor"); //$NON-NLS-1$
+			if (e != null && e instanceof SVGGraphicEditor) {
+				SVGGraphicEditor editor = (SVGGraphicEditor) e;
+				return editor;
+			} else {
+				return null;
+			}
 		}
 		catch (Exception e) {
 			// TODO Auto-generated catch block
