Index: TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/CreateMessagesTable.java
===================================================================
--- TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/CreateMessagesTable.java	(revision 3787)
+++ TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/CreateMessagesTable.java	(revision 3788)
@@ -1,18 +1,13 @@
 package org.txm.rcp.translate.devtools;
 
 import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.util.Properties;
 import java.util.TreeSet;
 
-import org.odftoolkit.simple.Document;
-import org.odftoolkit.simple.SpreadsheetDocument;
-import org.odftoolkit.simple.TextDocument;
-import org.odftoolkit.simple.table.Cell;
-import org.odftoolkit.simple.table.Row;
-import org.odftoolkit.simple.table.Table;
+import org.odftoolkit.odfdom.doc.OdfDocument;
+import org.odftoolkit.odfdom.doc.OdfSpreadsheetDocument;
+import org.odftoolkit.odfdom.doc.OdfTextDocument;
+import org.odftoolkit.odfdom.doc.table.OdfTable;
 import org.txm.rcp.translate.i18n.PluginMessagesManager;
 import org.txm.utils.io.IOUtils;
 
@@ -45,12 +40,12 @@
 		Properties slave = new Properties();
 		slave.load(IOUtils.getReader(langPropertiesFile, "UTF-8"));
 		
-		TextDocument doc = org.odftoolkit.simple.TextDocument.newTextDocument();
+		OdfTextDocument doc = OdfTextDocument.newTextDocument();
 		
 		TreeSet<Object> keys = new TreeSet<Object>(PluginMessagesManager.comp);
 		keys.addAll(master.keySet());
 		
-		Table table = doc.addTable(keys.size()+1,4);
+		OdfTable table = OdfTable.newTable(doc, keys.size()+1,4);// doc.addTable(keys.size()+1,4);
 		editTable(doc, table, keys, master, slave);
 
 		System.out.println("Saving...");
@@ -60,7 +55,7 @@
 		return true;
 	}
 	
-	private void editTable(Document doc, Table table, TreeSet<Object> keys,Properties master, Properties slave ) {
+	private void editTable(OdfDocument doc, OdfTable table, TreeSet<Object> keys,Properties master, Properties slave ) {
 		
 		table.getCellByPosition(0, 0).setStringValue("N");
 		table.getCellByPosition(1, 0).setStringValue("KEY");
@@ -91,7 +86,7 @@
 		Properties slave = new Properties();
 		slave.load(IOUtils.getReader(langPropertiesFile, "UTF-8"));
 		
-		SpreadsheetDocument spreadsheet = SpreadsheetDocument.newSpreadsheetDocument();
+		OdfSpreadsheetDocument spreadsheet = OdfSpreadsheetDocument.newSpreadsheetDocument();
 		
 		TreeSet<Object> keys = new TreeSet<Object>(PluginMessagesManager.comp);
 		keys.addAll(master.keySet());
@@ -99,7 +94,7 @@
 		//Cell cell = table.getCellByPosition(0, 0);
 //        cell.setStringValue("Hello World!");
 		
-		Table table = spreadsheet.getTableList().get(0);
+		OdfTable table = spreadsheet.getTableList().get(0);
 		table.appendRows(keys.size()+1);
 		table.appendColumns(4);
 		editTable(spreadsheet, table, keys, master, slave);
Index: TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/TableToProperties.java
===================================================================
--- TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/TableToProperties.java	(revision 3787)
+++ TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/TableToProperties.java	(revision 3788)
@@ -5,10 +5,10 @@
 import java.io.PrintWriter;
 import java.util.Properties;
 
-import org.odftoolkit.simple.TextDocument;
-import org.odftoolkit.simple.table.Cell;
-import org.odftoolkit.simple.table.Row;
-import org.odftoolkit.simple.table.Table;
+import org.odftoolkit.odfdom.doc.OdfTextDocument;
+import org.odftoolkit.odfdom.doc.table.OdfTable;
+import org.odftoolkit.odfdom.doc.table.OdfTableCell;
+import org.odftoolkit.odfdom.doc.table.OdfTableRow;
 import org.txm.utils.io.IOUtils;
 
 public class TableToProperties {
@@ -25,17 +25,17 @@
 		
 		Properties slave = new Properties();
 		
-		TextDocument doc = TextDocument.loadDocument(tableFile);
-		Table table = doc.getTableList().get(0);
+		OdfTextDocument doc = OdfTextDocument.loadDocument(tableFile);
+		OdfTable table = doc.getTableList(false).get(0);
 		
-		Row headerRow = table.getRowList().get(0);
+		OdfTableRow headerRow = table.getRowList().get(0);
 		int ncol = headerRow.getCellCount();
 		int keyIndex = -1;
 		int langIndex = -1;
 		int defaultIndex = -1;
 		String str = "";
 		for (int c = 0; c < ncol; c++) {
-			Cell cell = headerRow.getCellByIndex(c);
+			OdfTableCell cell = headerRow.getCellByIndex(c);
 			String s = cell.getDisplayText();
 			if ("KEY".equals(s)) {
 				keyIndex = c;
@@ -62,7 +62,7 @@
 			return null;
 		}
 		
-		for (Row h : table.getRowList()) {
+		for (OdfTableRow h : table.getRowList()) {
 			
 			String key = h.getCellByIndex(keyIndex).getDisplayText();
 			if (key != null) {
Index: TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/ImportMessagesTable.java
===================================================================
--- TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/ImportMessagesTable.java	(revision 3787)
+++ TXM/trunk/bundles/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/ImportMessagesTable.java	(revision 3788)
@@ -6,10 +6,10 @@
 import java.util.Properties;
 import java.util.TreeSet;
 
-import org.odftoolkit.simple.TextDocument;
-import org.odftoolkit.simple.table.Cell;
-import org.odftoolkit.simple.table.Row;
-import org.odftoolkit.simple.table.Table;
+import org.odftoolkit.odfdom.doc.OdfTextDocument;
+import org.odftoolkit.odfdom.doc.table.OdfTable;
+import org.odftoolkit.odfdom.doc.table.OdfTableCell;
+import org.odftoolkit.odfdom.doc.table.OdfTableRow;
 import org.txm.rcp.translate.i18n.PluginMessagesManager;
 import org.txm.utils.io.IOUtils;
 
@@ -62,16 +62,16 @@
 		
 		slave.load(IOUtils.getReader(langPropertiesFile, "UTF-8"));
 		
-		TextDocument doc = TextDocument.loadDocument(tableFile);
-		Table table = doc.getTableList().get(0);
+		OdfTextDocument doc = OdfTextDocument.loadDocument(tableFile);
+		OdfTable table = doc.getTableList(false).get(0);
 		
-		Row headerRow = table.getRowList().get(0);
+		OdfTableRow headerRow = table.getRowList().get(0);
 		int ncol = headerRow.getCellCount();
 		int keyIndex = -1;
 		int langIndex = -1;
 		int defaultIndex = -1;
 		for (int c = 0; c < ncol; c++) {
-			Cell cell = headerRow.getCellByIndex(c);
+			OdfTableCell cell = headerRow.getCellByIndex(c);
 			if ("KEY".equals(cell.getDisplayText())) {
 				keyIndex = c;
 			}
@@ -96,7 +96,7 @@
 			return false;
 		}
 		
-		for (Row h : table.getRowList()) {
+		for (OdfTableRow h : table.getRowList()) {
 			
 			String key = h.getCellByIndex(keyIndex).getDisplayText();
 			if (key != null) {
Index: TXM/trunk/bundles/org.txm.libs.office/lib/simple-odf-0.9.0.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: TXM/trunk/bundles/org.txm.libs.office/src/org/txm/libs/office/WriteODS.java
===================================================================
--- TXM/trunk/bundles/org.txm.libs.office/src/org/txm/libs/office/WriteODS.java	(revision 3787)
+++ TXM/trunk/bundles/org.txm.libs.office/src/org/txm/libs/office/WriteODS.java	(revision 3788)
@@ -3,16 +3,22 @@
 import java.io.File;
 import java.util.ArrayList;
 
-import org.odftoolkit.simple.SpreadsheetDocument;
-import org.odftoolkit.simple.table.Cell;
-import org.odftoolkit.simple.table.Row;
-import org.odftoolkit.simple.table.Table;
+import org.odftoolkit.odfdom.changes.Table;
+import org.odftoolkit.odfdom.doc.OdfSpreadsheetDocument;
+import org.odftoolkit.odfdom.doc.table.OdfTable;
+import org.odftoolkit.odfdom.doc.table.OdfTableCell;
+import org.odftoolkit.odfdom.doc.table.OdfTableRow;
 
+//import org.odftoolkit.simple.SpreadsheetDocument;
+//import org.odftoolkit.simple.table.Cell;
+//import org.odftoolkit.simple.table.Row;
+//import org.odftoolkit.simple.table.Table;
+
 public class WriteODS {
 	
 	static { // set Log level to WARNING
 		try {
-			SpreadsheetDocument.newSpreadsheetDocument().close();
+			OdfSpreadsheetDocument.newSpreadsheetDocument().close();
 			ReadODS.static_set_log_level();
 		}
 		catch (Exception e) {
@@ -21,24 +27,25 @@
 		}
 	}
 	
-	SpreadsheetDocument spreadsheet;
+	OdfSpreadsheetDocument spreadsheet;
 	
-	Table table;
+	OdfTable table;
 	
 	File newODSFile;
 	
 	public WriteODS(File newODSFile) throws Exception {
 		this.newODSFile = newODSFile;
-		this.spreadsheet = SpreadsheetDocument.newSpreadsheetDocument();
+		this.spreadsheet = OdfSpreadsheetDocument.newSpreadsheetDocument();
 		this.table = spreadsheet.getTableList().get(0);
 	}
 	
 	public void newTable(String name) {
 		if (name != null && name.length() > 0) {
-			this.table = spreadsheet.appendSheet(name);
+			this.table = OdfTable.newTable(spreadsheet);
+			table.setTableName(name);
 		}
 		else {
-			this.table = spreadsheet.addTable();
+			this.table = OdfTable.newTable(spreadsheet);
 		}
 	}
 	
@@ -58,10 +65,10 @@
 		}
 	}
 	
-	protected void writeLine(Object[] line, Row row) {
+	protected void writeLine(Object[] line, OdfTableRow row) {
 		if (table == null) throw new IllegalStateException("no table set with 'newTable(...)'");
 		for (int iCol = 0; iCol < line.length; iCol++) {
-			Cell cell = row.getCellByIndex(iCol);
+			OdfTableCell cell = row.getCellByIndex(iCol);
 			if (cell != null) {
 				writeCell(cell, line[iCol]);
 			}
@@ -71,9 +78,9 @@
 		}
 	}
 	
-	public Row writeLine(Object[] line, int iRow) {
+	public OdfTableRow writeLine(Object[] line, int iRow) {
 		if (table == null) throw new IllegalStateException("no table set with 'newtTable(...)'");
-		Row row = table.getRowByIndex(iRow);
+		OdfTableRow row = table.getRowByIndex(iRow);
 		if (row != null) {
 			writeLine(line, row);
 		}
@@ -83,11 +90,11 @@
 		return row;
 	}
 	
-	public Row writeLine(ArrayList<?> line, int iRow) {
+	public OdfTableRow writeLine(ArrayList<?> line, int iRow) {
 		
 		if (table == null) throw new IllegalStateException("no table set with 'newtTable(...)'");
 		
-		Row row = table.getRowByIndex(iRow);
+		OdfTableRow row = table.getRowByIndex(iRow);
 		if (row != null) {
 			writeLine(line.toArray(), row);
 		}
@@ -97,20 +104,20 @@
 		return row;
 	}
 	
-	public Row writeLine(Object[] line) {
+	public OdfTableRow writeLine(Object[] line) {
 		
 		if (table == null) throw new IllegalStateException("no table set with 'newTable(...)'");
 		
-		Row row = table.appendRow();
+		OdfTableRow row = table.appendRow();
 		writeLine(line, row);
 		return row;
 	}
 	
-	public Row writeLine(ArrayList<?> line) {
+	public OdfTableRow writeLine(ArrayList<?> line) {
 		
 		if (table == null) throw new IllegalStateException("no table set with 'newTable(...)'");
 		
-		Row row = table.appendRow();
+		OdfTableRow row = table.appendRow();
 		writeLine(line.toArray(), row);
 		return row;
 	}
@@ -123,17 +130,17 @@
 		
 		if (data.length == 0) throw new IllegalArgumentException("no data to write in " + newODFFile);
 		
-		SpreadsheetDocument spreadsheet = SpreadsheetDocument.newSpreadsheetDocument();
+		OdfSpreadsheetDocument spreadsheet = OdfSpreadsheetDocument.newSpreadsheetDocument();
 		Object[] firstLine = data[0];
-		Table table = spreadsheet.addTable();
+		OdfTable table = OdfTable.newTable(spreadsheet);
 		table.appendRows(data.length);
 		table.appendColumns(firstLine.length);
 		
 		for (int iRow = 0; iRow < data.length; iRow++) {
-			Row row = table.appendRow();
+			OdfTableRow row = table.appendRow();
 			Object[] line = data[iRow];
 			for (int iCol = 0; iCol < line.length; iCol++) {
-				Cell cell = row.getCellByIndex(iCol);
+				OdfTableCell cell = row.getCellByIndex(iCol);
 				writeCell(cell, line[iCol]);
 			}
 		}
@@ -145,17 +152,17 @@
 		
 		if (data.size() == 0) throw new IllegalArgumentException("no data to write in " + newODFFile);
 		
-		SpreadsheetDocument spreadsheet = SpreadsheetDocument.newSpreadsheetDocument();
+		OdfSpreadsheetDocument spreadsheet = OdfSpreadsheetDocument.newSpreadsheetDocument();
 		ArrayList<?> firstLine = data.get(0);
-		Table table = spreadsheet.addTable();
+		OdfTable table = OdfTable.newTable(spreadsheet);
 		table.appendRows(data.size());
 		table.appendColumns(firstLine.size());
 		
 		for (int iRow = 0; iRow < data.size(); iRow++) {
-			Row row = table.appendRow();
+			OdfTableRow row = table.appendRow();
 			ArrayList<?> line = data.get(iRow);
 			for (int iCol = 0; iCol < line.size(); iCol++) {
-				Cell cell = row.getCellByIndex(iCol);
+				OdfTableCell cell = row.getCellByIndex(iCol);
 				writeCell(cell, line.get(iCol));
 			}
 		}
@@ -163,7 +170,7 @@
 		spreadsheet.save(newODFFile);
 	}
 	
-	private static void writeCell(Cell cell, Object object) {
+	private static void writeCell(OdfTableCell cell, Object object) {
 		
 		if (object == null) cell.removeContent();
 		
Index: TXM/trunk/bundles/org.txm.libs.office/src/org/txm/libs/office/ReadODS.java
===================================================================
--- TXM/trunk/bundles/org.txm.libs.office/src/org/txm/libs/office/ReadODS.java	(revision 3787)
+++ TXM/trunk/bundles/org.txm.libs.office/src/org/txm/libs/office/ReadODS.java	(revision 3788)
@@ -8,19 +8,19 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import org.odftoolkit.odfdom.doc.OdfSpreadsheetDocument;
+import org.odftoolkit.odfdom.doc.table.OdfTable;
+import org.odftoolkit.odfdom.doc.table.OdfTableCell;
+import org.odftoolkit.odfdom.doc.table.OdfTableRow;
 import org.odftoolkit.odfdom.dom.element.table.TableTableRowElement;
 import org.odftoolkit.odfdom.pkg.OdfXMLFactory;
-import org.odftoolkit.simple.SpreadsheetDocument;
-import org.odftoolkit.simple.table.Cell;
-import org.odftoolkit.simple.table.Row;
-import org.odftoolkit.simple.table.Table;
 import org.w3c.dom.NodeList;
 
 public class ReadODS {
 	
 	static {  // set Log level to WARNING
 		try {
-			SpreadsheetDocument.newSpreadsheetDocument().close();
+			OdfSpreadsheetDocument.newSpreadsheetDocument().close();
 			static_set_log_level();
 		}
 		catch (Exception e) {
@@ -29,9 +29,9 @@
 		}
 	}
 	
-	SpreadsheetDocument spreadsheet = null;
+	OdfSpreadsheetDocument spreadsheet = null;
 	
-	Table table = null;
+	OdfTable table = null;
 	
 	String[] headers;
 	
@@ -44,20 +44,20 @@
 	public ReadODS(File tableFile, String sheetname) throws Exception {
 		
 		static_set_log_level();
-		spreadsheet = SpreadsheetDocument.loadDocument(tableFile);
+		spreadsheet = OdfSpreadsheetDocument.loadDocument(tableFile);
 		
 		// the first access to the document causes a very long process
-		int sheetCount = spreadsheet.getSheetCount();
+		int sheetCount = spreadsheet.getTableList(false).size();
 		if (sheetCount < 1) {
 			System.out.println("** ReadODS: no sheet found in file. Aborting.");
 			return;
 		}
 		
 		if (sheetname != null) {
-			table = spreadsheet.getSheetByName(sheetname);
+			table = spreadsheet.getTableByName(sheetname);
 		}
 		if (table == null) {
-			table = spreadsheet.getSheetByIndex(0);
+			table = spreadsheet.getTableList(false).get(0);
 		}
 		nRows = table.getRowCount();
 		nCols = table.getColumnCount();
@@ -88,7 +88,7 @@
 	
 	public boolean readHeaders() {
 		
-		Row row = table.getRowByIndex(0);
+		OdfTableRow row = table.getRowByIndex(0);
 		if (row == null) return false;
 		
 		int ncolumns = row.getCellCount();
@@ -126,11 +126,11 @@
 	
 	protected void _getRecord() {
 		record = new HashMap<>();
-		Row row = table.getRowByIndex(iRow);
+		OdfTableRow row = table.getRowByIndex(iRow);
 		
 		for (int colIndex = 0; colIndex < headers.length; colIndex++) {
 			String col = headers[colIndex];
-			Cell cell = row.getCellByIndex(colIndex);
+			OdfTableCell cell = row.getCellByIndex(colIndex);
 			if (cell != null) {
 				String value = cell.getStringValue();
 				if (value == null) {
@@ -160,26 +160,26 @@
 		
 		static_set_log_level();
 		
-		SpreadsheetDocument spreadsheet = SpreadsheetDocument.loadDocument(inputFile);
+		OdfSpreadsheetDocument spreadsheet = OdfSpreadsheetDocument.loadDocument(inputFile);
 		
 		// the first access to the document causes a very long process
-		int sheetCount = spreadsheet.getSheetCount();
+		int sheetCount = spreadsheet.getTableList(false).size();
 		if (sheetCount < 1) {
 			System.out.println("** ReadODS: no sheet found in file. Aborting.");
 			return null;
 		}
 		
-		Table table = null;
+		OdfTable table = null;
 		if (sheetname != null) {
-			table = spreadsheet.getSheetByName(sheetname);
+			table = spreadsheet.getTableByName(sheetname);
 		}
 		if (table == null) {
-			table = spreadsheet.getSheetByIndex(0);
+			table = spreadsheet.getTableList(false).get(0);
 		}
 		
 		ArrayList<HashMap<String, String>> data = new ArrayList<>();
 		
-		List<Row> rows = table.getRowList();
+		List<OdfTableRow> rows = table.getRowList();
 		ArrayList<String> cols = new ArrayList<>();
 		int ncolumns = rows.get(0).getCellCount();
 		for (int i = 0; i < ncolumns; i++) {
@@ -188,7 +188,7 @@
 		
 		// int rowCount = table.getRowCount();
 		for (int iRow = 1; iRow < rows.size(); iRow++) {
-			Row row = rows.get(iRow);
+			OdfTableRow row = rows.get(iRow);
 			HashMap<String, String> dataline = new HashMap<>();
 			data.add(dataline);
 			
@@ -217,21 +217,21 @@
 		
 		static_set_log_level();
 		
-		SpreadsheetDocument spreadsheet = SpreadsheetDocument.loadDocument(inputFile);
+		OdfSpreadsheetDocument spreadsheet = OdfSpreadsheetDocument.loadDocument(inputFile);
 		
 		// the first access to the document causes a very long process
-		int sheetCount = spreadsheet.getSheetCount();
+		int sheetCount = spreadsheet.getTableList(false).size();
 		if (sheetCount < 1) {
 			System.out.println("** ReadODS: no sheet found in file. Aborting.");
 			return null;
 		}
 		
-		Table table = null;
+		OdfTable table = null;
 		if (sheetname != null) {
-			table = spreadsheet.getSheetByName(sheetname);
+			table = spreadsheet.getTableByName(sheetname);
 		}
 		if (table == null) {
-			table = spreadsheet.getSheetByIndex(0);
+			table = spreadsheet.getTableList(false).get(0);
 		}
 		
 		ArrayList<ArrayList<String>> data = new ArrayList<>();
@@ -240,13 +240,13 @@
 		
 		// findout maximum line length
 		int sMax = 0;
-		for (Row row : table.getRowList()) {
+		for (OdfTableRow row : table.getRowList()) {
 			TableTableRowElement elem = row.getOdfElement();
 			NodeList children = elem.getChildNodes();
 			int s = children.getLength(); // FIXME row.getCellCount() takes too much time
 			if (sMax < s) sMax = s;
 		}
-		for (Row row : table.getRowList()) {
+		for (OdfTableRow row : table.getRowList()) {
 			ArrayList<String> dataline = new ArrayList<>();
 			data.add(dataline);
 			// Row row = table.getRowByIndex(it);
Index: TXM/trunk/bundles/org.txm.libs.office/build.properties
===================================================================
--- TXM/trunk/bundles/org.txm.libs.office/build.properties	(revision 3787)
+++ TXM/trunk/bundles/org.txm.libs.office/build.properties	(revision 3788)
@@ -2,7 +2,6 @@
 bin.includes = META-INF/,\
                OSGI-INF/,\
                .,\
-               lib/odfdom-java-0.10.0-jar-with-dependencies.jar,\
-               lib/simple-odf-0.9.0.jar
+               lib/odfdom-java-0.10.0-jar-with-dependencies.jar
 #qualifier=svn
 source.. = src/
Index: TXM/trunk/bundles/org.txm.libs.office/.classpath
===================================================================
--- TXM/trunk/bundles/org.txm.libs.office/.classpath	(revision 3787)
+++ TXM/trunk/bundles/org.txm.libs.office/.classpath	(revision 3788)
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry exported="true" kind="lib" path="lib/simple-odf-0.9.0.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.10.0-jar-with-dependencies.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
Index: TXM/trunk/bundles/org.txm.libs.office/META-INF/MANIFEST.MF
===================================================================
--- TXM/trunk/bundles/org.txm.libs.office/META-INF/MANIFEST.MF	(revision 3787)
+++ TXM/trunk/bundles/org.txm.libs.office/META-INF/MANIFEST.MF	(revision 3788)
@@ -1,7 +1,8 @@
 Manifest-Version: 1.0
 Automatic-Module-Name: org.txm.libs.office
 Bundle-SymbolicName: org.txm.libs.office
-Export-Package: org.odftoolkit.odfdom,
+Export-Package: 
+ org.odftoolkit.odfdom,
  org.odftoolkit.odfdom.changes,
  org.odftoolkit.odfdom.doc,
  org.odftoolkit.odfdom.doc.presentation,
@@ -65,25 +66,11 @@
  org.odftoolkit.odfdom.pkg.manifest,
  org.odftoolkit.odfdom.pkg.rdfa,
  org.odftoolkit.odfdom.type,
- org.odftoolkit.simple,
- org.odftoolkit.simple.chart,
- org.odftoolkit.simple.common,
- org.odftoolkit.simple.common.field,
- org.odftoolkit.simple.common.navigation,
- org.odftoolkit.simple.draw,
- org.odftoolkit.simple.form,
- org.odftoolkit.simple.meta,
- org.odftoolkit.simple.presentation,
- org.odftoolkit.simple.style,
- org.odftoolkit.simple.table,
- org.odftoolkit.simple.text,
- org.odftoolkit.simple.text.list,
  org.txm.libs.office
 Bundle-Name: org.txm.libs.office
 Bundle-Version: 0.8.2.qualifier
 Bundle-ClassPath: .,
- lib/odfdom-java-0.10.0-jar-with-dependencies.jar,
- lib/simple-odf-0.9.0.jar
+ lib/odfdom-java-0.10.0-jar-with-dependencies.jar
 Require-Bundle: org.apache.xerces;bundle-version="2.9.0"
 Bundle-ManifestVersion: 2
 Bundle-RequiredExecutionEnvironment: JavaSE-16
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/corpus/TruncateTextsAtFirstWordsMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/corpus/TruncateTextsAtFirstWordsMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/corpus/TruncateTextsAtFirstWordsMacro.groovy	(revision 3788)
@@ -32,7 +32,7 @@
 Project project = mcorpus.getProject()
 File txmDir = new File(project.getProjectDirectory(), "txm/"+mcorpus.getName())
 
-@Field @Option(name="nWordsPerText", usage="the number of words per text", widget="Integer", required=true, def="")
+@Field @Option(name="nWordsPerText", usage="the number of words per text", widget="Integer", required=true, def="5000")
 File nWordsPerText
 
 
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/export/ExportCAInfosMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/export/ExportCAInfosMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/export/ExportCAInfosMacro.groovy	(revision 3788)
@@ -19,6 +19,8 @@
 
 // END OF PARAMETERS
 
+def scriptName = this.class.getSimpleName()
+
 if (!(corpusViewSelection instanceof CA)) {
 	println "** $scriptName: please select a CA in the Corpus view."
 	return 0
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/cqp/StructIndexMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/cqp/StructIndexMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/cqp/StructIndexMacro.groovy	(revision 3788)
@@ -27,18 +27,18 @@
 // Open the parameters input dialog box
 if (!ParametersDialog.open(this)) return
 
-// END OF PARAMETERS
+		// END OF PARAMETERS
 
-utils = new CQPUtils()
-corpusEngine = CQPSearchEngine.getCqiClient()
+		utils = new CQPUtils()
+		corpusEngine = CQPSearchEngine.getCqiClient()
 
-// check for a corpus selection
-corpora = utils.getCorpora(this)
+		// check for a corpus selection
+		corpora = utils.getCorpora(this)
 
-if ((corpora == null) || corpora.size() > 1) {
-	println "** $scriptName: please select a corpus in the Corpus view or provide a corpus name. Aborting."
-	return false
-}
+		if ((corpora == null) || corpora.size() > 1) {
+			println "** $scriptName: please select a corpus in the Corpus view or provide a corpus name. Aborting."
+			return false
+		}
 
 if ((struct_props == null) || struct_props.size() == 0) {
 	println "** $scriptName: please set the 'struct_props' parameter. Aborting."
@@ -50,36 +50,36 @@
 globalVmax = Vmax
 
 (struct, prop) = struct_props.tokenize('@')*.trim()
-	
-  if ((prop == null) || prop.size() == 0) {
-    println "** $scriptName: please set @properties in the 'struct_props' parameter."
-  } else {
 
-    if (prop.indexOf(',') == -1) {
-      prop = [prop]
-    } else {
-      prop = prop.tokenize(',')*.trim()
-    }
+if ((prop == null) || prop.size() == 0) {
+	println "** $scriptName: please set @properties in the 'struct_props' parameter."
+} else {
 
-    occs = (0..corpusEngine.attributeSize("$corpus.${struct}_${prop[0]}")-1).collect { cpos ->
-      prop.collect { prop ->
-        corpusEngine.struc2Str("$corpus.${struct}_$prop", [cpos] as int[])[0]
-      }.join('_')
-    }
-	
-    if (groupByValue) {
-      occs = occs.sort().countBy { it }.sort { a,b -> b.value <=> a.value ?: a.key <=> b.key }
-      if (globalVmax == 0) {
-      	occs.each { println sprintf("%s\t%d", it.key, it.value) }
-      } else {
-      occs.take(globalVmax).each { println sprintf("%s\t%d", it.key, it.value) }
-      }
-    } else {
-      if (globalVmax == 0) {
-        occs.each { println it }
-      } else {
-        occs.take(globalVmax).each { println it }
-      }
-    }
-  }
+	if (prop.indexOf(',') == -1) {
+		prop = [prop]
+	} else {
+		prop = prop.tokenize(',')*.trim()
+	}
 
+	occs = (0..corpusEngine.attributeSize("$corpus.${struct}_${prop[0]}")-1).collect { cpos ->
+	prop.collect { prop ->
+	corpusEngine.struc2Str("$corpus.${struct}_$prop", [cpos] as int[])[0]
+	}.join('_')
+	}
+
+	if (groupByValue) {
+		occs = occs.sort().countBy { it }.sort { a,b -> b.value <=> a.value ?: a.key <=> b.key }
+		if (globalVmax == 0) {
+			occs.each { println sprintf("%s\t%d", it.key, it.value) }
+		} else {
+			occs.take(globalVmax).each { println sprintf("%s\t%d", it.key, it.value) }
+		}
+	} else {
+		if (globalVmax == 0) {
+			occs.each { println it }
+		} else {
+			occs.take(globalVmax).each { println it }
+		}
+	}
+}
+
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/cqp/StructsIndexMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/cqp/StructsIndexMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/cqp/StructsIndexMacro.groovy	(revision 3788)
@@ -16,16 +16,16 @@
 // BEGINNING OF PARAMETERS
 
 @Field @Option(name = "structs_props", usage = "struct1@prop1_prop2,struct2@prop3_prop4...", widget 
-    = "String", required = true, def  = "")
+= "String", required = true, def  = "")
 def structs_props
 
 @Field @Option(name = "Vmax", usage = "maximum number of values displayed (use '0' to display all)", widget = "Integer", required = true, 
-    def  = "0")
+def  = "0")
 def Vmax
 
 // Open the parameters input dialog box
 if (!ParametersDialog.open(this)) {
-    return
+	return
 }
 
 // END OF PARAMETERS
@@ -37,74 +37,74 @@
 corpora = utils.getCorpora(this)
 
 if ((corpora == null) || corpora.size() > 1) {
-    println "** $scriptName: please select a corpus in the Corpus view or provide a corpus name. Aborting."
-    return false
+	println "** $scriptName: please select a corpus in the Corpus view or provide a corpus name. Aborting."
+	return false
 }
 
 // check for structs_props parameter
 if ((structs_props == null) || structs_props.size() == 0) {
-    println "** $scriptName: please set the 'structs_props' parameter. Aborting."
-    return false
+	println "** $scriptName: please set the 'structs_props' parameter. Aborting."
+	return false
 }
 
 corpus_name = corpora[0].getMainCorpus().getName()
 corpus_size = corpora[0].getMainCorpus().getSize()
 
 if (structs_props.indexOf(',') == -1) {
-    struct_props = [structs_props]
+	struct_props = [structs_props]
 } else {
-    struct_props = structs_props.tokenize(',')*.trim()
+	struct_props = structs_props.tokenize(',')*.trim()
 }
 
 globalVmax = Vmax
 
 def printPropValues(start, end, struct_prop, output) {
 
-    if (struct_prop.size() > 0) {
-    
-        curr_struct_prop = struct_prop[0]
-        s_p = curr_struct_prop.tokenize('@')*.trim()
-        def struct = s_p[0]
-        def prop = s_p[1]
-        
-        if ((prop == null) || prop.size() == 0) {
-            println "** $scriptName: please set @properties in the 'structs_props' parameter."
-        } else {
-        
-            if (prop.indexOf('_') == -1) {
-                prop = [prop]
-            } else {
-                prop = prop.tokenize('_')*.trim()
-            }
-            
-            occs = (0..corpusEngine.attributeSize("$corpus_name.${struct}_${prop[0]}")-1).collect {
-                idx -> curr_start = corpusEngine.struc2Cpos("$corpus_name.${struct}_${prop[0]}", idx as int)[0]
-                curr_end = corpusEngine.struc2Cpos("$corpus_name.${struct}_${prop[0]}", idx as int)[1]
-                if (curr_start >= start && curr_end <= end) {
-                    [
-                        curr_start,
-                        curr_end,
-                        prop.collect {
-                            curr_prop -> corpusEngine.struc2Str("$corpus_name.${struct}_$curr_prop", [idx] as int [])[0]
-                        }.join('_')
-                    ]
-                } else null
-            }
-            def n = 0
-            occs.each {
-                if (it != null && (globalVmax == 0 || n < globalVmax)) {
-                    (start, end, value) = it
-                    // println prefix+value // struct+"@"+prop[0]+"="+
-                    if (output.length() > 0) {
-                        printPropValues(start, end, struct_prop.tail(), output + "\t" + value)
-                    } else {
-                        printPropValues(start, end, struct_prop.tail(), value)
-                    }
-                    n++
-                }
-            }
-        }
-    } else println output
+	if (struct_prop.size() > 0) {
+
+		curr_struct_prop = struct_prop[0]
+				s_p = curr_struct_prop.tokenize('@')*.trim()
+				def struct = s_p[0]
+						def prop = s_p[1]
+
+								if ((prop == null) || prop.size() == 0) {
+									println "** $scriptName: please set @properties in the 'structs_props' parameter."
+								} else {
+
+									if (prop.indexOf('_') == -1) {
+										prop = [prop]
+									} else {
+										prop = prop.tokenize('_')*.trim()
+									}
+
+									occs = (0..corpusEngine.attributeSize("$corpus_name.${struct}_${prop[0]}")-1).collect {
+										idx -> curr_start = corpusEngine.struc2Cpos("$corpus_name.${struct}_${prop[0]}", idx as int)[0]
+												curr_end = corpusEngine.struc2Cpos("$corpus_name.${struct}_${prop[0]}", idx as int)[1]
+														if (curr_start >= start && curr_end <= end) {
+															[
+															 curr_start,
+															 curr_end,
+															 prop.collect {
+																 curr_prop -> corpusEngine.struc2Str("$corpus_name.${struct}_$curr_prop", [idx] as int [])[0]
+															 }.join('_')
+															 ]
+														} else null
+									}
+									def n = 0
+											occs.each {
+										if (it != null && (globalVmax == 0 || n < globalVmax)) {
+											(start, end, value) = it
+													// println prefix+value // struct+"@"+prop[0]+"="+
+													if (output.length() > 0) {
+														printPropValues(start, end, struct_prop.tail(), output + "\t" + value)
+													} else {
+														printPropValues(start, end, struct_prop.tail(), value)
+													}
+											n++
+										}
+									}
+								}
+	} else println output
 }
 
 printPropValues(0, corpus_size, struct_props, "")
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/conversion/EuroPressToXML2018Macro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/conversion/EuroPressToXML2018Macro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/conversion/EuroPressToXML2018Macro.groovy	(revision 3788)
@@ -1,7 +1,8 @@
 package org.txm.macro.conversion
 // STANDARD DECLARATIONS
 
-import groovy.xml.QName
+import groovy.namespace.QName
+import groovy.xml.XmlNodePrinter
 import java.text.DecimalFormat
 import org.txm.utils.xml.DomUtils
 import org.txm.importer.ValidateXml
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/JavascriptVersionMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/JavascriptVersionMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/JavascriptVersionMacro.groovy	(revision 3788)
@@ -5,7 +5,6 @@
 import javax.script.*
 
 manager = new ScriptEngineManager()
-engine = manager.getEngineByName("JavaScript")
-factory = engine.getFactory()
-
-println factory.getLanguageName()+" "+factory.getLanguageVersion()+" ("+factory.getEngineName()+" "+factory.getEngineVersion()+")"
+for (def factory : manager.getEngineFactories()) {
+	println factory.getLanguageName()+" "+factory.getLanguageVersion()+" ("+factory.getEngineName()+" "+factory.getEngineVersion()+")"
+}
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/XSLTVersionMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/XSLTVersionMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/XSLTVersionMacro.groovy	(revision 3788)
@@ -4,7 +4,9 @@
 package org.txm.macro.debug
 import net.sf.saxon.Version
 
-println "XSLT "+Version.getXSLVersionString()+" ("+Version.getProductTitle()+" - "+Version.getReleaseDate()+")"
 
+
+println "XSLT "+Version.getSoftwarePlatform()+" ("+Version.getProductTitle()+" - "+Version.getReleaseDate()+")"
+
 Class c = net.sf.saxon.Version.class
 println c.getProtectionDomain().getCodeSource().getLocation().getFile()
\ No newline at end of file
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/RVersionMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/RVersionMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/RVersionMacro.groovy	(revision 3788)
@@ -13,7 +13,7 @@
 
 println ".libPaths="+r.eval(".libPaths()").asString()
 println ".Library="+r.eval(".Library").asString()
-println ".Library.site="+r.eval(".Library.site").asString()
+//println ".Library.site="+r.eval(".Library.site").asString() // no more available ?
 
 println "R.home()="+r.eval("R.home()").asString()
 rez = r.eval("options()")
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/edition/RebuildTRSEditionMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/edition/RebuildTRSEditionMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/edition/RebuildTRSEditionMacro.groovy	(revision 3788)
@@ -18,7 +18,7 @@
 import org.txm.importer.*
 import org.txm.Toolbox
 import java.io.*
-
+import groovy.xml.XmlSlurper
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
 import org.txm.rcpapplication.commands.*
Index: TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/commands/StructuresIndexMacro.groovy
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/commands/StructuresIndexMacro.groovy	(revision 3787)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/commands/StructuresIndexMacro.groovy	(revision 3788)
@@ -77,7 +77,6 @@
 // Déclarations
 
 import org.kohsuke.args4j.*
-
 import groovy.transform.Field
 
 import org.txm.rcp.swt.widget.parameters.*
@@ -121,8 +120,8 @@
 		def wordProperty
 @Field @Option(name="displayIndex", usage="display a hierarchical index", widget="Boolean", required=true, def="true")
 		def displayIndex
-@Field @Option(name="Vmax", usage="size of index", widget="Integer", required=false, def="20")
-		def Vmax
+//@Field @Option(name="Vmax", usage="size of index", widget="Integer", required=false, def="20")
+	//	def Vmax
 // END OF PARAMETERS
 
 // Open the parameters input dialog box
@@ -162,7 +161,7 @@
 }
 
 // function to print the statistics of an index of a query
-def print_freq = { CQPCorpus c, q, p ->
+def print_freq = { CQPCorpus c, q, p, max ->
 
 	// appel du moteur
 	//println "QUERY=$q"
@@ -207,7 +206,7 @@
 		print sprintf("%d\t%d\t%d\t%d", tC, v, fmin, fmax)
 		// afficher les valeurs des occurrences de la propriété du résultat
 		if (displayIndex) {
-			heads = index.sort { -it.value }.take(Vmax).keySet()
+			heads = index.sort { -it.value }.take(max).keySet()
 			println "\t"+heads.collect { CQI.id2Str(p.getQualifiedName(), it)[0] }
 		} else {
 			println ""
@@ -456,7 +455,7 @@
 			def struct_name = "${mainCorpusName}.${it.name}"
 			print sprintf("%s\t%d\t%d\t%d\t", it.name, it.start, it.end, it.end-it.start)
 		}
-		print_freq(corpus, sprintf("a:%s :: a>=%d & a<=%d", query, it.start, it.end), wordProperty)
+		print_freq(corpus, sprintf("a:%s :: a>=%d & a<=%d", query, it.start, it.end), wordProperty, 10000)
 	}
 
 	textDivPropVals.push(divPropVals)
@@ -499,7 +498,7 @@
 		try {
 			r.eval(script+"ggsave(file=\"${PNGFilePath}\", plot=p)")
 			r.eval(script+"ggsave(file=\"${SVGFilePath}\", plot=p)")
-	
+
 			//display the SVG results graphic
 			monitor.syncExec(new Runnable() {
 						@Override
Index: TXM/trunk/bundles/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CompressCQPIndexes.java
===================================================================
--- TXM/trunk/bundles/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CompressCQPIndexes.java	(revision 3787)
+++ TXM/trunk/bundles/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CompressCQPIndexes.java	(revision 3788)
@@ -101,6 +101,7 @@
 		Process process = processBuilder.start();
 		String messages = CwbProcess.getOutputMessages(process);
 		System.out.println(messages);
+		process.waitFor();
 		if (process.exitValue() != 0) {
 			System.out.println("Error while compressing with huff");
 			return false;
