Index: tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages.properties
===================================================================
--- tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages.properties	(revision 0)
+++ tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages.properties	(revision 933)
@@ -0,0 +1,22 @@
+
+Properties_0  = * Structural Units properties\n
+Properties_1  = ** Failed to access corpus 
+Properties_11 = \ structures
+Properties_14 = Lexical Units properties (max {0} values)
+Properties_16 = Number of structural units 
+Properties_2  = ** Error
+Properties_22 = Structural Units properties (max {0} values)
+Properties_26 = No property
+Properties_3  = Description of 
+Properties_4  = \ properties
+Properties_40 = * General Statistics\n
+Properties_41 = - T 
+Properties_43 = - Word properties 
+Properties_49 = - S 
+Properties_5  = General Statistics
+Properties_6  = ** Failed to access corpus 
+Properties_7  = Number of words 
+Properties_8  = \ lexicon
+Properties_9  = Number of word properties 
+
+RESULT_TYPE = Properties

Property changes on: tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages_ru.properties
===================================================================
--- tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages_ru.properties	(revision 0)
+++ tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages_ru.properties	(revision 933)
@@ -0,0 +1,2 @@
+
+RESULT_TYPE = 

Property changes on: tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages_ru.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages_fr.properties	(revision 0)
+++ tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages_fr.properties	(revision 933)
@@ -0,0 +1,22 @@
+
+Properties_0  = <h3>Propriétés des structures\n
+Properties_1  = ** Echec d'accès au corpus
+Properties_11 = \ structures
+Properties_14 = Propriétés des unités lexicales (max {0} valeurs)
+Properties_16 = Nombre d'unités de structure 
+Properties_2  = ** Erreur
+Properties_22 = Propriétés des structures (max {0} valeurs)
+Properties_26 = Pas de propriété
+Properties_3  = Détails du corpus CQP 
+Properties_4  = \ propriétés
+Properties_40 = * Statistiques Générales\n
+Properties_41 = - T
+Properties_43 = - Propriétés de mot 
+Properties_49 = - S
+Properties_5  = Statistiques Générales
+Properties_6  = ** Echec d'accès au corpus
+Properties_7  = Nombre de mots 
+Properties_8  = \ lexique
+Properties_9  = Nombre de propriétés de mot 
+
+RESULT_TYPE = Propriétés

Property changes on: tmp/org.txm.properties.core/src/org/txm/properties/core/messages/messages_fr.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/src/org/txm/properties/core/messages/PropertiesCoreMessages.java
===================================================================
--- tmp/org.txm.properties.core/src/org/txm/properties/core/messages/PropertiesCoreMessages.java	(revision 0)
+++ tmp/org.txm.properties.core/src/org/txm/properties/core/messages/PropertiesCoreMessages.java	(revision 933)
@@ -0,0 +1,51 @@
+package org.txm.properties.core.messages;
+
+import org.eclipse.osgi.util.NLS;
+import org.txm.utils.messages.Utf8NLS;
+
+
+/**
+ * Properties core messages.
+ * 
+ * @author mdecorde
+ * @author sjacquot
+ *
+ */
+public class PropertiesCoreMessages extends NLS {
+
+	private static final String BUNDLE_NAME = "org.txm.properties.core.messages.messages"; //$NON-NLS-1$
+	
+	public static String RESULT_TYPE;
+
+	
+	public static String Properties_0;
+	public static String Properties_1;
+	public static String Properties_11;
+	public static String Properties_14;
+	public static String Properties_16;
+	public static String Properties_2;
+	public static String Properties_22;
+	public static String Properties_26;
+	public static String Properties_3;
+	public static String Properties_4;
+	public static String Properties_40;
+	public static String Properties_41;
+	public static String Properties_43;
+	public static String Properties_49;
+	public static String Properties_5;
+	public static String Properties_6;
+	public static String Properties_7;
+	public static String Properties_8;
+	public static String Properties_9;
+
+	
+	
+	static {
+		// initialize resource bundle
+		Utf8NLS.initializeMessages(BUNDLE_NAME, PropertiesCoreMessages.class);
+	}
+
+	private PropertiesCoreMessages() {
+	}
+	
+}

Property changes on: tmp/org.txm.properties.core/src/org/txm/properties/core/messages/PropertiesCoreMessages.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/src/org/txm/properties/core/functions/Properties.java
===================================================================
--- tmp/org.txm.properties.core/src/org/txm/properties/core/functions/Properties.java	(revision 0)
+++ tmp/org.txm.properties.core/src/org/txm/properties/core/functions/Properties.java	(revision 933)
@@ -0,0 +1,662 @@
+// Copyright © 2010-2013 ENS de Lyon.
+// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
+// Lyon 2, University of Franche-Comté, University of Nice
+// Sophia Antipolis, University of Paris 3.
+// 
+// The TXM platform is free software: you can redistribute it
+// and/or modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation,
+// either version 2 of the License, or (at your option) any
+// later version.
+// 
+// The TXM platform is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+// PURPOSE. See the GNU General Public License for more
+// details.
+// 
+// You should have received a copy of the GNU General
+// Public License along with the TXM platform. If not, see
+// http://www.gnu.org/licenses.
+// 
+// 
+// 
+// $LastChangedDate: 2016-09-19 10:31:00 +0200 (Mon, 19 Sep 2016) $
+// $LastChangedRevision: 3298 $
+// $LastChangedBy: mdecorde $ 
+//
+package org.txm.properties.core.functions;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Locale;
+
+import org.eclipse.osgi.util.NLS;
+import org.txm.core.preferences.TBXPreferences;
+import org.txm.core.preferences.TXMPreferences;
+import org.txm.core.results.Parameter;
+import org.txm.core.results.TXMParameters;
+import org.txm.core.results.TXMResult;
+import org.txm.objects.Base;
+import org.txm.properties.core.messages.PropertiesCoreMessages;
+import org.txm.properties.core.preferences.PropertiesPreferences;
+import org.txm.searchengine.cqp.AbstractCqiClient;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+import org.txm.searchengine.cqp.corpus.WordProperty;
+import org.txm.utils.AsciiUtils;
+import org.txm.utils.io.IOUtils;
+import org.txm.utils.logger.Log;
+
+/**
+ * Computes a diagnostic of Corpus or Subcorpus.
+ * 
+ * @author mdecorde
+ */
+public class Properties extends TXMResult {
+	// Base base;
+	/** The corpus. */
+	protected Corpus corpus;
+	
+	// Numbers
+	/** The T. */
+	int T = 0; // number of word
+
+	/** The N properties. */
+	int NProperties = 0; // number of word properties
+	//HashMap<String, Integer> propertiesCounts = new HashMap<String, Integer>(); // properties counts
+	/** The properties values. */
+	HashMap<String, List<String>> propertiesValues = new HashMap<String, List<String>>(); // properties values
+
+	/** The N structures. */
+	int NStructures = 0; // number of structures
+	
+	/** The structures counts. */
+	HashMap<String, Integer> structuresCounts = new HashMap<String, Integer>(); // structures counts
+
+	/** The internal architecture. */
+	List<String> internalArchitecture = new ArrayList<String>(); // cqp structures = propertiesCounts keys but ordered
+	
+	/** The hierarchie counts. */
+	HashMap<String, Integer> hierarchieCounts = new HashMap<String, Integer>(); // hierarchic structures counts
+	
+	/** The internal architecture properties. */
+	HashMap<String, HashMap<String, List<String>>> internalArchitectureProperties = new HashMap<String, HashMap<String, List<String>>>(); // hierarchic structures counts
+	
+	/** The internal architecture properties counts. */
+	HashMap<String, HashMap<String, Integer>> internalArchitecturePropertiesCounts = new HashMap<String, HashMap<String, Integer>>(); // hierarchic structures counts
+
+	// Annotations description
+	/** The annotations types. */
+	HashMap<String, Integer> annotationsTypes = new HashMap<String, Integer>(); // for each annotation its description
+	
+	/** The annotations origins. */
+	HashMap<String, Integer> annotationsOrigins = new HashMap<String, Integer>(); // for each annoation its origin description
+
+	/** The properties. */
+	List<WordProperty> properties;
+	
+	/** The structures. */
+	List<StructuralUnit> structures;
+
+	/**
+	 * The HTML file.
+	 */
+	protected File file;
+	
+	/**
+	 * The maximum number of word property values to display.
+	 */
+	@Parameter(key=PropertiesPreferences.MAX_PROPERTIES_TO_DISPLAY)
+	protected int pMaxPropertiesToDisplay;
+	
+	/**
+	 * Instantiates a new Information.
+	 *
+	 * @param corpus a MainCorpus or a SubCorpus
+	 */
+	public Properties(Corpus corpus) {
+		super(corpus);
+	}
+
+	public Properties(String uuid) {
+		super(uuid);
+	}
+
+	
+	
+	@Override
+	public boolean loadParameters() {
+		this.corpus = (Corpus) this.parent;
+		return true;
+	}
+
+	
+	/**
+	 * Sets the maximum properties to display.
+	 * @param maxPropertiesToDisplay
+	 */
+	public void setParameters(int maxPropertiesToDisplay) {
+		this.pMaxPropertiesToDisplay = maxPropertiesToDisplay;
+		if (this.pMaxPropertiesToDisplay <= 0) {
+			this.pMaxPropertiesToDisplay = 10;
+		}
+		this.dirty = true;
+	}
+	
+	
+	/**
+	 * Step general infos.
+	 */
+	public void stepGeneralInfos()
+	{
+		try {
+			properties = corpus.getProperties();
+			NProperties = properties.size();
+		} catch (CqiClientException e) {
+			Log.severe(PropertiesCoreMessages.Properties_1 + corpus.getName() + PropertiesCoreMessages.Properties_4);
+			Log.printStackTrace(e);
+			return;
+		}
+		
+		try {
+			T = corpus.getSize();// corpus.getLexicon(corpus.getProperty("id")).nbrOfToken();
+		} catch (CqiClientException e) {
+			Log.severe(PropertiesCoreMessages.Properties_6 + corpus.getName() + PropertiesCoreMessages.Properties_8);
+			Log.printStackTrace(e);
+			return;
+		} 
+	}
+	
+	/**
+	 * step2.
+	 * randomly position are choose
+	 */
+	public void stepLexicalProperties() {
+		propertiesValues.clear();
+		
+		AbstractCqiClient cqiClient = CorpusManager.getCorpusManager().getCqiClient();
+		for (Property p : properties) {
+			//int size;
+			try {
+				//size = CorpusManager.getCorpusManager().getCqiClient().lexiconSize(p.getQualifiedName());
+				//propertiesCounts.put(p.getName(), size);
+				//List<String> list = Arrays.asList(corpus.getLexicon(p).getForms(this.maxvalue));
+
+				int[] positions = new int[Math.min(pMaxPropertiesToDisplay, T)];
+				for(int i = 0 ; i < Math.min(pMaxPropertiesToDisplay, T) ; i++) {
+					positions[i] = i;
+				}
+				
+				//ArrayList<String> values = new ArrayList<String>();
+				LinkedHashSet<String> values = new LinkedHashSet<String>(cqiClient.getSingleData(p, positions));
+				propertiesValues.put(p.getName(), new ArrayList<String>(values));
+			} catch (Exception e) {
+				Log.printStackTrace(e);
+			}
+		}
+	}
+	
+	/**
+	 * Step structural units.
+	 */
+	public void stepStructuralUnits()
+	{
+		try {
+			structures = corpus.getOrderedStructuralUnits();
+		} catch (CqiClientException e) {
+			Log.severe(PropertiesCoreMessages.Properties_1 + corpus.getName() + PropertiesCoreMessages.Properties_11);
+			Log.printStackTrace(e);
+			return;
+		}
+		NStructures = structures.size();
+		internalArchitecture.clear();
+		for (StructuralUnit su : structures) { // for each structural unit
+			internalArchitecture.add(su.getName());
+			hierarchieCounts.put(su.getName(), -1);
+			internalArchitectureProperties.put(su.getName(), new HashMap<String, List<String>>());
+			internalArchitecturePropertiesCounts.put(su.getName(), new HashMap<String, Integer>());
+			
+			if (su.getProperties().size() > 0) {
+				for (StructuralUnitProperty sup : su.getProperties())  {// for each of its property
+					try {
+						List<String> allvalues = sup.getValues(corpus);
+						internalArchitectureProperties.get(su.getName()).put(sup.getName(), allvalues.subList(0, Math.min(allvalues.size(), pMaxPropertiesToDisplay)));
+						internalArchitecturePropertiesCounts.get(su.getName()).put(sup.getName(), allvalues.size());
+					} catch (Exception e) {
+						ArrayList<String> list = new ArrayList<String>(1);
+						list.add(PropertiesCoreMessages.Properties_2);
+						internalArchitectureProperties.get(su.getName()).put(sup.getName(), list);
+						internalArchitecturePropertiesCounts.get(su.getName()).put(sup.getName(), -1);
+					}
+				}
+			}
+		}
+	}
+
+	// FIXME: useless?
+//	/**
+//	 * Instantiates a new diagnostic.
+//	 *
+//	 * @param partition the partition
+//	 * @throws CqiClientException the cqi client exception
+//	 */
+//	public Information(Partition partition) throws CqiClientException {
+//		corpus = partition.getCorpus();
+//		this.partition = partition;
+//		int T = corpus.getSize();
+//		System.out.println(InformationCoreMessages.Properties_12);
+//		int nbParts = partition.getNPart();
+//		List<String> partNames = partition.getPartNames();
+//		List<Integer> partSizes = new ArrayList<Integer>();
+//		List<List<Property>> partProperties = new ArrayList<List<Property>>();
+//		List<String> partQueries = new ArrayList<String>();
+//		for (Part part : partition.getParts()) {
+//			partSizes.add(part.getSize());
+//			partProperties.add(part.getProperties());
+//			partQueries.add(part.getQuery().getQueryString());
+//		}
+//	}
+
+	/**
+	 * dump the results of the diagnostic in a String containing HTML code.
+	 *
+	 * @return the string
+	 */
+	public String htmlDump() {
+		StringBuffer buff = new StringBuffer();
+
+		buff.append("<? version=\"1.0\" encoding=\"UTF-8\"?>\n" + //$NON-NLS-1$
+				"<html>" + //$NON-NLS-1$
+				"<head>" + //$NON-NLS-1$
+				"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>" + //$NON-NLS-1$
+				"</head>" + //$NON-NLS-1$
+				"<body>\n"); //$NON-NLS-1$
+		buff.append("<h2 style'font-family:\"Arial\";'>"+PropertiesCoreMessages.Properties_3 + this.corpus.getName() + "</h2>\n"); //$NON-NLS-2$ //$NON-NLS-1$
+		
+		if (corpus.getDescription() != null && corpus.getDescription().length() > 0) {
+			buff.append("<p>"+corpus.getDescription()+"</p>"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		
+		buff.append("<h3 style'font-family:\"Arial\";'>"+PropertiesCoreMessages.Properties_5+ "</h3>\n"); //$NON-NLS-1$ //$NON-NLS-2$ 
+
+		
+		
+		// counts
+		buff.append("<ul>\n"); //$NON-NLS-1$
+		buff.append("<li>" + PropertiesCoreMessages.Properties_7 + T + "</li>\n"); //$NON-NLS-1$ //$NON-NLS-2$ 
+		buff
+		.append("<li>" + PropertiesCoreMessages.Properties_9 + (NProperties - 1) + "</li>\n"); //$NON-NLS-2$ //$NON-NLS-1$
+		buff.append("<li>" + PropertiesCoreMessages.Properties_16 + NStructures + "</li>\n"); //$NON-NLS-2$ //$NON-NLS-1$
+		buff.append("</ul>\n"); //$NON-NLS-1$
+
+		// Propriétés d'occurrences
+		buff.append("<h3 style'font-family:\"Arial\";'>"+NLS.bind(PropertiesCoreMessages.Properties_14, pMaxPropertiesToDisplay) + "</h3>\n"); //$NON-NLS-1$ //$NON-NLS-2$ 
+		ArrayList<String> properties = new ArrayList<String>(propertiesValues.keySet());
+		Collections.sort(properties);
+		buff.append("<ul>\n"); //$NON-NLS-1$
+		for (String s : properties) {
+			if (!s.equals("id")) //$NON-NLS-1$
+			{
+				//buff.append("<li> " + s + " (" + propertiesCounts.get(s) + ") : "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				buff.append("<li> " + s + " : "); //$NON-NLS-1$ //$NON-NLS-2$ 
+				for (String v : propertiesValues.get(s))
+					buff.append(v + ", "); //$NON-NLS-1$
+				buff.append("..."); //$NON-NLS-1$
+				buff.append("</li>\n"); //$NON-NLS-1$ 
+			}
+		}
+		buff.append("</ul>\n"); //$NON-NLS-1$
+
+		// Propriété de structures
+		buff.append("<h3 style'font-family:\"Arial\";'>"+NLS.bind(PropertiesCoreMessages.Properties_22, pMaxPropertiesToDisplay)+"</h3>\n"); //$NON-NLS-1$ //$NON-NLS-2$
+		buff.append("<ul>\n"); //$NON-NLS-1$
+		for (String s : internalArchitecture) {
+			StringBuffer subbuffer = new StringBuffer();
+			if (s.equals("txmcorpus")) //$NON-NLS-1$
+				continue;//ignore the txmcorpus structure
+			
+			properties = new ArrayList<String>(internalArchitectureProperties.get(s).keySet());
+			
+			subbuffer.append("<li> " + s + "\n<ul>\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			if (internalArchitectureProperties.get(s).keySet().size() == 0)
+				subbuffer.append("<li>"+PropertiesCoreMessages.Properties_26+"</li>\n"); //$NON-NLS-1$ //$NON-NLS-2$ 
+
+			
+			//System.out.println("struct: "+s+" >> "+properties);
+			Collections.sort(properties);
+			//System.out.println("struct: "+s+" >sort> "+properties);
+			int nbOfValues = 0;
+			for (String ps : properties) {
+				if (!ps.equals("project") && !ps.equals("base") ) //$NON-NLS-1$ //$NON-NLS-2$ 
+				{
+					//System.out.println("struct: "+s+" >> "+ps);
+					int valuecount = internalArchitecturePropertiesCounts.get(s).get(ps);
+					ArrayList<String> values = new ArrayList<String>(internalArchitectureProperties.get(s).get(ps));
+					subbuffer.append("<li> " + ps + " (" + valuecount + ") = "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					//System.out.println("VALUES: "+values);
+					Collections.sort(values);
+					for (int i = 0 ; i < values.size() ; i++) {
+						nbOfValues++;
+						String psv = values.get(i);
+						if (psv != null && psv.length() > 0)
+							subbuffer.append(psv.replace("<", "&lt;")); //$NON-NLS-1$ //$NON-NLS-2$
+						else
+							subbuffer.append("\"\""); //$NON-NLS-1$
+						
+						if (i == values.size() -1)
+							subbuffer.append("."); //$NON-NLS-1$
+						else
+							subbuffer.append(", "); //$NON-NLS-1$
+						
+						if (i >= pMaxPropertiesToDisplay) {
+							subbuffer.append("..."); //$NON-NLS-1$
+							break;
+						}
+					}
+					subbuffer.append("</li>\n"); //$NON-NLS-1$
+				}
+			}
+			subbuffer.append("</ul>\n</li>\n"); //$NON-NLS-1$
+			if (nbOfValues > 0) {
+				buff.append(subbuffer);
+			}
+		}
+		buff.append("</ul>\n"); //$NON-NLS-1$
+		buff.append("</body>\n"); //$NON-NLS-1$
+		buff.append("</html>\n"); //$NON-NLS-1$
+		
+		return buff.toString();
+	}
+
+	
+	
+	/**
+	 * dump the result in the console.
+	 *
+	 * @param maxvalue the maxvalue
+	 * @return the string
+	 */
+	public String dump(int maxvalue) {
+		StringBuffer buff = new StringBuffer();
+
+		buff.append(PropertiesCoreMessages.Properties_40);
+		buff.append(PropertiesCoreMessages.Properties_41 + String.format(Locale.FRANCE,"%,d", T) + "\n"); //$NON-NLS-1$ 
+		buff.append(PropertiesCoreMessages.Properties_43 + String.format("%,d", NProperties) + "\n"); //$NON-NLS-1$ 
+		/*for (String s : propertiesCounts.keySet())
+			if (!s.equals("id")) //$NON-NLS-1$
+				buff.append(" - " + s + " " + propertiesCounts.get(s) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				*/
+		buff.append(PropertiesCoreMessages.Properties_49 + String.format("%,d", NStructures) + "\n"); //$NON-NLS-1$ 
+		for (String s : structuresCounts.keySet())
+			buff.append(" - " + s + "\n");//+structuresCounts.get(s)+"\n"); //$NON-NLS-1$ //$NON-NLS-2$
+
+		/*
+		 * buff.append("* Structural Units counts\n"); for(String s :
+		 * internalArchitecture)
+		 * buff.append(" - "+s+" "+hierarchieCounts.get(s)+"\n");
+		 */
+		buff.append(PropertiesCoreMessages.Properties_0);
+		for (String s : internalArchitecture) {
+			buff.append(" - " + s + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			for (String ps : internalArchitectureProperties.get(s).keySet()) {
+				if (!(s.equals("text") && (ps.equals("project") || ps.equals("base") || ps.equals("id")))) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+				{
+					buff
+					.append("   - " + ps + "(" + internalArchitectureProperties.get(s).get(ps).size() + ") = "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+					int valuecount = 0;
+					for (String psv : internalArchitectureProperties.get(s)
+							.get(ps)) {
+						buff.append(psv);
+						if (valuecount++ >= maxvalue) {
+							buff.append("..."); //$NON-NLS-1$
+							break;
+						}
+						if (valuecount < internalArchitectureProperties.get(s)
+								.get(ps).size())
+							buff.append(", "); //$NON-NLS-1$
+					}
+
+					buff.append("\n"); //$NON-NLS-1$
+				}
+			}
+		}
+
+		return buff.toString();
+	}
+
+	/**
+	 * dump the result in the console with maxvalue=30.
+	 *
+	 * @return the string
+	 */
+	public String dump() {
+		return dump(30);
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 */
+	public String getName() {
+		return corpus.getName();
+	}
+
+	/**
+	 * Gets the base.
+	 *
+	 * @return the base
+	 */
+	public Base getBase() {
+		return corpus.getBase();
+	}
+
+	/**
+	 * Gets the t.
+	 *
+	 * @return the t
+	 */
+	public int getT() {
+		return T;
+	}
+
+	/**
+	 * Gets the n properties.
+	 *
+	 * @return the n properties
+	 */
+	public int getNProperties() {
+		return NProperties;
+	}
+
+	/**
+	 * Gets the internal architecture.
+	 *
+	 * @return the internal architecture
+	 */
+	public List<String> getInternalArchitecture() {
+		return internalArchitecture;
+	}
+
+	/**
+	 * Gets the n structures.
+	 *
+	 * @return the n structures
+	 */
+	public int getNStructures() {
+		return NStructures;
+	}
+
+	/**
+	 * Gets the structures counts.
+	 *
+	 * @return the structures counts
+	 */
+	public HashMap<String, Integer> getStructuresCounts() {
+		return structuresCounts;
+	}
+
+	/**
+	 * Gets the annotations types.
+	 *
+	 * @return the annotations types
+	 */
+	public HashMap<String, Integer> getAnnotationsTypes() {
+		return annotationsTypes;
+	}
+
+	/**
+	 * Gets the annotations origins.
+	 *
+	 * @return the annotations origins
+	 */
+	public HashMap<String, Integer> getAnnotationsOrigins() {
+		return annotationsOrigins;
+	}
+
+	/**
+	 * dump the diagnostic in a text file.
+	 *
+	 * @param outfile the outfile
+	 * @param maxvalue the maxvalue
+	 * @return true, if successful
+	 */
+	public boolean toTxt(File outfile, String encoding, int maxvalue) {
+		PrintWriter writer = null;
+		try {
+			writer = IOUtils.getWriter(outfile, encoding);
+			writer.write(this.dump(maxvalue));
+			writer.close();
+		} catch (Exception e) {
+			org.txm.utils.logger.Log.printStackTrace(e);
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * dump the diagnostic in a HTML file.
+	 *
+	 * @param outfile the outfile
+	 * @return true, if successful
+	 */
+	public boolean toHTML(File outfile) {
+		outfile.getParentFile().mkdirs();
+		PrintWriter writer;
+		try {
+			writer = IOUtils.getWriter(outfile); //$NON-NLS-1$
+			writer.write(this.htmlDump());
+			writer.close();
+		} catch (IOException e) {
+			org.txm.utils.logger.Log.printStackTrace(e);
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * dump the diagnostic in a text file, maxvalue = 100.
+	 *
+	 * @param outfile the outfile
+	 * @return true, if successful
+	 */
+	public boolean toTxt(File outfile) {
+		return toTxt(outfile, "UTF-8", 100); //$NON-NLS-1$
+	}
+
+	@Override
+	public void clean() {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public boolean toTxt(File outfile, String encoding, String colseparator, String txtseparator) throws Exception {
+		return toTxt(outfile, encoding, 100);
+	}
+
+	@Override
+	public String getSimpleName() {
+		return this.getResultype();
+	}
+
+	@Override
+	public String getDetails() {
+		return "" + T;
+	}
+
+	@Override
+	protected boolean _compute() throws Exception {
+		
+		this.beginTask("Computing properties...", 3);
+		this.stepGeneralInfos();
+		this.worked(1);
+		
+		this.stepLexicalProperties();
+		this.worked(1);
+		
+		this.stepStructuralUnits();
+		this.worked(1);
+		
+		String txmhome = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE);
+		String filename = corpus.getMainCorpus() + "-" + corpus.getName(); //$NON-NLS-1$
+		if (corpus instanceof MainCorpus) {
+			filename = corpus.getName(); //$NON-NLS-1$
+		}
+		
+		filename = AsciiUtils.buildId(filename);
+		file = new File(txmhome, "results/" + filename + "-infos.html"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		this.toHTML(file);
+		return true;
+	}
+	
+	/**
+	 * Gets the HTML file.
+	 * @return the HTML file
+	 */
+	public File getHTMLFile() {
+		return file;
+	}
+
+	@Override
+	public boolean canCompute() {
+		return this.parent != null;
+	}
+
+	@Override
+	public boolean setParameters(TXMParameters parameters) {
+		this.pMaxPropertiesToDisplay = parameters.getInteger(PropertiesPreferences.MAX_PROPERTIES_TO_DISPLAY);
+		return true;
+	}
+
+	
+	@Override
+	public boolean saveParameters() {
+		// nothing to do -> all parameters are already managed by autoSaveParameters
+		return true;
+	}
+
+	public Corpus getCorpus() {
+		return (Corpus) this.parent;
+	}
+
+	@Override
+	public String getResultype() {
+		return PropertiesCoreMessages.RESULT_TYPE;
+	}
+}

Property changes on: tmp/org.txm.properties.core/src/org/txm/properties/core/functions/Properties.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/src/org/txm/properties/core/package.html
===================================================================
--- tmp/org.txm.properties.core/src/org/txm/properties/core/package.html	(revision 0)
+++ tmp/org.txm.properties.core/src/org/txm/properties/core/package.html	(revision 933)
@@ -0,0 +1,5 @@
+<html>
+<body>
+<p>Diagnostic function</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.properties.core/src/org/txm/properties/core/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/src/org/txm/properties/core/preferences/PropertiesPreferences.java
===================================================================
--- tmp/org.txm.properties.core/src/org/txm/properties/core/preferences/PropertiesPreferences.java	(revision 0)
+++ tmp/org.txm.properties.core/src/org/txm/properties/core/preferences/PropertiesPreferences.java	(revision 933)
@@ -0,0 +1,36 @@
+package org.txm.properties.core.preferences;
+
+
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.service.prefs.Preferences;
+import org.txm.core.preferences.TXMPreferences;
+
+/**
+ * Information preferences initializer.
+ * @author sjacquot
+ *
+ */
+public class PropertiesPreferences extends TXMPreferences {
+
+	// auto populate the preference node qualifier from the current bundle id
+	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(PropertiesPreferences.class).getSymbolicName();
+	
+	public static final String PREFERENCES_PREFIX = "properties_"; //$NON-NLS-1$
+	
+	
+	/**
+	 * The maximum number of word property values to display.
+	 */
+	public static final String MAX_PROPERTIES_TO_DISPLAY = PREFERENCES_PREFIX + "max_properties_to_display"; //$NON-NLS-1$
+
+	
+	@Override
+	public void initializeDefaultPreferences() {
+		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		
+		preferences.putInt(MAX_PROPERTIES_TO_DISPLAY, 100);
+		
+	}
+	
+}

Property changes on: tmp/org.txm.properties.core/src/org/txm/properties/core/preferences/PropertiesPreferences.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/build.properties
===================================================================
--- tmp/org.txm.properties.core/build.properties	(revision 0)
+++ tmp/org.txm.properties.core/build.properties	(revision 933)
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml

Property changes on: tmp/org.txm.properties.core/build.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/plugin.xml
===================================================================
--- tmp/org.txm.properties.core/plugin.xml	(revision 0)
+++ tmp/org.txm.properties.core/plugin.xml	(revision 933)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.core.runtime.preferences">
+      <initializer
+            class="org.txm.properties.core.preferences.PropertiesPreferences">
+      </initializer>
+   </extension>
+
+</plugin>

Property changes on: tmp/org.txm.properties.core/plugin.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/.settings/org.eclipse.core.resources.prefs
===================================================================
--- tmp/org.txm.properties.core/.settings/org.eclipse.core.resources.prefs	(revision 0)
+++ tmp/org.txm.properties.core/.settings/org.eclipse.core.resources.prefs	(revision 933)
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//src/org/txm/properties/core/messages/messages_fr.properties=UTF-8

Property changes on: tmp/org.txm.properties.core/.settings/org.eclipse.core.resources.prefs
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- tmp/org.txm.properties.core/.settings/org.eclipse.jdt.core.prefs	(revision 0)
+++ tmp/org.txm.properties.core/.settings/org.eclipse.jdt.core.prefs	(revision 933)
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6

Property changes on: tmp/org.txm.properties.core/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/.classpath
===================================================================
--- tmp/org.txm.properties.core/.classpath	(revision 0)
+++ tmp/org.txm.properties.core/.classpath	(revision 933)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+		<accessrules>
+			<accessrule kind="accessible" pattern="**"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Property changes on: tmp/org.txm.properties.core/.classpath
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.properties.core/META-INF/MANIFEST.MF	(revision 0)
+++ tmp/org.txm.properties.core/META-INF/MANIFEST.MF	(revision 933)
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Export-Package: org.txm.properties.core,
+ org.txm.properties.core.functions,
+ org.txm.properties.core.messages,
+ org.txm.properties.core.preferences
+Require-Bundle: org.txm.searchengine.cqp.core;bundle-version="1.1.0";visibility:=reexport
+Bundle-Vendor: Textometrie.org
+Bundle-Version: 1.0.0.qualifier
+Bundle-Name: Corpus Properties Core
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.txm.properties.core;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+

Property changes on: tmp/org.txm.properties.core/META-INF/MANIFEST.MF
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.properties.core/.project
===================================================================
--- tmp/org.txm.properties.core/.project	(revision 0)
+++ tmp/org.txm.properties.core/.project	(revision 933)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.txm.properties.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Property changes on: tmp/org.txm.properties.core/.project
___________________________________________________________________
Added: svn:mime-type
   + text/plain

